×

基于openwrt racoon的ipsec设置以及调试

hqy hqy 发表于2019-01-21 14:16:28 浏览4193 评论0

抢沙发发表评论

基于openwrt racoon的ipsec设置以及调试



基于openwrt racoon的ipsec设置以及调试


1、setkey配置


在建立racoon配置以前,必须手动对setkey配置。ipsec有两种数据封装模式:


a.传输模式(Transport mode).


b.隧道模式(Tunnel mode)


传输模式:主要是在原始IP头部和IP负载之间插入一个ESP头部,当然也会在最后加上ESP尾部 和ESP验证数据部分。我们把实际通信的设备叫做通信点,把加密数据的设备叫做加密点,一般加密点等于传输点的条件使用传输模式。


隧道模式:隧道模式把原始IP数据包整个封装到了一个新的IP数据包中,并且在新的IP头部和原始IP头部中间插入了ESP头部,以此对整个原始IP数据包进行了加密处理。只要加密点不等于通信点我们就应该采用隧道模式。


setkey具体配置:


传输模式:spdadd wanip[port1] remoteip[port2] protocol -P out ipsec esp/transport//require;


spdadd remoteip[port2] wanip[port1] protocol -P in ipsec esp/transport//require;


隧道模式:spdadd local_subnet[port1] remote_subnet[port2] protocol -P out ipsec esp/tunnel/wanip-remoteip/unique; spdadd remote_subnet[port2] local_subnet[port1] protocol -P in ipsec esp/tunnel/remoteip-wanip/unique; 注:port可以为具体指定的port,也可以为any。remoteip可以为0.0.0.0,protocol值为(tcp、udp、icmp或者any)。两端ipsec链接设备应该是相对应的设置。


清空setkey配置的方法:flush;spdflush;


查看SAD与SPD信息的方法:setkey -DP


2、firewall设置


iptables -I vpn_input -p esp -j ACCEPT


iptables -I vpn_input -p udp --dport 500 -j ACCEPT


ipt bles -I vpn_input -p udp --dport 4500 -j ACCEPT


iptables -A vpn_forwarding -s remote_subnet -d local_subnet -j ACCEPT


iptables -t nat -A vpn_postrouting -s local_subnet -d remote_subnet -j ACCEPT


3、racoon配置


在openwrt框架下,后台设置需要三个组成部分:配置文件(/etc/config/racoon)、启动脚本(/etc/init.d/racoon)、实际启动的进程以及配置文件(/usr/sbin/racoon -f /var/racoon/racoon.conf)


配置文件(/etc/config/racoon),tunnel模式配置文件如下图所示(示例):


config racoon 'racoon'


option foreground '0'


option zone 'vpn'


list listen 'wan'


config tunnel 'acme'


option exchange_mode 'aggressive'


option protocol 'any'


list p1_proposal 'p1_proposal_1'


list sainfo 'sainfo_1'


option pre_shared_key '12345678'


option remote '10.0.0.1'


option enabled '0'


config p1_proposal 'p1_proposal_1'


option encryption_algorithm 'aes 128'


option hash_algorithm 'sha1'


option dh_group '2'


option authentication_method 'pre_shared_key'



config sainfo 'sainfo_1'


option local_subnet '192.168.2.0/24'


option remote_subnet '192.168.1.0/24'


option p2_proposal 'p2_proposal_1'


config p2_proposal 'p2_proposal_1'


option encryption_algorithm 'aes 128'


option authentication_algorithm 'hmac_sha1'


option pfs_group '2'


注:传输模式下remote 值为anonymous,不再需要local_subnet 与remote_subnet 的值


各个配置的含义可以参考以下网址:https://http://www.wendangxiazai.com/doc/uci/racoon?s[]=racoon


ipsec简单介绍:ipsec框架包括:散列函数(MD5、SHA-1...),加密算法(DES、3DES、AES...),封装模式(传输模式、隧道模式...),互联网秘钥交换协议(IKE)。。。


启动脚本(/etc/init.d/racoon),篇幅过长,不再做列举,详细脚本内容可以参考以下网址:


https://http://www.wendangxiazai.com/doc/howto/vpn.ipsec.basics.racoon?s[]=racoon


实际启动的进程以及配置文件:进程启动方式:/usr/sbin/racoon -f /var/racoon/racoon.conf


/var/racoon/racoon.conf示例:


# auto generated by /etc/init.d/racoon


path pre_shared_key "/var/racoon/psk.txt";


path certificate "/var/racoon/cert";


padding {


maximum_length 20; randomize off;


strict_check off; exclusive_tail off;


}


timer {


counter 5; interval 20 sec; persend 1;


phase1 30 sec; phase2 15 sec;


}


listen {


isakmp 172.16.10.113;


isakmp_natt 172.16.10.113 [4500];


}


remote anonymous {


generate_policy on;


exchange_mode aggressive;


proposal_check obey;


nat_traversal on;


proposal {


lifetime time 28800 sec;


encryption_algorithm aes 128;


hash_algorithm sha1;


authentication_method pre_shared_key;


dh_group 2;


}


}


sainfo anonymous {


pfs_group 2;


lifetime time 3600 sec;


encryption_algorithm aes 128;


authentication_algorithm hmac_sha1;


compression_algorithm deflate;


}



注:/var/racoon/psk.txt为预共享秘钥存放文件,/var/racoon/cert为证书存放文件夹。


4、racoon调试方法


通过前台启动racoon以及打印debug可以调试ipsec链接:/usr/sbin/racoon -dF -f /var/racoon/racoon.conf。同时可以查看系统log信息(logread)


打赏

本文链接:https://www.kinber.cn/post/222.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客