加密网络通信,IPSec 的配置( 三 )

能看到传送的内容是http内容,已经不再加密,说明已经配置成功 。加密前后都是执行同一命令:
lynx http://10.10.10.92退出 racoon 之后,两台机器可能就连不通了 。可在两边创建文件 setkey.x,文件内容如下:
#!/sbin/setkey -fflush;spdflush;#spdadd 10.10.10.74 10.10.10.92 any -P out ipsec esp/transport//require ah/transport//require;#spdadd 10.10.10.92 10.10.10.74 any -P in ipsec esp/transport//require ah/transport//require;也就是把 setkey.conf 后面两项注释或删除掉,然后两边执行命令:
# setkey -f /usr/local/etc/racoon/setkey.x此后两边恢复正常通信,传送的数据不再加密 。
 
二、两个子网之间的数据加密 。子网一:10.10.10.0 路由器:10.10.10.99
子网二:172.15.0.0 路由器:172.15.0.19
先在两子网之间先建立 VPN 连接,然后再加密两台路由器之间的数据 。因为我用的是动态 IP 地址,自动建立并保持 VPN 连接,然后再加密 。如果知道双方的公网 IP 地址,也是可以将 VPN 一起加密的 。ipsec 通过 500 或者 4500 端口连接,加密之后,就没人知道你使用 VPN 连接了 。这种方法听起来更科学 。
分别安装 ipsec-tools,加载 ipsec 模块:
# pkg install ipsec-tools# kldload ipsec可用下面的命令来查看系统加载了哪些模块:
# kldstatId Refs AddressSize Name 133 0xffffffff802000001f30590 kernel 21 0xffffffff821310001fee0 ipsec.ko 31 0xffffffff823190003218 intpm.ko 41 0xffffffff8231d0002180 smbus.ko 51 0xffffffff8232000039c0 ng_socket.ko 69 0xffffffff82324000aac8 netgraph.ko 71 0xffffffff8232f00043c4 ng_mppc.ko 81 0xffffffff8233400020b0 rc4.ko 91 0xffffffff823370002398 ng_iface.ko101 0xffffffff8233a00061e8 ng_ppp.ko111 0xffffffff823410002138 ng_tee.ko121 0xffffffff823440003278 ng_pptpgre.ko131 0xffffffff8234800031e8 ng_ksocket.ko141 0xffffffff8234c0003138 ng_vjc.ko151 0xffffffff823500002a08 mac_ntpd.ko161 0xffffffff823530002138 ng_tcpmss.ko子网一:10.10.10.0 路由器 10.10.10.99 的配置:
创建 psk.txt 文件
# cd /usr/local/etc/racoon# echo "172.15.0.19 abcdefg123456">psk.txt# chmod 400 psk.txtsetkey.conf 文件内容:
flush;spdflush;# To the home networkspdadd 10.10.10.0/24 172.15.0.0/24 any -P out ipsec esp/tunnel/10.10.10.99-172.15.0.19/use;spdadd 172.15.0.0/24 10.10.10.0/24 any -P in ipsec esp/tunnel/172.15.0.19-10.10.10.99/use;racoon.conf 文件内容:
pathpre_shared_key"/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file#logdebug; #log verbosity setting: set to 'notify' when testing and debugging is completepadding # options are not to be changed{maximum_length20;randomizeoff;strict_checkoff;exclusive_tailoff;}timer # timing options. change as needed{counter5;interval20 sec;persend1;#natt_keepalive15 sec;phase130 sec;phase215 sec;}listen # address [port] that racoon will listen on{isakmp10.10.10.99 [500];isakmp_natt10.10.10.99 [4500];}remoteanonymous [500]{exchange_modemain,aggressive;doiipsec_doi;situationidentity_only;my_identifieraddress10.10.10.99;peers_identifieraddress172.15.0.19;lifetimetime 8 hour;passiveoff;proposal_checkobey;#nat_traversaloff;generate_policy off;proposal {encryption_algorithmblowfish;hash_algorithmmd5;authentication_methodpre_shared_key;lifetime time30 sec;dh_group1;}}sainfo(address 10.10.10.0/24 any address 172.15.0.0/24 any) # address $network/$netmask $type address $network/$netmask $type ( $type being any or esp){# $network must be the two internal networks you are joining.pfs_group1;lifetimetime36000 sec;encryption_algorithmaes 256;authentication_algorithmhmac_sha1;compression_algorithmdeflate;}子网二:172.15.0.0 路由器:172.15.0.19 的配置 。
配置和前述路由器的配置相似,将IP地址和子网地址对调,或者对应更换 IP 地址 。
配置完成之后,两端分别执行以下命令:
# setkey -f /usr/local/etc/racoon/setkey.conf# # /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log在内网访问对方内网机器,在路由器运行 tcpdump,会看到类似以下内容:
# tcpdump -i ng0 host 172.15.0.19 and dst 10.10.10.99tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on ng0, link-type NULL (BSD loopback), capture size 262144 bytes10:24:29.593381 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7a7), length 10010:24:29.609804 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7a8), length 10010:24:29.625372 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7a9), length 10010:24:29.625393 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7aa), length 16410:24:29.646215 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7ab), length 8410:24:29.688834 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7ac), length 10010:24:29.688852 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7ad), length 10010:24:29.689152 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7ae), length 131610:24:29.689239 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7af), length 131610:24:29.689306 IP 172.15.0.19 > 10.10.10.99: ESP(spi=0x0936e5a7,seq=0x7b0), length 500


推荐阅读