基于路由的IPsec是管理IPsec流量的另一种方法。if_ipsec(4)从FreeBSD 11.1+开始用于虚拟隧道接口(Virtual tunnel interface,简称VTI),并且使用操作系统路由表定向流量。它不依赖严格的内核安全关联匹配,例如基于策略的(隧道式)IPsec。从2.4.4开始始,pfSense开始提供IPsec(VTI)功能。
ipsecX
路由的 IPsec 隧道在操作系统级别创建一个接口,这个接口有自己的 IP 地址。在分配接口后可用于静态或动态路由、守护进程绑定、流量监控等。
一句话总结,IPsec(VTI)最常用的功能,就是通过IPsec VPN隧道网络使用远程网关。
在本例中,定义的传输网络使用/ 30掩码,因为只需要两个IP,一个端点一个,本例使用10.10.10.1/30。
IPsec配置
像通常一样创建IPsec阶段1条目(这里不再赘述)。在节点1上,按以下格式创建IPsec阶段2条目:
- 模式:路由(VTI)
- 本地网络:
10.10.10.1/30
- 远程网络:
10.10.10.2
- 根据需要设置提案部分。
- 单击保存,然后单击应用更改
在节点2上,创建与节点1类似的IPsec阶段2条目:
- 模式:路由(VTI)
- 本地网络:
10.10.10.2/30
- 远程网络:
10.10.10.1
- 提案部分与节点1相同。
- 单击保存,然后单击应用更改
分配VTI
在节点1和节点2上:
- 导航到Interfaces > Assignments(网络接口>接口管理)
- 从列表中选择接口可用网络接口
ipsec1000
,然后单击“添加”。注意创建的接口(OPTx
)。 - 单击“接口”>
OPTx
- 选中“启用”选框,并在“描述”字段中为接口指定合适的名称。
- 根据需要填写其他字段。
- 单击保存,然后单击应用更改
节点1接口分配:
节点2接口分配
导航到pfSense系统仪表板上,应该可以看到VIT网关的连接信息(注意正确设置网关监控IP,节点1的网关监控IP设为节点2的IP地址:10.10.10.2)。
设置静态路由
导航到System > Routing(系统>路由管理),然后单击静态路由。
在节点1上:
- 单击添加
- 在目标网络字段中,输入节点2的 LAN网络的范围
- 在“网关”字段中,选择IPsec网关(它与你创建的后缀为_VTIV4的接口同名)
- 单击保存,然后单击应用
在节点2上:
- 单击添加
- 在目标网络字段中,输入节点1的LAN网络范围
- 在“网关”字段中,选择IPsec网关(它与你创建的后缀为_VTIV4的接口同名)
- 单击保存,然后单击应用
设置IPsec防火墙规则
所有IPsec隧道的防火墙管理都在IPsec接口选项卡中完成(不是在你创建的接口选项卡上)。只需要要创建一个any到any的规则即可。
设置策略路由
强制将节点1的LAN IP的对外流量通过节点2的WAN IP出站。
在节点1上:
- 创建LAN防火墙规则,根据需要设置不同的字段
- 在高级选项的网关字段上,选择IPsec隧道网关
- 单击保存,然后单击应用
设置后,节点1的LAN对外访问流量将通过节点2的WAN IP出站,节点2的出站NAT必须配置为自动模式或混合模式。
如果不是,请在节点2上进行如下设置:
- 导航到Firewall > NAT(防火墙>NAT),然后单击出站
- 选择自动出站NAT规则生成
- 单击保存
- 在自动模式下,pfsense为分配给IPsec网关的所有路由自动创建出站NAT规则
经过以上设置,节点1的LAN 网络客户端就可以通过IPsec隧道网络从节点2进行出站。检查是否通过节点2出站,可以通过ip111网站检查出站IP进行验证。如果不能正常访问或出站,请检查客户端IP地址、DNS设置,以及IPsec隧道是否正常连接。