关于这个问题!
网上一顿文章瞎叽霸写的都是些什么叽霸玩意!图片
如果你是自己搭建的IPSec L2TP服务器,而且你又在其他地方折腾了半天Windows连接L2TP的问题,那么这篇文章适合你!
今天,我们来好好说说Windows下的L2TP over IPSec的各种问题。
目前看来,默认配置下,几乎所有的windows都无法顺利连接L2TP over ipsec,解决Windows连接L2TP有两种方案,
方案一:直接禁用ipsec协商方案二:允许L2TP唤醒ipsec,同时修改ipsec协商参数网上大部分文章给的都是基于方案一,然后再歪七扭八整了一堆注册表修改项,只要你看到下面这个截图,基本就是直接禁用ipsec的套路了。
图片
方案一不能说不对,很多网络小白确实靠着这个办法顺利连上了。但是: 这种办法连接的L2TP是没有经过ipsec加密保护的哟,客户端和服务器是直接使用1701的L2TP端口通信的哟!!!!明文传输数据哟!!!!!!!! 如何检验流量有没有加密呢?防火墙不放通1701,仅放通500和4500 UDP两个IPSec端口,还能建联的,才是真的经过了ipsec加密。好了,吐槽完了,我们开始正式说一下从服务端,到windows客户端如何配置:
一、防火墙配置注意,我们绝不在公网侧直接放通UDP 1701端口。 我们希望的是:
公网流量先经过IPSec加密然后在IPSec隧道侧承接L2TP的UDP 1701端口的流量让L2TP流量封装在IPSec隧道内,实现真正的L2TP over IPSec的配置。因此我们的配置类似于下面的截图:
1、WAN口仅放行500+4500 UDP流量图片
2、IPsec虚接口放行L2TP UDP 1701流量图片
二、服务器端IPSec协商参数从Microsoft官方找到了唯一的一篇有关Windows的IPSec安全提议的文档。 Default encryption settings for the Microsoft L2TP/IPSec Client 简单总结下来,服务端配置的安全提议
阶段一提议至少应该包含以下组合: 3DES-SHA1-DH组2阶段二至少应该包含3DES加密算法和SHA1散列算法封装方式使用传输模式实测Windows连接后,确实使用此提议的组合进行连接。
图片
同时为了更好的兼容MacOS、iOS和安卓,推荐多搞一点各种提议的组合,逗老师我测试了一下,下面这种组合在各种系统连接时,都可以做到最大兼容。
图片
三、Windows端修改注册表 1、允许IPSec穿越NAT说明: 正常的IPSec使用500 UDP端口进行通信,但是因为IPSec建联时需要比较IKE包内host id字段与IP包头实际IP,所以需要引入后续版本的NAT穿越技术,由500初次建联,之后交由4500端口进行NAT穿越建联。 默认windows不支持NAT穿越,配置AssumeUDPEncapsulationContextOnSendRule字段用于允许IPSec使用UDP 4500端口进行NAT穿越。 配置方式: 开始,管理员身份运行CMD 复制粘贴下面命令
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
或者手动进入regedit,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent 新建一个 dword类型的键AssumeUDPEncapsulationContextOnSendRule值为2。
2、允许L2TP唤醒IPSec说明: 这个配置不一定会影响建立连接,但是可能会影响休眠后重新唤醒IPSec加密。 配置: 开始,管理员身份运行CMD 复制粘贴下面命令
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters /v AllowL2TPWeakCrypto /t REG_DWORD /d 0x1 /f
或者手动进入regedit,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters 新建一个 dword类型的键AllowL2TPWeakCrypto值为1。
3、允许IPSec运行说明: 我估计大家在看到这篇文章之前,肯定已经照着网上的各种文章搞了一堆乱七八糟的东西了。 大部分文章中都会引导禁用IPSec运行,但这是不对的呀!瞎鸡儿整。 恢复ProhibitIpSec配置
配置: 开始,管理员身份运行CMD 复制粘贴下面命令
REG ADD HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters /v ProhibitIpSec /t REG_DWORD /d 0x0 /f
或者手动进入regedit,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters 删除ProhibitIpSec键值。
4、神仙操作,禁用Xbox网络服务这是redit上一个神仙网友发现的操作,玄学操作,但是有用。 进入【服务】,找到Xbox Live 网络服务,给他禁用掉。
图片
5、确认L2TP身份验证方式和加密从服务器端确认L2TP身份验证方式,例如是CHAP还是MSCHAPv2,并在Windows客户端正确配置相应的身份验证方式。 不知道是啥身份验证方式的话,就在Windows客户端把所有的身份验证方式都勾上。 同时,务必确保【数据加密】不要选择“不允许加密”,否则又不会协商IPSec了。
图片
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。