滔哥的主页

帮趣游戏     进入个人中心
新浪微博

滔哥

memory

滔哥博客 http://www.lvtao.net

http://bangqu.com/memory

职业: CTO

现居: 湖北省武汉市

  • 浏览 635次
  • 感谢 0人
  • 收益 ¥0.0元
Tags:

CentOS6.3配置openvpn2.2.2完整手记.

今天蛋疼,发现以前PPTP的VPN不能用了,于是呼自己想OPENVPN来试试!
GOOGLE了一翻之后开始动手
大致步骤也挺简单的.
1.kernel 需要支持 tun 设备, 需要加载 iptables 模块.
检查 tun 是否安装:
modinfo tun
filename:       /lib/modules/2.6.32-279.el6.i686/kernel/drivers/net/tun.ko
alias:          char-major-10-200
license:        GPL
author:         (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
description:    Universal TUN/TAP device driver
srcversion:     5A72C0DB4EBDF9E4B1D5016
depends:
vermagic:       2.6.32-279.el6.i686 SMP mod_unload modversions 686

估计是支持了...( 这个第一步抄的网上的。结果输出的是俺VPS上的. )

2.安装一些依赖包
yum install iptables openssl lzo pam openssl-devel lzo-devel pam-devel
如果你是rpm安装,后面的三个开发包可以不用安装,这儿我们编译安装。。。。

3.下载openvpn的源码!!
从http://openvpn.net/index.php/open-source/downloads.html下载。
国内打不开,你懂的,我下载了一个tar.gz包在VPS上,2.2.2的,自己有办法从官网下就下载,没有可以暂时用我这个连接,不要外传哟!!
wget http://d.lvtao.net/linux/lib/openvpn-2.2.2.tar.gz
当前的目录是/root/懒得动....(^_^)
4.安装openvpn
tar zxvf openvpn-2.2.2.tar.gz
cd openvpn-2.2.2
./configure
make && make install
说明一下,有些人这步还提示错误,如果你要是安装的centos6.3 mini版,请记得安装gcc 和 make
yum install gcc make 
至于原因,不解释

4.制作证书
先把easy-rsa拷贝到/etc/openvpn下
mkdir –p /etc/openvpn
cp -R easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa/2.0

用自己熟悉的编辑工具打开vars文件,根据实际情况修改以下几个变量:
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”CA”
export KEY_CITY=”BJ”
export KEY_ORG=”MY_ORG”
export KEY_EMAIL="admin@lvtao.net"

什么意思,我们第二页介绍

配置openssl,根据系统所安装的openssl版本,把对应的openssl-version.cnf文件拷贝一份,目标文件名为openssl.cnf,或建个文件链接
查看版本
rpm -q openssl
openssl-1.0.0-25.el6_3.1.i686
cp openssl-1.0.0.cnf openssl.cnf
然后执行以下命令  . ./vars 前有两个点,且中间有一个空格
. ./vars
./clean-all
./build-ca
 一路按回车就可以
ls keys 看是否生成了一些文件 
ca.crt ca.key index.txt serial

生成server key
./build-key-server ttvps 这里的ttvps是指定的名字标签,如果没指定,执行过程中会提示输入
一路回车到
Sign the certificate? [y/n]:y  [这儿请y]
1 out of 1 certificate requests certified, commit? [y/n]y  [这儿也请y]

生成client端key 
./build-key client1 其中client1是客户端的名字,如果有多个客户端,就需要生成多个key
一路回车到
Sign the certificate? [y/n]:y  [这儿请y]
1 out of 1 certificate requests certified, commit? [y/n]y  [这儿也请y]

生成Diffie Hellman参数 这一步在服务端需要,可能耗时比较长:
#./build-dh

到目前,我们已经建立了完整的密钥和证书文件,在keys目录下

将服务端证书拷到/etc/openvpn/目录下
cd keys
cp ca.crt ca.key ttvps.crt ttvps.key dh1024.pem /etc/openvpn/

将客户端文件打包或直接下载本地
ca.crt ca.key client1.crt client1.csr client1.key 
以便客户端vpn

5.配置服务端
拷贝配置文件
cp /root/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/openvpn.conf

第二页介绍参数的大概意思.

port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/ttvps.crt
key /etc/openvpn/ttvps.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "route 172.16.0.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 4
script-security 3


编辑
/etc/sysctl.conf
找到net.ipv4.ip_forward = 0 改成net.ipv4.ip_forward = 1保存
然后执行
sysctl –p  

添加路由规则:172.16.0.65为你的服务器IP 
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 172.16.0.65
或者
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
这样也可以

#iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

开放openvpn端口:
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT

保存iptables规则并重启服务
/etc/init.d/iptables save
/etc/init.d/iptables restart

启动openvpn
/usr/local/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf
使用netstat -ln 查看1194openvpn的端口是否已经起来

6.客户端
将下载的5个文件拷贝到OpenVPN\config目录下.
然后新建一个文件 client1.ovpn  内容如下.其中*.*.*.* 为你的服务器IP

client
dev tun
proto tcp
remote *.*.*.* 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 4
route-method exe 
route-delay 2


然后连接即可!

我在第一次安装使用的时候,遇到过几个问题,第一个是不能正常连接到openvpn服务端,经核查是因为服务端的iptables 设置问题
然后就是连接上了,不能访问facebook  youtue 等一些GFW屏蔽的网站,这个原因比较多,我所遇到的是 server端没有设置
push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1 bypass-dhcp"
本文所使用的主机采用www.ttvps.net 512内存配置主机 系统centos6.3 minisetup 32位
Pages:12
分享时间: