pfSense book之IPsec 站点到站点连接示例

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

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

站点到站点到配置示例

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

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

IPsec站点设置
站点 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 。

站点 A VPN 隧道设置

下一步继续设置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设置。

站点A阶段1设置

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

  • 单击
     显示阶段2条目如下图所示,展开这个VPN阶段2的列表。
  • 单击
     添加 P2到新的阶段2条目,见下图。

站点A阶段2列表

添加阶段2条目到站点A

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

模式: 选择Tunnel IPv4

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

NAT/BINAT: 设置为None.

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

站点 A阶段2常规设置

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

协议:设置为 ESP

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

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

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

有效期:设为 3600

站点A阶段2 设置

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

站点A保持活动连接

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

应用IPsec设置

站点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

站点B 阶段1设置

站点B阶段2设置

站点B保持活动连接

  • 单击保存
  • 单击应用更改

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

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

如果隧道不显示为“已建立”,最有可能的原因是没有流量通过隧道。 由于本地网络包含防火墙所具有的地址,因此在此页面上提供了一个连接按钮,该按钮将启动对远程阶段2的ping。单击

连接VPN按钮尝试启动隧道,见下图。 如果没有出现连接按钮,请尝试从站点A的阶段2本地网络内部的设备(在站点B的远程子网中)ping站点B的远程子网中的系统(反之亦然),然后查看隧道是否已建立。

站点A IPsec 状态

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

路由和网关注意事项

当VPN端点(在这种情况下为pfSense防火墙)是网络的默认网关时,路由通常不会出现问题。当客户端PC发送流量时,它将通过隧道进入pfSense防火墙,然后到达另一端。但是,如果pfSense防火墙不是给定网络的默认网关,则将需要采取其他路由措施。

例如,假设pfSense防火墙是站点B的网关,而不是站点A的网关,如下图所示。Site B上的PC1将ping发送到Site A上的PC2。数据包离开PC1,然后通过Site B上的pfSense防火墙,穿过隧道,流出Site A上的pfSense防火墙,然后到达PC2。但是返回途中发生了什么?PC2上的网关完全是另一个路由器。对ping的回复将发送到网关路由器,最有可能被丢弃,甚至更糟的是,它可能会从Internet链接发送出去,并因此丢失。

解决此问题的方法有多种,根据给定情况的不同,选择合适的方法。

  • 可以在网关路由器中输入一条静态路由,该路由会将发往隧道远端的流量重定向到pfSense防火墙。即使使用此路由,也会引入额外的复杂性,因为这种情况会导致不对称路由。见在同一接口上绕过流量的防火墙规则
  • 可以将静态路由单独添加到客户端系统,以便它们知道将流量直接发送到pfSense防火墙,而无需通过其默认网关。除非只有很少数量的主机需要访问VPN,否则这会给管理带来麻烦。
  • 在某些情况下,将pfSense防火墙作为网关并让它处理Internet连接而不是现有网关可能更容易。

pfSense不是站点到站点IPsec的网关

pfSense启动的流量和IPsec

要从pfSense防火墙本身访问IPsec连接的远程端,请通过添加将远程网络指向pfSense防火墙的LAN IP地址的静态路由来“伪造”系统。请注意,此示例假定VPN两端都连接了LAN接口。如果IPsec连接在其他OPT接口,请相应地替换接口和接口的IP地址。由于IPsec绑定到FreeBSD内核的方式,如果没有静态路由,流量将遵循系统路由表,系统路由表可能会将流量发送到WAN接口,而不是通过IPsec隧道发送。如下图所示:


每个防火墙都需要一条静态路由,方法是先添加一个指向防火墙的LAN IP地址的网关,然后再使用该网关添加一条静态路由,如下图所示:


站点A到远程子网的静态路由


站点B到远程子网的静态路由

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇