在移动客户端通过IPsec VPN访问pfSense防火墙配置指南里,介绍了使用共享密钥方式配置IPsec VPN过程,相比较预共享密钥的认证方式,采用证书认证会相对复杂一些,但安全性方面会有所提高。在本文中,将介绍使用证书来配置IKEv2 IPsec VPN的方法 。本文的所有配置都基于pfSense plus 22.01系统完成。
创建证书
在pfSense上创建证书颁发机构(CA)和服务器证书。
创建CA
导航到系统 > 证书管理,CAs选项卡,点击“+”添加,设置CA参数如下:
- 证书来源:创建内部CA
- 信任库:选中
- 随机序列:选中
- 密钥类型:RSA
- 通用名称:jxgs
- 其他选项如下图所示
创建服务器证书
导航到系统 > 证书管理,证书选项卡,点击”+”添加,设置服务器证书参数如下:
- 证书来源:创建内部证书
- 描述名称:Server cer
- 证书颁发机构:AAA(前面创建的CA)
- 密钥类型:RSA
- 通用名称:jxgs
- 国家代码:CN
- 证书类型:服务器证书
- 替代名称:防火墙的FQDN和公网IP地址
IPsec配置
包含移动客户端配置、阶段1配置、阶段2配置三部分。
移动客户端配置
导航到VPN>IPsec>移动客户端选项卡,设置以下参数:
- 启用 IPsec 移动客户端支持
- 用户认证:本地数据库
- 组认证:选中
- 认证组:Sysem Administrators
- 选中向客户端提供虚拟IP地址,注意:这里的地址不能是防火墙上任何已设置的地址。
- 选中DNS服务器,填上一至两个公共DNS服务器。注意:这里填入DNS,并在阶段2中将网络设置为0.0.0.0/0,当客户端连接VPN后,将默认通过pfSense防火墙连接外部网络。
- 其他选项保持默认。
IPSec阶段1设置
保存移动客户端配置后,会提示创建阶段1配置。阶段1设置参数如下:
- 密钥交换版本:IKEv2
- 认证方法:EAP-TLS
- 本地ID类型:ASN.1专有名称(证书的通用名称)
- 远程ID类型:any
- 我的证书:选中前面创建的服务器证书
- 证书颁发机构:选中前面创建的CA
- 加密算法:AS256-GCM\128bits\SHA384\20(nist ecp384)\
- 生存时间:28800
- 随机时间:20
- NAT-T:Auto
- MOBIKE:启用
- DPD检测:选中
- 其他选项参照下图进行设置
保存阶段1设置后,接着添加阶段2。
IPSec阶段2设置
添加阶段2条目:
- 模式:IPv4隧道
- 本地网络:设置为0.0.0.0/0网络,从防火墙进行出站。设置为LAN网络,则从本地出站。
- 密钥交换协议:ESP
- 加密算法:\AES256-GCM\128bits
- PFS密钥组:20(nist ecp384)
- 生存时间:3600
- 其他参数保持默认设置。
防火墙规则配置
转到防火墙>规则策略,添加以下防火墙规则
在IPsec选项卡上,添加一条any to any规则,如下图所示:
在WAN选项卡上,放行UDP500和4500端口,如下图所示:
至此,pfSense上的IPsec VPN配置完成。
导出配置文件
转到VPN>IPsec Expot:Apple Profile(这是pfSense plus独有的插件,pfSense CE版本没有),选择导出参数。服务器地址选防火墙的公网地址。注意:在前面创建证书时,如果在证书属性的替代名称处没有输入防火墙的公网地址,则这里不会显示公网IP地址,导出的配置文件将无法保证正常连接。设置完成后,导出供IOS设备使用的配置文件。
手机端设置
将导出的以mobileconfig为扩展名的配置文件,以附件的形式发送到IOS手机邮件客户端能收到的邮件地址,使用邮件程序打开附件,按提示进行操作。
看到这个提示,关闭后,转到手机的设置页面,找到已下载描述文件选项:
点击右上角的安装:
输入手机密码后,再一次点击右上的安装按钮:
完成后如下图所示:
在VPN项下,多了一个配置文件的连接:
滑动连接按钮,就可以完成VPN的连接。
连接测试
转到状态>IPsec,查看VPN的连接状态:
在手机端输入防火墙的LAN访问地址,检查是否能正常远程访问pfSense防火墙。也可以检查访问网络的公网IP,是否是通过pfSense防火墙进行出站。
其他
Windows10及以上系统使用IKEv2连接故障解决方法参考以下链接: