为了使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即可、