网络环境
服务器A ,eth0 ip 10.0.10.111/24 gw 10.0.10.1, eth1 ip 192.168.1.254/24 gw 192.168.0.254
服务器B ,eth0 ip 10.0.20.222/24 gw 10.0.20.1, eth1 ip 192.168.2.254/24 gw 192.168.0.254
一。RedHat 下 IPsec 说明
1. EL4默认安装了ipsec-tools RPM包,此RPM包中包含设置 IPsec 连接所必需的库、守护进程和配置文件。确认是否安装了这个RPM包:
#rpm -q ipsec-tools
*/sbin/setkey — 在内核中操作 IPsec 的钥匙管理和安全属性。该可执行文件被 racoon 钥匙管理守护进程控制。关于 setkey 的更多信息,请参阅 setkey(8) man手册页。
*/sbin/racoon — IKE 钥匙管理守护进程,用来管理和控制 IPsec 连接的系统之间的安全关联和钥匙共享。守护进程可以通过编辑 /etc/racoon/racoon.conf 文件而被控制。当IPsec运行的时候,你可以通过ps查看到racoon在后台运行。关于 racoon 的详细信息,请参阅 racoon(8) man手册页。
*/etc/racoon/racoon.conf — racoon 守护进程配置文件,用来配置 IPsec 连接的各个方面,包括连接中使用的验证方法和加密算式。简单配置IPsec的时候这个文件并不需要你去编辑。要获得完整的指令列表,请参阅 racoon.conf(5) 说明书页。
二。IPsec的Host2Host配置
IPsec 可以通过host to host连接的配置来连接两台主机。这类连接使用每个主机所连的网络来创建彼此间点到点的安全隧道。
配置之初你需要以下信息:
*两台主机的 IP 地址 *用来把 IPsec 连接从其它设备或连接中区别出来的独特名称(如 ipsec0) *固定的加密钥匙或被 racoon 自动生成的钥匙 *被用来初始连接和在会话中交换加密钥匙的预共享验证钥匙
我们需要分别在A和B服务器上建立/etc/sysconfig/network-scripts/ifcfg-ipsec0文件和/etc/sysconfig/network-scripts/keys-ipsec0文件
#vi /etc/sysconfig/network-scripts/ifcfg-ipsec0 #vi /etc/sysconfig/network-scripts/keys-ipsec0
DST=10.0.20.222 TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK
DST=10.0.10.111 TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK
服务器A和B的keys-ipsec0文件必须完全保持一致:
IKE_PSK=KissingwolfATlinuxsir
#chown root.root /etc/sysconfig/network-scripts/keys-ipsec0 #chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0
# Racoon IKE daemon configuration file. # See 'man racoon.conf' for a description of the format and entries. path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; sainfo anonymous { pfs_group 2; lifetime time 1 hour ; encryption_algorithm 3des, blowfish 448, rijndael ; authentication_algorithm hmac_sha1, hmac_md5 ; compression_algorithm deflate ; }
# ifup ipsec0
15:14:20.617872 10.0.10.111 > 10.0.20.222: AH(spi=0x0aaa239f,seq=0x223): ESP(spi=0x0ec0331e,seq=0x223) (DF)
.............................................
三。IPsec的Network2Network配置
IPsec 还可以使用网络到网络连接配置实现两个独立的网络通过互联网安全的连接到一起。网络到网络配置要求你在所连接网络的每一方设置 IPsec 网关来处理和路由发送从一个网络上的节点到另一个远程网络上的节点间的信息。
两个网络之间使用 IPsec 网关来验证和引发使用安全隧道的连接。在传输中被劫获的分组将需要强力解密才能攻破保护这些 LAN 之间的分组的加密术。从 192.168.1.0/24 IP 范围的一个节点到 192.168.2.0/24 上的另一个节点间的通信对于这些节点而言是完全透明的,因为对 IPsec 分组的处理、加密、解密、以及选路都是由 IPsec 网关一手完成的。
配置之初你需要以下信息:
* 两端被 IPsec 网关提供服务的 LAN/WAN 的网络地址范围
* 把来自网络节点的数据路由发送到互联网的网关设备的 IP 地址,你也可以把他理解为 LAN/WAN 的网关地址。
* 用来把 IPsec 连接从其它设备或连接中区别出来的独特名称(如 ipsec0)
* 固定的加密钥匙或被 racoon 自动生成的钥匙
* 用来引发连接和在会话中交换加密钥匙的预共享验证钥匙
每个网络间的 IPsec 连接使用一个值为 KissingwolfATlinuxsir 的预共享钥匙,A 和 B 的管理员都同意让 racoon 自动生成和共享每个 IPsec 网关之间的验证钥匙。LAN A 的管理员决定把 IPsec 连接命名为 ipsec0,而 LAN B 的管理员决定把 IPsec 连接也命名为 ipsec0
我们需要分别在A和B服务器上建立/etc/sysconfig/network-scripts/ifcfg-ipsec0文件和/etc/sysconfig/network-scripts/keys-ipsec0文件
#vi /etc/sysconfig/network-scripts/ifcfg-ipsec0 #vi /etc/sysconfig/network-scripts/keys-ipsec0
TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.1.254 DSTGW=192.168.2.254 SRCNET=192.168.1.0/24 DSTNET=192.168.2.0/24 DST=10.0.20.222
TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.2.254 DSTGW=192.168.1.254 SRCNET=192.168.2.0/24 DSTNET=192.168.1.0/24 DST=10.0.10.111
服务器A和B的keys-ipsec0文件必须完全保持一致:
IKE_PSK=KissingwolfATlinuxsir
#chown root.root /etc/sysconfig/network-scripts/keys-ipsec0 #chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0
# Racoon IKE daemon configuration file. # See 'man racoon.conf' for a description of the format and entries. path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; sainfo anonymous { pfs_group 2; lifetime time 1 hour ; encryption_algorithm 3des, blowfish 448, rijndael ; authentication_algorithm hmac_sha1, hmac_md5 ; compression_algorithm deflate ; }
# ifup ipsec0
# /sbin/ip route list
#tcpdump -n -i eth0 host 10.0.1.111 12:17:03.143517 10.0.2.222 > 10.0.1.111: AH(spi=0x021c9734,seq=0x365): \ 10.0.2.222 > 10.0.1.111: ESP(spi=0x00c897ad,seq=0x365) (DF) \ (ipip-proto-4) ..........................................................................