IPSec手动创建隧道

 

网络拓扑

    |-------------------|             |-------------------|
    |                   |             |                   |
    |   192.168.1.115   | <---------> |   192.168.1.142   |
    |                   |             |                   |
    |-------------------|             |-------------------|

 

配置192.168.1.115

 

创建xfrm的state,即IPSec定义的安全关联数据库(Security Association DataBase)。md5哈希算法的秘钥长度为16字节,3DES加密算法秘钥长度为24字节。可选择的哈希算法还有:sha1、sha256和sha384等,可选的加密算法有:aes、twofish等。以下创建两个方向的SA。

$ sudo ip xfrm state add src 192.168.1.115 dst 192.168.1.142 proto esp spi 0x00000301 mode tunnel auth md5 0x8896ab8654cd9875e214a978bd31209f enc des3_ede 0xea89273861739abc9e0d527ad98462108365289dcb1a6738
$
$ sudo ip xfrm state add src 192.168.1.142 dst 192.168.1.115 proto esp spi 0x00000302 mode tunnel auth md5 0x8ab2639471536c8d92a0e82618e92ac7 enc des3_ede 0xec91728a907c6d526178493027139dce56473926ac947289

以下命令查看创建的SA,使用命令ip xfrm state list可查看全部的state列表。

$ sudo ip xfrm state get src 192.168.1.115 dst 192.168.1.142 proto esp spi 0x00000301
src 192.168.1.115 dst 192.168.1.142
        proto esp spi 0x00000301 reqid 0 mode tunnel
        replay-window 0 
        auth-trunc hmac(md5) 0x8896ab8654cd9875e214a978bd31209f 96
        enc cbc(des3_ede) 0xea89273861739abc9e0d527ad98462108365289dcb1a6738
        anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000
        sel src 0.0.0.0/0 dst 0.0.0.0/0 
$ 
$ sudo ip xfrm state get src 192.168.1.142 dst 192.168.1.115 proto esp spi 0x00000302    
src 192.168.1.142 dst 192.168.1.115
        proto esp spi 0x00000302 reqid 0 mode tunnel
        replay-window 0 
        auth-trunc hmac(md5) 0x8ab2639471536c8d92a0e82618e92ac7 96
        enc cbc(des3_ede) 0xec91728a907c6d526178493027139dce56473926ac947289
        anti-replay context: seq 0x0, oseq 0x0, bitmap 0x00000000
        sel src 0.0.0.0/0 dst 0.0.0.0/0 

 

以下创建两个方向的IPSec安全策略,即Security Policy DataBase。指定采用ESP协议,内核同时也支持AH协议。模式指定为隧道tunnel模式,其它支持的模式有:传输模式transport、Bound End-to-End Tunnel隧道模式 (beet),以及应用与IPv6的route  optimization和inbound trigger模式。

$ sudo ip xfrm policy add src 192.168.1.115 dst 192.168.1.142 dir out ptype main tmpl src 192.168.1.115 dst 192.168.1.142 proto esp mode tunnel
$ sudo ip xfrm policy add src 192.168.1.142 dst 192.168.1.115 dir in ptype main tmpl src 192.168.1.142 dst 192.168.1.115 proto esp mode tunnel

 

查看安全策略的配置

$ sudo ip xfrm policy ls
src 192.168.1.142/32 dst 192.168.1.115/32 
        dir in priority 0 
        tmpl src 192.168.1.142 dst 192.168.1.115
                proto esp reqid 0 mode tunnel
src 192.168.1.115/32 dst 192.168.1.142/32 
        dir out priority 0 
        tmpl src 192.168.1.115 dst 192.168.1.142
                proto esp reqid 0 mode tunnel

 


配置192.168.1.142


配置192.168.1.142两个方向的安全关联,内容必须与以上的192.168.1.115的安全关联完全一致。

$ sudo ip xfrm state add src 192.168.1.115 dst 192.168.1.142 proto esp spi 0x00000301 mode tunnel auth md5 0x8896ab8654cd9875e214a978bd31209f enc des3_ede 0xea89273861739abc9e0d527ad98462108365289dcb1a6738
$
$ sudo ip xfrm state add src 192.168.1.142 dst 192.168.1.115 proto esp spi 0x00000302 mode tunnel auth md5 0x8ab2639471536c8d92a0e82618e92ac7 enc des3_ede 0xec91728a907c6d526178493027139dce56473926ac947289

 

以下命令查看配置内容。

$ sudo ip xfrm state get src 192.168.1.115 dst 192.168.1.142 proto esp spi 0x00000301
src 192.168.1.115 dst 192.168.1.142
        proto esp spi 0x00000301 reqid 0 mode tunnel
        replay-window 0 
        auth-trunc hmac(md5) 0x8896ab8654cd9875e214a978bd31209f 96
        enc cbc(des3_ede) 0xea89273861739abc9e0d527ad98462108365289dcb1a6738
        sel src 0.0.0.0/0 dst 0.0.0.0/0 
$ 
$ sudo ip xfrm state get src 192.168.1.142 dst 192.168.1.115 proto esp spi 0x00000302    
src 192.168.1.142 dst 192.168.1.115
        proto esp spi 0x00000302 reqid 0 mode tunnel
        replay-window 0 
        auth-trunc hmac(md5) 0x8ab2639471536c8d92a0e82618e92ac7 96
        enc cbc(des3_ede) 0xec91728a907c6d526178493027139dce56473926ac947289
        sel src 0.0.0.0/0 dst 0.0.0.0/0 

 

对于安全策略的配置,此处与192.168.1.115的配置唯一的区别是数据流的方向,之前的in现在为out,之前的out现在为in,参见dir参数的值。其它的配置完全一致。

$ sudo ip xfrm policy add src 192.168.1.115 dst 192.168.1.142 dir in ptype main tmpl src 192.168.1.115 dst 192.168.1.142 proto esp mode tunnel
$ sudo ip xfrm policy add src 192.168.1.142 dst 192.168.1.115 dir out ptype main tmpl src 192.168.1.142 dst 192.168.1.115 proto esp mode tunnel

 

检查安全策略的配置。

$ sudo ip xfrm policy ls
src 192.168.1.142/32 dst 192.168.1.115/32 
        dir out priority 0 ptype main 
        tmpl src 192.168.1.142 dst 192.168.1.115
                proto esp reqid 0 mode tunnel
src 192.168.1.115/32 dst 192.168.1.142/32 
        dir in priority 0 ptype main 
        tmpl src 192.168.1.115 dst 192.168.1.142
                proto esp reqid 0 mode tunnel

 

测试连通性


在192.168.1.142上执行ping操作。

$ ping 192.168.1.115
PING 192.168.1.115 (192.168.1.115) 56(84) bytes of data.
64 bytes from 192.168.1.115: icmp_seq=1 ttl=64 time=0.186 ms
64 bytes from 192.168.1.115: icmp_seq=2 ttl=64 time=0.149 ms

 

使用tcpdump在192.168.1.115上抓包。
 

$ sudo tcpdump -i any -p esp -en
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
20:51:21.557161  In 00:0c:29:69:5d:54 ethertype IPv4 (0x0800), length 152: 192.168.1.142 > 192.168.1.115: ESP(spi=0x00000302,seq=0x21), length 116
20:51:21.557321 Out 00:0c:29:de:95:00 ethertype IPv4 (0x0800), length 152: 192.168.1.115 > 192.168.1.142: ESP(spi=0x00000301,seq=0x21), length 116

 

清空配置

情况安全关联和策略。

$ sudo ip xfrm state flush 
$ sudo ip xfrm policy flush

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值