通过站点到站点IPsec隧道将两个网络互连,就好像它们是通过路由器直接连接一样。 站点A的系统可以到达站点B的服务器或其他系统,反之亦然。 这个流量也可以通过防火墙规则来调节,就像任何其他网络接口一样。 如果不止一个客户端将从同一个受控位置连接到另一个站点,则站点到站点隧道的效率可能会更高,更不用说更方便和更容易支持。

通过站点到站点隧道,任何一个网络上的系统都不需要知道存在×××。 不需要客户端软件,所有的隧道工作都由隧道站点处理。 对于有网络支持但不处理×××连接的设备(例如打印机,相机,HVAC系统和其他嵌入式硬件),这也是一个很好的解决方案。


站点到站点到配置示例

建立IPsec隧道的关键是确保双方都有匹配的认证、加密等设置。 在开始之前,请记录本地和远程WAN IP地址,以及将通过隧道传输的本地和远程内部子网。ping远程子网的IP地址是可选的,但建议保持隧道一直处于活动连接状态。 防火墙不检查回复,因为发起到远程网络上IP地址的任何流量都将触发IPsec协商,因此,只要主机是另一个站点的任意一个IP地址,主机是否实际响应并不重要。 除了隧道说明和这些信息外,其他连接设置可以是相同的。

在本例中,将假设以下设置:

IPsec站点设置
站点 A站点 B
名称Austin Office(奥斯汀办公室)名称London Office(伦敦办公室)
WAN IP198.51.100.3WAN IP203.0.113.5
LAN 子网10.3.0.0/24LAN 子网10.5.0.0/24
LAN IP10.3.0.1LAN IP10.5.0.1

从站点A开始。导航到×××>IPsec菜单,通过单击 pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点 创建隧道 P1, 显示隧道的阶段1配置页面, 一些设置可能会保留其默认值。

首先,填写阶段1一般信息设置项,如下图所示。 粗体项目是必需是填写的, 按照说明填写设置:

禁用:不选中此框,以便让隧道运行。

密钥交换版本:提示是使用IKEv1还是IKEv2。 对于这个示例,使用IKEv2,但是如果一方不支持IKEv2,请改为IKEv1。

Internet协议:大多数情况下都是IPv4,除非两个WAN都有IPv6,在这种情况下,可以使用任何一种类型的IPv6。

接口:选 WAN 。

远程网关:站点B的WAN地址,在本例中为: 203.0.113.5 。

描述:输入文字来说明隧道的目的或身份。 在本例子中输入 ExampleCo London Office 。


pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_02

站点 A ××× 隧道设置

下一步继续设置IPsec阶段1。  对于大多数设置,使用默认值就可以了。

认证方法:选择默认,本例中为 Mutual PSK。

我的标示符: 选择默认, My IP Address

对端标示符:选择默认, Peer IP Address。

预共享密钥: 这是正确的最重要的设置。 如果使用弱密钥,则可能会破坏使用预共享密钥的IPsec。 使用强密码,长度至少为10个字符,包含大小写字母,数字和符号的组合。 以后需要在站点B的隧道配置中输入相同的确认密钥,所以记下或复制并粘贴到其他地方。 复制和粘贴可能派上用场,特别是像 aBc123%XyZ9$7qwErty99这样一个复杂的密码。

加密算法:使用密钥长度为256位的AES。

哈希算法:如果双方都支持,使用SHA256,否则使用默认的SHA1。

DH 组:使用默认的2 (1024 bit) ,更高的值更安全,但会占用更多的CPU。

有效期:也可以指定,否则将使用28800的默认值。

禁用预授密钥:不选中

仅响应者:不选中

NAT穿越:使用Auto,在这个例子中防火墙都不在NAT后面。

失效对等体检测:不选中, 默认延迟为 10 秒, 最大故障次数 5 次是足够的。根据站点的需求,更高的值可能会更好。


单击保存完成阶段1设置。

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_03

站点A阶段1设置

在添加阶段1之后,将新的阶段2定义添加到×××:

  • 单击 pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_04 显示阶段2条目如下图所示,展开这个×××阶段2的列表。

  • 单击 pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点 添加 P2到新的阶段2条目,见下图。

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_06

站点A阶段2列表

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_07

添加阶段2条目到站点A 

现在在这个×××上添加阶段2的设置,阶段2设置会多于阶段1,见下图:

模式: 选择Tunnel IPv4

本地子网:最好选为LAN Subnet,但是也可以把它改成Network,填入正确的子网值,在这个例子中是10.3.0.0/24。 将其保留为LAN Subnet将确保如果网络重新编号,隧道的这一端将随之更改。 如果发生这种情况,则必须手动更改另一端。

NAT/BINAT: 设置为None.

远程子网: 输入站点B的网络, 在这里为10.5.0.0/24


pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_08

站点 A阶段2常规设置

下图的设置涵盖了通信加密。 加密算法和哈希算法可以允许有多个选项,只要每一方至少有一个共同点,双方就会进行协商并达成一致。 在某些情况下,这可能是一件好事,但通常将其限制在双方所期望的单一特定选项上通常会更好。


协议:设置为 ESP

加密算法:理想情况下,如果双方都支持,则选择128位密钥长度的AES256-GCM。 否则,使用AES 256,或者两端都支持的密码。

哈希算法: 使用AES-GCM时,不需要哈希  。 否则,请使用SHA 256或SHA 1,尽可能避免使用MD5。

PFS:完全正向保密(perfect forward secrecy)可以帮助防止某些关键攻击,但是是可选的。 在这个例子中,它被禁用。

有效期:设为 3600

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_09

站点A阶段2 设置

最后,可以在远程局域网上为系统输入一个IP地址,该地址将定期发送一个ICMP ping,如下图所示。 ping的返回值不会被检查,这只会发送流量的隧道,以便它将保持建立。 在此设置中,将使用站点B(10.5.0.1)中的pfSense防火墙的LAN IP地址。

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_10

站点A保持活动连接

要完成设置并使其生效,请执行以下操作:单击Save保存,单击应用更改,如下图所示。

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_11

应用IPsec设置

站点A的隧道已经完成,现在需要设置防火墙规则来允许来自站点B的网络流量通过IPsec隧道进入。 这些规则必须添加到防火墙规则下的IPsec选项卡中。 可以根据需要放宽(允许从任何地方到任何地方的任何协议)或限制性的(允许站点B上的特定主机到特定端口上的站点A的特定主机的TCP)。 在这种情况下,确保源地址是站点B地址,例如10.5.0.0/24。 目标地址将是站点A网络,10.3.0.0/24。

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_12

站点A已经配置完成,现在来配置站点B。

如图B站点1设置和站点B阶段2设置所示,该设置的少部分与站点A不同。

  • 阶段1的WAN地址和说明设置

  • 阶段2隧道网络

  • 保持活动连接

使用站点A上的相同设置将“阶段1”条目添加到“站点B”防火墙,但有以下区别:

远程网关:输入站点A的WAN地址: 198.51.100.3

说明:例如: ExampleCo Austin Office

单击保存

使用站点A上的相同设置,将“阶段2”条目添加到“站点B”防火墙,但有以下区别

远程子网:输入站点A的网络,在本例中为: 10.3.0.0/24

自动PING主机:输入站点A上的pfSense防火墙的LAN IP地址, 10.3.0.1

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_13

站点B 阶段1设置

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_14

站点B阶段2设置

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_15

站点B保持活动连接

  • 单击保存

  • 单击应用更改

与站点A一样,还必须添加防火墙规则以允许隧道上的流量从站点A穿越到站点B。将这些规则添加到防火墙规则下的IPsec选项卡。注意来源是站点A,目的地是站点B。

现在两个隧道都已配置,现在处于活动状态。 可以通过访问系统状态> IPsec来查看IPsec连接状况。

如果隧道不显示为“已建立”,最有可能的原因是没有流量通过隧道。 由于本地网络包含防火墙所具有的地址,因此在此页面上提供了一个连接按钮,该按钮将启动对远程阶段2的ping。单击pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_16连接×××按钮尝试启动隧道,见下图。 如果没有出现连接按钮,请尝试从站点A的阶段2本地网络内部的设备(在站点B的远程子网中)ping站点B的远程子网中的系统(反之亦然),然后查看隧道是否已建立。 

pfSense book之IPsec 站点到站点连接示例_pfsense ipsec 站点到站点_17

站点A IPsec 状态

IPsec日志也会提供说明。 它们位于“系统状态”>“系统日志”IPsec”选项卡上。 一定要检查两个站点的状态和日志。 


翻译自pfsense book


2017-12-19