阅读:1775回复:4
IP安全工具――IPSec
〖Encrypt〗
上一篇|下一篇|回文章 分类讨论区 全部讨论区 本讨论区 发信人: rabbitboy (兔兔), 信区: Encrypt 标 题: IP安全工具――IPSec 发信站: 武汉白云黄鹤站 (Tue Jan 16 08:55:27 2001), 站内信件 作者:Kurt Seifried 编译:backend IP安全工具――IPSec使用了网络通信加密技术。虽然不能加密数据包的头部和尾部信息 (如源/目的IP地址、端口号、CRC校验值等),但可对数据包数据进行加密。由于加密 过程发生在IP层,因此可在不改变POP/WWW等协议的情况下进行网络协议的安全加密。同 时它也可以用于实现局域网间(通过互联网)的安全连接。基于IPv6的IPSec for Linu x目前仍在测 试当中,但Windows 9x/NT、Solaris和其它一些UNIX平台的IPSec软件均已 发布。你需要在内核中增加对IPSec的支持,才能使用IPSec软件。但是不幸的是,北美 地区以外的Linux发布版本的内核均不支持IPSec。因此第一步就是获取最新的内核源程 序和Linux IPSec源代码:http://www.xs4all.nl/~freewan/。 然后将内核源代码(以2.2.10为例)安装到/usr/src/linux,并编译、安装和重启内核 ,以测试新内核。在使IPSec正常工作之前必须保证网络工作正常。接着将IPSec for L inux源 代码解压到/usr/local/src目录下,运行安装程序\"make menugo\",对内核进行 “补丁”。 再运行内核的配置程序。最后就是安装IPSec工具和内核。 cd /usr/local/src/ tar zvxf /path/to/tarball/snapshot.tar.gz chown R root:root freeswan-snap1999Jun14b cd freeswan-snap1999Jun14b make menugo 确保已保存好内核的配置。一般情况下,如果使用\"make zImage\"命令重新生成内核时超 出大小限制。可用\"make bzImage\"命令重新编译内核: cd /usr/src/linux make bzImage cp /usr/src/linux/arch/i386/boot/bzImage boot/vmlinuz-2.2.10-ipsec 现在我们需要修改LILO配置文件lilo.conf,并重新运行lilo和重新启动系统内核。 lilo.conf文件例子如下: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz-2.2.10-ipsec label=linux-ipsec root=/dev/hda1 read-only image=/boot/vmlinuz-2.2.10 label=linux root=/dev/hda1 read-only 重新运行lilo,系统提示: linux-ipsec * linux 然后重新启动带有IPSec支持的2.2.10内核的系统。系统重启时会出现几个错误,这主要 是IPSec在缺省情况下使用了实际并不存在的eth999接口。建议你将ipsec程序的路径加 入到 用户环境变量中。 IPSec的网络设置。首先,需要允许网关服务器的TCP-IP转发。在Red Hat Linux系统中 的实现方法: 将 FORWARD_IPV4=\"false\" 改为 FORWARD_IPV4=\"yes\" 即可。 另一个方法是直接修改/proc文件系统,执行以下命令即可: cat 1 > /proc/sys/net/ipv4/ip_forward 由于大多数人都使用了缺省的禁止IP转发安全策略,但你必须允许数据锯从远程网络或 主机传送到你的网络或主机中。而且,任何使用了IPSec的内部网络的所有伪装(masque rade) 规则都必须在允许IPSec的规则之后进行,否则主机将试图伪装(masquerade)数据包,而 不是 将它们传递给IPSec。 以下例子说明了如何在两个已使用了IP masquerading伪装的受保护网络之间通过IPSec 进行安全的互联网连接: 手工(固定)密钥连接 (Manual connection keying) 为简单起见,我们先通过使用手工(固定)密钥,并编辑ipsec.conf和防火墙规则来建 立安全连接。ipsec.conf中的许多缺省参数已设置好,我们需要修改的参数如下: conn sample type=tunnel left= leftnexthop= leftsubnet= right= rightnexthop= rightsubnet= spibase=0x200 esp=3des-md5-96 espenckey= espauthkey= 使用随机数生成器产生一个数字,并保留其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=some_auth_key_here (ranbits 192) espauthkey=some_other_key_here (ranbits 128) 设置完成后,复制ipsec.donf和ipsec.secrets文件到其他需要使用此安全模式的机器 中。剩下的工作就是修改防火墙规则,使其只将数据包转发,而不将其伪装(masquera de)。 在服务器1.2.3.4上增加以下规则: ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 ipchains -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 # ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 ipchains -A forward -p all -j MASQ -s 10.0.0.0/24 -d 0.0.0.0/0 在服务器5.6.7.8上重复类似工作: ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 记住,要确保这些规则在伪装(masquerade)规则之前,如以下所示: # # FORWARD RULES # ipchains -P forward DENY # ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 ipchains -A forward -p all -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0 现在我们可以利用这个手工构造的ipsec通道,建立网络A与网络B之间的通信。 ipsec manual |
|
|
沙发#
发布于:2002-05-29 10:32
点评:
linux 下vpn的系统配置,对初学者有价值,但钥清楚为什么这么配。 我要看书了,上午就到此为止吧。 |
|
|
板凳#
发布于:2002-06-03 15:41
我看过类似的文章
不过, 还是不明白 |
|
地板#
发布于:2002-06-04 17:40
慢慢来吧!
|
|
|
地下室#
发布于:2002-07-04 14:40
还是没有弄得通。
希望大虾们继续讨论。 |
|