一、写在最前面
1. L2TP的优点
- 预共享密钥类型的L2TP服务搭建非常简单;
- 支持广泛,绝大多数路由器都支持(不包括50块钱的家用型路由器);
- 使用场景覆盖较广,既可用于外部设备远程接入,也可用于两个局域网间的互联。
2. L2TP方案的缺点:
- 兼容性:虽然看上去很多路由器都支持,但是基本都是预共享密钥类型的L2TP,很多终端并不兼容,甚至默认不提供L2TP配置;
- 稳定性:经常会突然连不上,换个网络甚至同一个网络不同时间就会碰到莫名其妙的错误;
- 复杂度:由于L2TP本身只负责数据封装,不负责加密,如果有一定的安全需求,还要搭配额外的认证和加密手段来保障,这样一来,部署成本并不比其它类型的方案更低。
3. IKE简单说明
- 平时IKE见得比较多的地方是ipsec点到点场景,利用IKE进行密钥协商与安全连接建立;
- 同时也能用来做远程连接服务器,提供客户端接入能力,不过搭建比较麻烦,很多时候并不是首选方案。
4. 为什么写这篇文章
因为我用l2tp拨回家或者拨到公司的网络时,经常会出现各种莫名其妙的错误导致无法连接,所以需要用一种更稳定的备用方案做远程连接。可能是因为pfSense防火墙使用并不多,加上这个方案并不如其它方案常见,所以网上的资料非常少(也可能是因为官方网站已经有非常详尽的指引了),所以在此做一个简单翻译,结合自己的实际操作做个简单分享。
官方链接 – 服务搭建:https://docs.netgate.com/pfsense/en/latest/recipes/ipsec-mobile-ikev2-eap-mschapv2.html
官方链接 – 客户端配置:https://docs.netgate.com/pfsense/en/latest/recipes/ipsec-mobile-ikev2-client-windows.html
二、服务搭建
1. 大致步骤:
- 创建CA(如果已经有了,可以省略这一步)
- 为服务端颁发证书
- 打开IPSEC Mobile Client支持
- 配置P1和P2
- 添加用户
- 配置防火墙放行IPSEC端口,以及IPSEC内部流量
- 配置客户端(导入CA证书、创建连接)
2. 创建CA:填写一个方便自己识别的名字作为Descriptive name,剩下的可以全部保持默认。
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427529651-1024x887.png)
3. 为服务颁发证书
a. System -> Certificate Manager -> Certificates页面,点击Add按钮添加一个新的证书;
b. Method选择 Create an internal certificate;
c. Descriptive Name一栏填上描述文字,比如 ikev2 server;
d. 选择已有的(或上一步创建的)CA;
e. CommonName填写本服务所用域名(甚至可以是DDNS域名);
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427429521-794x1024.png)
g. Alternative Names:Type栏选择FQDN or Hostname,Value一栏把刚才的Common Name再填一遍
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427429891-1024x576.png)
4. 配置IPSEC Mobile Client支持
a. 开启IPSEC
b. 打开IPSec Mobile Client Support,选择本地数据库认证
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427431171.png)
c. 分配IPV4网段(如果需要ipv6,可以按需配置,其它配置也是如此,我自己这个服务器上只配置了一个ipv4网段,后面的选项全部保持默认)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427431411.png)
d. 完成以后点击保存,这时会提示我们创建Phase 1
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427431651-1024x511.png)
a. 绝大多数配置项都保持默认即可;
![](https://www.chenxin.info/wp-content/uploads/2022/01/1642743201.png)
b. Phase Proposal(Authentication):
- Authentication Method选择EAP-MSChapV2
- My identifier选择Distinguished name,Value处填写刚才签发证书的域名;
- Peer identifier 选择Any;
- My Certificate选择刚才签发的证书;
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427432431-1024x390.png)
c. 剩下的全部保持默认,并点击保存,此时会回到Tunnel列表。
6. 配置P2
a. 在Tunnel列表中找到刚才创建的Phase1,点击Show Phase 2 Entries,由于并未创建任何Phase2项目,此处为空,直接点击Add P2;
b. 按需设置(我在这儿什么都没有设置,直接保存)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427432931-1024x419.png)
7. 添加用户
a. 导航到IPSEC页面的Preshared Keys标签
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427433161-1024x287.png)
b. 填写用户名,加密方式(EAP),和密码,其它的可以全部保持默认。
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427433351.png)
8. 防火墙策略
a. 在WAN作用域中,放行IKE端口(udp 500, udp 4500)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427433561-1024x477.png)
b. 在ipsec作用域中,放行内部流量(可以粗暴一点直接设置permit any to any,如果希望更精准,需要在此配置策略允许访问内部网段以及从内部网段发起的通信,即P2的Local Network配置项)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427433741-1024x250.png)
9. 客户端(Windows)
a. 下载CA证书到客户端电脑(只需要下载证书即可,不需要私钥)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434021-1024x507.png)
b. 双击下载的证书,打开证书安装向导,为客户端导入CA证书(存入受信任的根证书颁发机构)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434171.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434261.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434331-893x1024.png)
c. 按下面的截图新建IKEV2连接
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434471.png)
d. 看一眼连接属性
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434631.png)
e. 拨号,结果发现有惊喜
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434761.png)
10. Trouble Shooting
a. 提示信息已经很直接了:策略匹配错误,先上防火墙看看情况(pfSense每个页面几乎都有这样的视图按钮,可以快速对本页服务进行控制,查看相关服务状态,查看所关联的日志记录)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427434981-1024x686.png)
b. 可以在日志里看到,客户端请求的IKE算法和防火墙所配置的算法之间没有匹配出任何结果,解决方法也很简单:在防火墙安全提议里添加上与客户端兼容的算法即可(各类客户端支持的算法不尽相同,服务端均需按此步骤处理以进行兼容,ESP也可能出现这个问题,处理方法类似)。
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427435131-1024x290.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427435231-1024x240.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427435351-1024x307.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427435431-1024x760.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/16427435511.png)
![](https://www.chenxin.info/wp-content/uploads/2022/01/1642743559.png)