Openwrt ipsec介绍

Openwrt ipsec介绍

# 1.编译ipsec代码

openwrt 推荐使用strongswan实现ipsec,在openwrt中集成strongswan步骤如下:

1).make menuconfig选择Network -> VPN -> strongswan

2).进入stongswan子目录,其中包含strongswan的各种插件选项和一些默认插件组合的选项(如strongswan-default/strongswan-full等插件组合),strongswan-default具有基本的ipsec功能,选中strongswan-default实现基本ipsec功能;如果在openwrt制作ipsec认证证书,选中strongswan-pki,如果获取ike/esp的密钥(用来解码ike/esp数据),选中strongswan-mod-save-keys;其中openwrt默认没有save-keys插件,在Makefile中添加save-keys插件(Makefile位置:openwrt\package\feeds\packages\strongswan\Makefile),再menuconfig选中。

3).编译并烧录bin

2.运行ipsec

串口登入openwrt设置ipsec配置文件,涉及/ect/ipsec.conf、/etc/ipsec.secrets、/etc/strongswan.conf文件;ipsec有三种身份验证:预置共享密钥(PSK)、公钥验证、可扩展认证协议(EAP),用下图网络结构说明三种身份验证中如何设置strongswan配置文件。

其中板卡(Openwrt) 用usb (RNDIS)和虚拟机(VirtualBox)连接,enp0s17是虚拟机另一张网卡,假设虚拟机为服务端(或网关),板卡为客户端;Openwrt/ VirtualBox网卡信息如上。

1).预置共享密钥(PSK)

i).服务端配置

配置/etc/ipsec.conf和/etc/ipsec.secrets后输入ipsec restart重启ipsec。

ii).客户端配置

配置/etc/ipsec.conf和/etc/ipsec.secrets后输入ipsec restart重启ipsec。

等重启结束,输入ipsec statusall查看ipsec隧道是否建立,隧道正常建立如下,此时ping 10.0.2.15是能ping通的。

2).服务端证书认证,客户端EAP

i).对于证书认证,需要生成证书,步骤如下:

①生成CA证书

测试时,可在服务端/客户端生成CA证书。

②生成服务端证书和公私钥

③生成客户端证书和公私钥

后面还会介绍服务/客户端都使用认证的情况,所以这样将客户端证书和公私钥生成步骤一起介绍。

④安装证书

服务端安装证书

CA证书ca.cert.pem、服务端证书server.cert.pem、服务端私钥server.pem拷贝进如下目录:

客户端安装证书

客户端证书client.cert.pem、服务端公钥server.pub.pem、客户端私钥client.pem拷贝进如下目录:

ii). 服务端配置

配置/etc/ipsec.conf和/etc/ipsec.secrets后输入ipsec restart重启ipsec。

iii). 客户端配置

配置/etc/ipsec. Secrets和/etc/ipsec.conf后客户端输入ipsec restart重启ipsec,等重启结束,输入ipsec statusall查看ipsec隧道是否建立,正常建立后,ping 10.0.2.15是能ping通的。

3).证书认证

i). 服务端配置

配置/etc/ipsec.conf和/etc/ipsec.secrets后输入ipsec restart重启ipsec。

ii). 客户端配置

配置/etc/ipsec.conf和/etc/ipsec.secrets后输入ipsec restart重启ipsec;等重启结束,输入ipsec statusall查看ipsec隧道是否建立,隧道正常建立后,ping 10.0.2.15是能ping通的。

3.保存esp/ike keys

解密esp/ike数据,需要keys;保存keys需要添加save-keys插件,添加步骤参考“1.编译ipsec代码”的步骤2);在串口执行ipsec statusall看到save-keys已经加装进来;

在/etc/strongswan.conf文件中添加如下配置:

 

keys(esp_sa/ikev2_decryption_table)保存在/tmp/log目录,解密参考文献vi)。

注意:strongswan对save-keys plugin有如下一段描述:

save-keys插件仅用于调试,正式版本中不能包含save-keys插件。

4.virtual ip address

i).服务端配置

ii).客户端配置

iii).ipsec statusall

iv).建虚拟网卡

v).抓包

注:默认ipsec wireshak log加密,用3.保存esp/ike keys生成的esp_sa解密,解密方法:复制esp_sa到C:\Users\xxxxxx\AppData\Roaming\Wireshark,重新打开wireshark log。

5.参考资料

i). https://www.strongswan.org/testing/testresults/ikev2/acert-fallback/index.html

ii). https://docs.strongswan.org/docs/5.9/plugins/save-keys.html

iii). https://zhuanlan.zhihu.com/p/100535851

iv). https://openwrt.org/docs/guide-user/services/vpn/strongswan/basics?s[]=ipsec

v). https://blog.csdn.net/weixin_45134977/article/details/114031816

vi). https://blog.csdn.net/sinat_20184565/article/details/102845438

常见问题

编译错误:

1.选择strongswan-full编译报错

checking for ldap_init in -lldap... no

configure: error: LDAP library ldap not found

make[3]: *** [Makefile:600: /home/humaoliu/issue1/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.25_eabi/strongswan-5.9.0/.configured_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyynyynyyyyyyyyyyyyyyyyyyyyynyyyynyyyyyyyyyyyyyy] Error 1

解决办法:

运行错误:

1.openwrt生成私钥出错

解决办法:

选中strongswan-mod-openssl

2.测试“服务端证书认证,客户端EAP”时配置文件设置正确,但ipsec statusall显示没有SA:

查看客户端日志,显示EAP method not supported:

解决办法:

选中strongswan-mod-eap- mschapv2

3.测试“证书认证测”时配置文件设置正确,但ipsec statusall显示没有SA:

查看客户端日志,显示收到服务端的AUTHENTICATION_FAILED信息:

再查看服务端日志(vim /var/log/syslog),其中有一段显示如下,说明客户端证书时间有问题:

解决办法:

校准客户端(openwrt)时间(插入sim卡),重新制作客户端证书

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值