点对点的openVPN

    为了使ab校区办公局域网与cd校区办公局域网互通,在两个校区之间架设VPN网络,利用openvpn来实现。

       ab校区作为服务器端,包含三个网段,分别为:192.168.1.0/24,192.168.100.0/24,192.168.10.0/24 

        cd路校区作为客户端,包含192.168.2.0/24网段,两端网段不能相同。

       OpenVPN依赖OpenSSL库,加密用;LZO库,数据压缩用。

一.    服务器端安装

        1. 源码安装lzo-2.0.6.tar.gz 

        2.源码安装  openvpn

           tar xvf openvpn-2.3.6.tar.gz  -C /etc/ 

        3. yum -y install  easy-rsa        用于生成证书和密钥

        4.将easy-rsa 复制到openvpn 目录下:cp -r /usr/share/easy-rsa/    /etc/openvpn/

        5.编辑并导入证书文件: vi /etc/openvpn/easy-rsa/2.0/vars  ,配置公司信息,城市,国家等。 

           本次没有做任何配置直接导入  source   /etc/openvpn/easy-rsa/2.0/vars

         6. ./clean-all   清空所有证书和密钥
         7. ./build-ca    生成certificate authority (CA) certificate 和密钥

         8.  ./build-key-server server   生成服务端证书和私钥,"Sign the certificate?[y/n]" 和"1 out of 1 certificate requests certified, commit? [y/n]"两处选y。

         9.  ./build-key hongfeng        生成客户端证书和私钥,"Sign the certificate?[y/n]" 和"1 out of 1 certificate requests certified, commit? [y/n]"两处选y。

         10.  生成Diffie Hellman 参数

             ./build-dh

         11. 现在生成了所需的文件。目录keys 下生成的文件中,ca.crt 是所有vpn 机器都需要的。

               vpn server 需要ca.crt   ca.key  dh1024.pem server.crt server.key,拷贝到vpn server 的/etc/openvpn目录。

               vpn client   需要ca.crt  client.crt client.key,拷贝到vpn client的/etc/openvpn 目录。

         12.配置VPN SERVER.

              server.conf 使用代码包目录sample-config-files 里的server.conf 修改即可。需要修改的地方如下:

;local a.b.c.d 

port 1194                                         监听端口

;proto tcp
proto udp                                         采用UDP协议

;dev tap
dev tun                                            虚拟网卡类型   

;dev-node MyTap

ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt                证书目录
cert /etc/openvpn/easy-rsa/2.0/keys/xueda.crt        服务端证书目录
key /etc/openvpn/easy-rsa/2.0/keys/xueda.key # This file should be kept secret    服务端key目录

dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem     Diffie Hellman文件目录

server 10.10.1.0 255.255.255.0                              服务器ip

ifconfig-pool-persist ipp.txt

route 192.168.2.0 255.255.255.0                          服务端添加到友谊路校区的路由(友谊路的内网ip)

client-config-dir /etc/openvpn/ccd                           ccd文件中为客户端配置文件,可以为客户端分配固定IP

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

;server-bridge

;push "route 192.168.10.0 255.255.255.0"             需要推送到客户端的路由(不能和客户端的内网ip是同网段)
push "route 192.168.20.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"
push "route 192.168.100.0 255.255.255.0"

;client-to-client

;duplicate-cn

keepalive 10 120

;tls-auth ta.key 0 # This file is secret

;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DE

comp-lzo

;max-clients 100

;user nobody
;group nobody

persist-key
persist-tun

status openvpn-status.log

;log openvpn.log
;log-append openvpn.log

verb 3

;mute 20

在/etc/openvpn 目录下新建ccd 目录

编辑客户端配置文件:vi hongfeng(在服务端)

ifconfig-push 10.10.1.37   10.10.1.38         为友谊路客户端分配固定ip对(虚拟ip)
iroute 192.168.2.0 255.255.255.0            在服务端标识到192.168.2.0/24 网段的数据包发送到友谊路校区对应的虚拟IP

启动:openvpn --configure /etc/openvpn/sample-config-files/server.conf &  或

          cp /etc/openvpn/sample-scripts/openvpn.init  /etc/init.d/openvpn 

配置完成启动服务 /etc/init.d/openvpn start,检查路由条目如下:

Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
123.138.184.192 0.0.0.0 255.255.255.224 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.20.0 192.168.100.254 255.255.255.0 UG 0 0 0 eth2
192.168.2.0 10.10.1.2 255.255.255.0 UG 0 0 0 tun0                                到友谊路校区内网的路由
192.168.1.0 192.168.100.254 255.255.255.0 UG 0 0 0 eth2
10.10.1.0 10.10.1.2 255.255.255.0 UG 0 0 0 tun0
192.168.10.0 192.168.100.254 255.255.255.0 UG 0 0 0 eth2
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 eth1
0.0.0.0 123.138.184.193 0.0.0.0 UG 0 0 0 eth0

13.  在iptables 中将10.10.1.0/24网段的数据包伪装 (虚拟ip)

      iptables -t nat -A POSTROUTING  -s 10.10.1.0/24  -j MASQUERADE 

二.     VPN客户端配置

         1.  安装openvpn ,lzo

         2.  在/etc/openvpn目录下新建客户端配置文件:vi hongfeng.ovpn,配置如下:   

client                                                   标识为客户端
dev tun
proto udp                                            协议
remote 123.138.184.xxx 1194           服务器(公网ip)地址及端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt                                              证书及密钥
cert hongfeng.crt
key hongfeng.key
comp-lzo
verb 3
route-method exe
route-delay 2

         3.  配置完成启动服务:/usr/sbin/openvpn /etc/openvpn/hongfeng.ovpn  >/dev/null &,检查路由条目如下:

            

10.10.1.1 10.10.1.38 255.255.255.255 UGH 0 0 0 tun0
10.10.1.38 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
113.200.54.8 0.0.0.0 255.255.255.252 U 0 0 0 eth0
192.168.100.0 10.10.1.38 255.255.255.0 UG 0 0 0 tun0                                到CD校区内网的路由
192.168.20.0 10.10.1.38 255.255.255.0 UG 0 0 0 tun0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 10.10.1.38 255.255.255.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
0.0.0.0 113.200.54.9 0.0.0.0 UG 0 0 0 eth0

        4.     在iptables 中将10.10.1.0/24网段的数据包伪装

                iptables -t nat -A POSTROUTING  -s 10.10.1.0/24  -j MASQUERADE

  5. 如果cd校区需要访问Ab校区内网的域名站点,只需要在cd校区路由器假设和ab校区同样配置的DNS即可、

本文出自 “crazy_sir” 博客,请务必保留此出处http://douya.blog.51cto.com/6173221/1612372

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