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="260428042@qq.com"

  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

Centos系统下OpenVPN安装配置  

  [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

  Centos系统下OpenVPN安装配置

  [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 client

  wKioL1SNhhDQFxLqAAPkZsWdrnM625.jpg

  [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安装完成就可以!

  Centos系统下OpenVPN安装配置

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

  Centos系统下OpenVPN安装配置

    复制到config目录

 Centos系统下OpenVPN安装配置

    编辑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,如果正常会弹出一个框显示连接信息,然后电脑图标变成绿色了就证明连接上了

Centos系统下OpenVPN安装配置

    文章来源:http://wxj121.blog.51cto.com/7136845/1589609

 

上一篇:安卓防火墙 PS DroidWall

下一篇:SCTF-2014 misc100 writeup(赛后分析)