使用racoon setkey搭建IPsec环境
转载请注明出处:http://blog.csdn.net/rosetta
以前的博文写的都是基于openswan klips的IPsec实现及环境搭建,没有使用过Linux自带的netkey,现基于Linux自带的netkey搭建IPsec 环境,并参考UNPV13e写一个应用层程序倾泻安全联盟。
Linux自带的pfkey可以使用两种方式操作搭建ipsec环境:一种是使用setkey手动设置SA,这种方式不常用,SA中的SPI,加密密钥、认证密钥等都是要手动填的,比如md5需要128bit,3des 192bits,可想而知有多大不便;另一种由racoon自动协商生成IPsec SA,但它在协商之前需要setkey先设置SP。
搭建环境:CentOS release 5.4,内核2.6.18-164.el5xen
拓扑如下:
在每一个网关需要增加默认路由,否则无法使用ping触发协商。
因为在我的局域网中有默认网关1.1,所以我设它为默认路由,如果没有默认网关的话可以设置对端协商口为默认路由。
一、使用setkey手动设置方式。
如果之前使用过openswan klips,需要:1,执行service ipsec stop;2,进入/lib/modules/`uname -r`/kernel/net/key/,执行insmod af_key.ko;3,加载内核模块xfrmuser af_key esp4 ah4 ipcomp xfrm4_tunnel。如果之前没有用过klips,那么直接执行service ipsec restart即可。可以执行如下命令看是否正确加载netkey:
[root@localhost ipsec]# ipsec version
Linux Openswan U2.4.7/K2.6.18-164.el5xen (netkey)
See `ipsec --copyright' for copyright information.
在确保Linux是使用netkey的情况下,就可以往下继续操作了。先配置网关1,网关只要把配置里的IP换个位置就可以了,加黑的表示执行的命令行。
[root@localhost racoon]# cd /etc/racoon/
[root@localhost racoon]# vim setkey.conf
[root@localhost racoon]# cat setkey.conf
#!/usr/sbin/setkey-f
#
#flushSAD and SPD
flush;
spdflush;
add 192.168.95.162 192.168.95.230 esp 0x201 -m tunnel -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae70a96c831-A hmac-md5 0x16b844ab6136507eadc4765d782af8d0;
add 192.168.95.230 192.168.95.162 esp 0x301 -m tunnel -E 3des-cbc0x7aeaca3f87d060a12f4a44