远程管理pfSense防火墙的方法非常多,最方便的是开启WAN接口的访问权限,但这样做可能不太安全,最安全的方法是通过VPN隧道进行远程访问,下面以使用IPsec VPN为例,介绍远程访问配置过程。所有配置都基于pfSense plus 22.01中文定制版系统完成。
防火墙IPsec配置
由于配置证书及在手机上导入证书操作相对复杂,本次配置的IPsec采用Mutual PSK + Xauth认证方式。防火墙IPsec的配置主要包括用户配置、移动客户端配置、阶段1和阶段2配置、防火墙规则配置等五个方面。
用户配置
添加一个VPN组,并赋予组IPsec VPN拨号认证的权限。
导航到系统>用户管理,组选项卡,添加一个IPSEC_VPN用户组。
保存后,在新添加的组列表右则,点击编辑图标,给组赋予IPsec xauth Dialin(拨号认证)权限。
然后导航到系统>用户管理,用户选项卡,添加一个远程访问用户。并将该用户添加至刚才新建的IPSEC_VPN组中。
输入IPsec预共享密钥,且必须与后面阶段1中设置的IPsec预共享密钥相同。
移动客户端配置
导航到VPN>IPsec>移动客户端选项卡,设置以下参数:
- 启用 IPsec 移动客户端支持
- 用户认证:本地数据库
- 选中组认证。来源:IPsec_VPN
- 选中向客户端提供虚拟IP地址,注意:这里的地址不能是防火墙上任何已设置的地址。
- 选中DNS服务器,填上一至两个公共DNS服务器。注意:这里填入DNS,并在阶段2中将网络设置为0.0.0.0/0,当客户端连接VPN后,将默认通过pfSense防火墙连接外部网络。
- 其他选项保留默认。
IPSec阶段1设置
保存移动客户端配置后,会提示创建阶段1配置。阶段1设置参数如下:
- 密钥交换版本选auto或IKEv1
- 认证方法:Mutual PSK + Xauth
- 本地ID类型:我的IP地址
- 远程ID类型:any。注意不要选远程IP地址,经测试会无法连接。可以选 ASN.1专有名称或Automatic based on content。
- 输入或生成预共享密钥,须与前面添加的远程访问用户的IPsec预共享密钥相同。
- 生存时间:86400
- NAT-T:Auto
- 其他选项参照下图进行设置
IPSec阶段2设置
保存IPSec阶段1设置后,添加阶段2条目:
- 模式选IPv4隧道
- 本地网络:设置为0.0.0.0/0网络,从防火墙进行出站。设置为LAN网络,则从本地出站。
- 密钥交换协议:ESP
- 加密算法AES256\SHA1
- PFS密钥组:关
- 生存时间:28800
- 其他选项参照下图进行设置。
防火墙规则配置
转到防火墙>规则策略,添加以下防火墙规则
在IPsec选项卡上,添加一条any to any规则,如下图所示:
在WAN选项卡上,放行UDP500和4500端口,如下图所示:
至此,pfSense上的IPsec VPN配置完成。
移动端设置
以下为IOS上的配置。转到设置>VPN,点击下面的添加VPN配置,输入各项VPN参数:
- 服务器:pfSense防火墙的公网IP
- 账户密码:添加的远程用户和密码
- 密钥:在阶段1中设置的预共享密钥
- 其他选项留空
保存后,在状态的右则,滑动连接按钮即可。
连接测试
转到状态>IPsec,可以查看VPN的连接状态:
在手机端输入防火墙的LAN访问地址,检查是否能正常远程访问pfSense防火墙。
安卓手机的配置,大同小异,这里不再赘述。