Centos系统下OpenVPN安装配置

                             Centos系统下OpenVPN安装配置

 由于最近公司的一个客户需求通过VPN来访问国外的业务,这个事情由我来负责但我从来都没有做过于是就各种百度、google一顿狂找OpenVPN方面的资料.根据网上查找到的资料结合自己的理解总结如下文档,给大家在这里分享下.


一、安装OpenVPN前的准备工作

1、安装OpenVPN版本

Centos6.3 64位 客户端系统Win7 64位  服务端IP:114.26.162.35

2、服务端软件版本

openvpn-2.0.9tar.gz

lzo-2.03.tar.gz

3、客户端安装软件版本

openvpn-2.2.0-install.exe

4、配置网络yum源,跟新所需的库文件,避免安装报错

yum groupinstall "DevelopmentTools"

5、在安装之前确认一下你买的vps是否开启tun/tap的支持,burst vps默认是不开启tun/tap的,可以使用cat /dev/net/tun进行检查出现下面的代表正确了

[root@YZW ~]# cat /dev/net/tun

cat: /dev/net/tun: File descriptor in bad state

6、清空防火墙配置关闭Selinxu

[root@YZW ~]# iptables -F

[root@YZW ~]# service iptables save

[root@YZW ~]# service iptables stop

[root@YZW ~]# setenforce 0


二、安装LZO库

[root@YZW ~]# cd /wang

[root@YZW wang]# tar xf lzo-2.03.tar.gz

[root@YZW wang]# cd lzo-2.03

[root@YZW lzo-2.03]# ./configure --prefix=/application/lzo-2.03

[root@YZW lzo-2.03]# make && make install

[root@YZW lzo-2.03]# echo $?

0

[root@YZW lzo-2.03]# ln -s /application/lzo-2.03/application/lzo

[root@YZW lzo-2.03]# vim /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/lib/

/usr/local/pcre/lib/

/lib

/lib64

/usr/lib

/usr/lib64

重新加载动态库

[root@YZW lzo-2.03]# ldconfig  


三、安装OpenVPN

[root@YZW ~]# cd /wang

[root@YZW wang]# tar zxvf openvpn-2.0.9.tar.gz

root@YZW wang]# cd openvpn-2.0.9

[root@YZW openvpn-2.0.9]# ./configure --prefix=/application/openvpn-2.0.9 --with-lzo-headers=/application/lzo/include--with-lzo-lib=/application/lzo/lib --with-sslheaders=/usr/include/openssl--with-ssl-lib=/usr/lib

[root@YZW openvpn-2.0.9]#make

[root@YZW openvpn-2.0.9]#make install

[root@YZW openvpn-2.0.9]# ln -s /application/openvpn-2.0.9 /application/openvpn

[root@YZW openvpn-2.0.9]# mkdir /etc/openvpn

[root@YZW openvpn-2.0.9]# cp -R easy-rsa/ /etc/openvpn/

[root@YZW openvpn-2.0.9]# cd /etc/openvpn/easy-rsa/2.0/

[root@YZW 2.0]# ls

[root@YZW 2.0]# ./vars

注:如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件

NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys

[root@YZW 2.0]# vim vars

60 export KEY_COUNTRY="CN"

61 export KEY_PROVINCE="BJ"

62 export KEY_CITY="BJ"

63 export KEY_ORG="YZWOpen ORG"

64 export KEY_EMAIL="[email protected]"

65 export KEY_OU="yzwVPN"

更新刚才修改的配置

[root@YZW 2.0]# source ./vars


四、初始化keys文件,生成服务端CA证书及文件

清空所有证书

[root@YZW 2.0]# ./clean-all

生成服务端证书

[root@YZW 2.0]# ./build-ca

[root@YZW 2.0]# cd keys/

查看生成的证书

[root@YZW keys]# ls

ca.crt  ca.key  index.txt  serial

再生成diffie hellman参数,用于增强openvpn安全性

[root@YZW keys]# cd ..

[root@YZW 2.0]# ./build-dh

[root@YZW 2.0]# cd keys/

[root@YZW keys]# ls

ca.crt  ca.key  dh1024.pem  index.txt  serial

生成服务器端密钥证书,server是一个名字而已

[root@YZW 2.0]# ./build-key-server server

[root@YZW keys]# cp ca.crt ca.key server.crt server.key dh1024.pem /etc/openvpn/


五、初始化keys文件,生成客户端CA证书及文件

[root@YZW keys]# cd ..

[root@YZW 2.0]#  ./build-key-server client

[root@YZW 2.0]# mkdir /key

[root@YZW 2.0]# cd keys/

[root@YZW keys]# ls

01.pem  ca.key      client.key  index.txt.attr      serial      server.csr

02.pem  client.crt  dh1024.pem  index.txt.attr.old  serial.old  server.key

ca.crt  client.csr  index.txt   index.txt.old       server.crt

将key目录下的这几个文件下载到win7系统上面去

[root@YZW keys]# cp ca.crt ca.key client.crt client.csrclient.key /key/


六、配置openvpn文件

[root@YZW key]#  cp /wang/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/openvpn.conf 

26 local 这里写上你服务器的ip地址

33 port 1194

38 proto tcp

54 dev tun

79 ca /etc/openvpn/ca.crt       //这个是文件实际所在的路径

80 cert /etc/openvpn/server.crt

81 key /etc/openvpn/server.key  # This file should be kept secret

88 dh /etc/openvpn/dh1024.pem

97 server 10.8.0.0 255.255.255.0 //客户端获取的IP地址

104 ifconfig-pool-persist ipp.txt

127 push "route 0.0.0.0 0.0.0.0"  //客户端会添加一条这个路由所有的流量通过vpn,也可以设置部分通过vpn

128 push "dhcp-option DNS 202.106.0.20"

198 client-to-client

211 duplicate-cn             //开启这个可以共用一个客户端key,否则需要单独创建每个客户端key

220 keepalive 10 120

245 comp-lzo

256 user nobody

257 group nobody

263 persist-key

264 persist-tun

269 status /etc/openvpn/logs/openvpn-status.log

278 log         /etc/openvpn/logs/openvpn.log

279 log-append  /etc/openvpn/logs/openvpn.log

288 verb 3

[root@YZW key]# cd /etc/openvpn/

[root@YZW openvpn]# mkdir logs

[root@YZW openvpn]# chmod -R o+w logs/



七、启动OpenVPN

修改完毕后,即可以启动vpn,--daemon为后台守护进程模型启动

[root@YZW ~]# /application/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf

[root@YZW ~]# netstat -an | grep 1194

tcp        0      0 114.26.162.35:1194         0.0.0.0:*                   LISTEN


八、在服务端开启路由转发

[root@YZW ~]# vi /etc/sysctl.conf

7 net.ipv4.ip_forward = 1  //将0修改为1

[root@YZW ~]# sysctl -p   //重新加载


九、配置防火墙设置nat转发

保证VPN地址池可路由出外网

在win7系统下也就是你的客户端用telnet 你服务器里边的外网IP地址 1194看是否可以进去

[root@YZW ~]# iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

[root@YZW ~]# /etc/rc.d/init.d/iptables save 

    

十、win7客户端安装配置

双击运行这个exe程序一直next安装完成就可以!

安装完成到openvpn的安装目录将sample-config这个目录下的client.ovpn文件到config目录

复制到config目录

编辑client.ovpn文件修改内容如下

client       # 定义是一个客户端

devtun       # 定义使用路由IP模式,与服务端一致

prototcp     # 定义使用的协议,与服务端一致

remote 114.26.162.35 1194 # 指定服务端地址和端口,可以用多行指定多台服务器

resolv-retry infinite # 解析服务器域名

nobind                # 客户端不需要绑定端口

user nobody

group nobody

persist-key

persist-tun

ca ca.crt             # 就是指定ca和客户端的证书

cert client.crt

keyclient.key

ns-cert-type server

comp-lzo              # 使用lzo压缩,与服务端一致

verb 3

route-method exe

route-delay 2

redirect-gateway def1


十一、验证结果

双击桌面的下面图标

桌面右下边有个红色的小电脑图标,右键---》Connect,如果正常会弹出一个框显示连接信息,然后电脑图标变成绿色了就证明连接上了


本文出自 “卓越军” 博客,请务必保留此出处http://wxj121.blog.51cto.com/7136845/1589609

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。