由于大多数人都使用了缺省的禁止IP转发安全策略,但必须允许数据从远程网络或主机传送到本地网络或主机中。而且,任何使用了IPSec的内部网络的所有伪(masquerade)规则都必须在允许IPSec的规则之后进行,否则主机将试图伪装(masquerade)数据包,而不是将它们传递给IPSec.
以下例子说明了如何在两个已使用了IP masquerading伪装的受保护网络之间通过IPSec进行安全的互联网连接:
手工(固定)密钥连接 (Manual connection keying)
先通过使用手工(固定)密钥,并编辑ipsec.conf和防火墙规则来建立安全连接。在ipsec.conf省参数中,使用随机数生成器产生一个数字,并保留其16进制前导字符0x.我们需要修改的参数如下:
conn my-tunnel
type=tunnel
left=1.2.3.4
leftnexthop=1.2.3.1
leftsubnet=10.0.0.0/24
right=5.6.7.8
rightnexthop=5.6.7.1
rightsubnet=192.168.0.0/24
spibase=0x200
esp=3des-md5-96
espenckey=0x01234567_89abcdef_02468ace_13579bdf_12345678_9abcdef0
espauthkey=0x12345678_9abcdef0_2468ace0_13579bdf
|
设置完成后,复制ipsec.donf和ipsec.secrets文件到其他需要使用此安全模式的机器中。剩下的工作就是修改防火墙规则,使其只将数据包转发,而不将其伪装(masquerade)。在服务器1.2.3.4上增加以下规则:
-A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24
-A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24
|
记住,要确保这些规则在伪装(masquerade)规则之前,如以下所示:
#
# FORWARD RULES
#
ipchains -P forward DENY
#
-A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24
-A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24
-A forward -p all -j MASQ -s 10.0.0.0/24 -d 0.0.0.0/0
|
在服务器5.6.7.8上重复类似工作:
-A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24
-A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24
|
记住,要确保这些规则在伪装(masquerade)规则之前,如以下所示:
#
# FORWARD RULES
#
-P forward DENY
#
-A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24
-A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24
-A forward -p all -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
|
现在我们可以利用这个手工构造的ipsec通道,建立网络A与网络B之间的通信。
ipsec manual ——up my-tunnel
从客户机10.0.0.2上ping 192.168.0.2,如果ping得通则说明设置正确。否则请检查网络,确保1.2.3.4与5.6.7.8之间可以通信,允许TCP-IP转发,和两个网络间的防火墙没有规则禁止数据包通过或伪装数据包。当成功完成了手工(固定)密钥连接后,便应当开始配置自动密钥 (automative keying)。