续
第二步、配置对端服务器(GW2)——上海
1. 配置 Internet 连接及 SNAT、路由转发
1) 配置 IP 地址
eth0 接口(173.74.75.77/24)用于连接 Internet,eth1 接口(192.168.2.1/24)用于连
接局域网(配置过程略)
2) 开启路由及 SNAT 转换
[root@gw2 ~]# vim /opt/gw2_nat.sh
sysctl -w net.ipv4.ip_forward=1 /sbin/iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 173.74.75.77 |
[root@gw2 ~]# chmod a+x /opt/gw2_nat.sh
[root@gw2 ~]# echo "/opt/gw2_nat.sh" >> /etc/rc.local
[root@gw2 ~]# /opt/gw2_nat.sh
net.ipv4.ip_forward = 1
2. 安装 Open××× 服务
[root@gw1 soft_dir]# tar zxvf lzo-2.03.tar.gz
[root@gw1 soft_dir]# cd lzo-2.03
[root@gw1 lzo-2.03]# ./configure && make && make install
[root@gw1 lzo-2.03]# cd ../
[root@gw1 soft_dir]# tar zxvf openvpn-2.0.9.tar.gz
[root@gw1 soft_dir]# cd openvpn-2.0.9
[root@gw1 openvpn-2.0.9]# ./configure && make && make install
[root@gw1 ~]# cd /soft_dir/
[root@gw1 soft_dir]# cp -p openvpn-2.0.9/sample-scripts/openvpn.init /etc/init.d/openvpn
[root@gw1 soft_dir]# chmod +x /etc/init.d/openvpn
[root@gw1 soft_dir]# chkconfig --add openvpn
[root@gw1 soft_dir]# chkconfig --level 2345 openvpn on
3. 下载证书和密钥文件
下载在 GW1 主服务器端创建的 ca.crt、ta.key、gw2.key、gw2.crt 文件,使用 FTP、SCP、Email 等任何方式均可。
—— 在服务器 GW1 上:
[root@gw1 ~]# cd /etc/openvpn/keys/ [root@gw1 keys]# tar jcvf /var/ftp/send_to_gw2.tar.bz2 ca.crt ta.key gw2.key gw2.crt ca.crt ta.key gw2.key gw2.crt [root@gw1 keys]# service vsftpd start 为 vsftpd 启动 vsftpd: [确定] |
—— 在服务器 GW2 上:
[root@gw2 ~]# wget ftp://173.74.75.76/send_to_gw2.tar.bz2 --2010-07-15 11:17:08-- ftp://173.74.75.76/send_to_gw2.tar.bz2 => `send_to_gw2.tar.bz2' Connecting to 173.74.75.76:21... 已连接。 正在以 anonymous 登录 ... 登录成功! ==> SYST ... 完成。 ==> PWD ... 完成。 ==> TYPE I ... 完成。 ==> 不需要 CWD。 ==> SIZE send_to_gw2.tar.bz2 ... 4025 ==> PASV ... 完成。 ==> RETR send_to_gw2.tar.bz2 ... 完成。 长度:4025 (3.9K) 100%[======================================>] 4,025 --.-K/s in 0s 2010-07-15 11:17:09 (116 MB/s) - `send_to_gw2.tar.bz2' saved [4025] [root@gw2 ~]# ls anaconda-ks.cfg Desktop install.log install.log.syslog send_to_gw2.tar.bz2 |
将下载后的文件释放保存到 openvpn 配置目录
[root@gw2 ~]# mkdir -p /etc/openvpn/keys/ [root@gw2 ~]# tar jxvf send_to_gw2.tar.bz2 -C /etc/openvpn/keys/ |
4. 创建客户端配置文件
在客户端配置文件中指定使用 Client 模式,以及远程 ××× 服务器的地址和端口。可以参考 openvpn 源码目录中的配置范例(openvpn-2.0.9/sample-config-files/client.conf)
[root@gw2 ~]# vim /etc/openvpn/gw2.conf client //使用客户端模式 dev tun proto udp remote 173.74.75.76 1194 //点对点主服务器的地址、端口 resolv-retry infinite nobind user nobody group nobody persist-key persist-tun ca keys/ca.crt cert keys/gw2.crt key keys/gw2.key ns-cert-type server tls-auth keys/ta.key 1 cipher BF-CBC //需和 GW1 服务器端保持一致 comp-lzo verb 3 mute 20 |
5. 启动 Open××× 服务
使用安装时建立的服务脚本启动 openvpn 服务
[root@gw2 ~]# service openvpn start 正在启动 openvpn: [确定] [root@gw2 ~]# netstat -anp | grep openvpn udp 0 0 0.0.0.0:39449 0.0.0.0:* 27004/openvpn unix 2 [ ] DGRAM 65137 27004/openvpn |
第三步、验证 SSL ××× 连接
1. GW1 服务器的 ××× 接口状态
5) GW1 主服务器 tun0 接口的 IP 地址为 10.8.0.1,点对点对端地址为 10.8.0.2
[root@gw1 keys]# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) |
6) 路由表中应有通过 GW2 访问 LAN2 网段的路由记录
[root@gw1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 192.168.2.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 173.74.75.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 |
2. GW2 服务器的 ××× 接口状态
1) GW2 服务器 tun0 接口的 IP 地址为 10.8.0.2,点对点对端地址为 10.8.0.1
[root@gw2 ~]# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.2 P-t-P:10.8.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) |
2) 路由表中应有通过 GW1 访问 LAN1 网段的路由记录
[root@gw2 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.8.0.1 0.0.0.0 255.255.255.255 UH 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.8.0.1 255.255.255.0 UG 0 0 0 tun0 173.74.75.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.9.0.0 10.8.0.1 255.255.255.0 UG 0 0 0 tun0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 |
3. 测试 SSL ××× 隧道连接
[root@gw1 ~]# ping 10.8.0.2 -c 2 PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data. 64 bytes from 10.8.0.2: icmp_seq=1 ttl=64 time=17.5 ms 64 bytes from 10.8.0.2: icmp_seq=2 ttl=64 time=0.613 ms --- 10.8.0.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1188ms rtt min/avg/max/mdev = 0.613/9.101/17.590/8.489 ms |
图 测试 LAN1、LAN2 中主机之间的互联
附:详细的PDF完整技术文档下载:http://down.51cto.com/data/102973