第二步、配置对端服务器(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

基于Linux的 Open×××网络之网络架构应用实例(二)_实例

图 测试 LAN1、LAN2 中主机之间的互联

 

附:详细的PDF完整技术文档下载:http://down.51cto.com/data/102973