通过站点到站点IPsec隧道将两个网络互连,就好像它们是通过路由器直接连接一样。 站点A的系统可以到达站点B的服务器或其他系统,反之亦然。 这个流量也可以通过防火墙规则来调节,就像任何其他网络接口一样。 如果不止一个客户端将从同一个受控位置连接到另一个站点,则站点到站点隧道的效率可能会更高,更不用说更方便和更容易支持。
通过站点到站点隧道,任何一个网络上的系统都不需要知道存在×××。 不需要客户端软件,所有的隧道工作都由隧道站点处理。 对于有网络支持但不处理×××连接的设备(例如打印机,相机,HVAC系统和其他嵌入式硬件),这也是一个很好的解决方案。
站点到站点到配置示例
建立IPsec隧道的关键是确保双方都有匹配的认证、加密等设置。 在开始之前,请记录本地和远程WAN IP地址,以及将通过隧道传输的本地和远程内部子网。ping远程子网的IP地址是可选的,但建议保持隧道一直处于活动连接状态。 防火墙不检查回复,因为发起到远程网络上IP地址的任何流量都将触发IPsec协商,因此,只要主机是另一个站点的任意一个IP地址,主机是否实际响应并不重要。 除了隧道说明和这些信息外,其他连接设置可以是相同的。
在本例中,将假设以下设置:
站点 A | 站点 B | ||
名称 | Austin Office(奥斯汀办公室) | 名称 | London Office(伦敦办公室) |
WAN IP | 198.51.100.3 | WAN IP | 203.0.113.5 |
LAN 子网 | 10.3.0.0/24 | LAN 子网 | 10.5.0.0/24 |
LAN IP | 10.3.0.1 | LAN IP | 10.5.0.1 |
从站点A开始。导航到×××>IPsec菜单,通过单击 创建隧道 P1, 显示隧道的阶段1配置页面, 一些设置可能会保留其默认值。
首先,填写阶段1一般信息设置项,如下图所示。 粗体项目是必需是填写的, 按照说明填写设置:
禁用:不选中此框,以便让隧道运行。
密钥交换版本:提示是使用IKEv1还是IKEv2。 对于这个示例,使用IKEv2,但是如果一方不支持IKEv2,请改为IKEv1。
Internet协议:大多数情况下都是IPv4,除非两个WAN都有IPv6,在这种情况下,可以使用任何一种类型的IPv6。
接口:选 WAN 。
远程网关:站点B的WAN地址,在本例中为: 203.0.113.5 。
描述:输入文字来说明隧道的目的或身份。 在本例子中输入 ExampleCo London Office 。
下一步继续设置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设置。
在添加阶段1之后,将新的阶段2定义添加到×××:
单击 显示阶段2条目,如下图所示,展开这个×××阶段2的列表。
单击 添加 P2到新的阶段2条目,见下图。
现在在这个×××上添加阶段2的设置,阶段2设置会多于阶段1,见下图:
模式: 选择Tunnel IPv4
本地子网:最好选为LAN Subnet,但是也可以把它改成Network,填入正确的子网值,在这个例子中是10.3.0.0/24。 将其保留为LAN Subnet将确保如果网络重新编号,隧道的这一端将随之更改。 如果发生这种情况,则必须手动更改另一端。
NAT/BINAT: 设置为None.
远程子网: 输入站点B的网络, 在这里为10.5.0.0/24。
下图的设置涵盖了通信加密。 加密算法和哈希算法可以允许有多个选项,只要每一方至少有一个共同点,双方就会进行协商并达成一致。 在某些情况下,这可能是一件好事,但通常将其限制在双方所期望的单一特定选项上通常会更好。
协议:设置为 ESP
加密算法:理想情况下,如果双方都支持,则选择128位密钥长度的AES256-GCM。 否则,使用AES 256,或者两端都支持的密码。
哈希算法: 使用AES-GCM时,不需要哈希 。 否则,请使用SHA 256或SHA 1,尽可能避免使用MD5。
PFS:完全正向保密(perfect forward secrecy)可以帮助防止某些关键攻击,但是是可选的。 在这个例子中,它被禁用。
有效期:设为 3600
最后,可以在远程局域网上为系统输入一个IP地址,该地址将定期发送一个ICMP ping,如下图所示。 ping的返回值不会被检查,这只会发送流量的隧道,以便它将保持建立。 在此设置中,将使用站点B(10.5.0.1)中的pfSense防火墙的LAN IP地址。
要完成设置并使其生效,请执行以下操作:单击Save保存,单击应用更改,如下图所示。
站点A的隧道已经完成,现在需要设置防火墙规则来允许来自站点B的网络流量通过IPsec隧道进入。 这些规则必须添加到防火墙规则下的IPsec选项卡中。 可以根据需要放宽(允许从任何地方到任何地方的任何协议)或限制性的(允许站点B上的特定主机到特定端口上的站点A的特定主机的TCP)。 在这种情况下,确保源地址是站点B地址,例如10.5.0.0/24。 目标地址将是站点A网络,10.3.0.0/24。
站点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
单击保存
单击应用更改
与站点A一样,还必须添加防火墙规则以允许隧道上的流量从站点A穿越到站点B。将这些规则添加到防火墙规则下的IPsec选项卡。注意来源是站点A,目的地是站点B。
现在两个隧道都已配置,现在处于活动状态。 可以通过访问系统状态> IPsec来查看IPsec连接状况。
如果隧道不显示为“已建立”,最有可能的原因是没有流量通过隧道。 由于本地网络包含防火墙所具有的地址,因此在此页面上提供了一个连接按钮,该按钮将启动对远程阶段2的ping。单击连接×××按钮尝试启动隧道,见下图。 如果没有出现连接按钮,请尝试从站点A的阶段2本地网络内部的设备(在站点B的远程子网中)ping站点B的远程子网中的系统(反之亦然),然后查看隧道是否已建立。
IPsec日志也会提供说明。 它们位于“系统状态”>“系统日志”“IPsec”选项卡上。 一定要检查两个站点的状态和日志。
翻译自pfsense book
2017-12-19