deepin一次vpn无聊的踩坑记录

2022-04-09  本文已影响0人  NLBSN

背景:

工作软件环境:

概念介绍:

参考:L2TP与IPSec两种VPN的概要比较

简单说说自己对l2tp/ipsec的理解:l2tp建立了我和公司局域网之间的通道,但是这个通道还没有加密,ipsec就在这个通道上进行了加密操作。

排查原因:

在deepin更新之前,我看了下更新内容,内核有更新(当时忘记了deepin的内核需要自己更新,还以为系统更新了内核就更新了),还有其他的一些安全更新,和日常的软件更新,并没有针对vpn的一些协议更新。(为什么要看更新内容,主要是踩过windows的一次坑,windows11 2022年1月份左右的一次更新,对vpn中的某些协议内容进行了更新,然后导致vpn无法使用,幸好微软官方及时发布了补丁)

1、问题:难道是内核的更新导致vpn无法使用?

deepin目前的vpn管理是使用的开源的network-manager-l2tp 和 network-manager-l2tp-gnome进行管理vpn的,连接vpn的时候需要填写ipsec的相关信息。 image.png

初步怀疑:难道是内核更新之后,导致密钥交换协议更新了,然后无法使用。(密钥的加密等级太低,会在后面的更新中慢慢淘汰掉)

先查看公司vpn支持的密钥交换协议,推荐这个脚本

image.png

或者直接使用ike-scan :
1、安装:sudo apt install ike-scan
2、命令:ike-scan vpn地址

通过以上两种方式都可以得到公司服务器支持的vpn加密协议方式,通过第二种方式获取到的加密协议方式发现和我之前的不一样,开始了接下来的瞎折腾。

第一次连接vpn的时候,曾安装过:libreswan(sudo apt install libreswan),发现自己本地的3.27.1版本,官方最新的版本已经是4.6了,但是我本地的版本已经是Debian仓库最新的了。简单尝试编译了一下,失败了。太晚了,就休息了。

第二天,搜索的时候,发现libreswan、strongswan和openvpn这三个被并列说过,经过查询,这三个是ipsec最终的实现方式。一边通过sudo journalctl -u NetworkManager -f查看日志,一边卸载libreswan,安装strongswan尝试换个软件是否可以使用。(在这儿犯了一个错,没有看完整的日志,只看到了输出时加粗的那句:g_dbus_method_invocation_take_error:(又被误导了))

查了n多资料...基于l2tp/ipsec的大概实现方式自己已经知道了。开始最后的排查。

2、最后的排查

基于l2tp/ipsec的实现方式基本已经知道了,理理思路进行排查。

3、解决

在最后重新新建vpn的时候,发现通过域名解析的vpn地址和之前的不一样。
-----------------此处省略300字----------------
新建vpn终止,直接将原来的vpn地址换成现在新的vpn ip地址,连接成功..............

4、为什么会发生这样的问题

郁闷的找同事一吐槽,结果他告诉我,我们经理昨晚启动过路由器,因为公司的网被劫持了,所以重启了。。。就导致了deepin这种不能采用域名进行连接vpn的人的悲催。

5、总结

vpn无法连接,其实很简单。。。

上一篇 下一篇

猜你喜欢

热点阅读