AWS VPC 上的 pfSense OpenVPN

AWS VPC 上的 pfSense OpenVPN

我们正在将办公室服务器迁移到 AWS 并最终停用。由于我们熟悉 pfSense,因此我们正在使用多种 AWS 服务,但希望将 pfSense 用作 OpenVPC 服务器。

我们的 VPC 有两个子网:

  • 民众:192.168.16.0/24
  • 私人的:192.168.17.0/24

我创建了一个在 pfSense 中运行的具有两个接口的 EC2 实例: WAN -> 192.168.16.10LAN -> 192.168.17.10

值得注意的是:我们不是使用 pfSense 作为私有网络的 NAT 网关,因此 pfSense 中的 LAN 接口配置了一个网关192.168.17.1(为什么这样?因为我们只想使用 pfSense 作为 VPN 服务器,而不是此时用作 NAT 网关)。

然后,我们配置 OpenVPN 来监听 WAN 接口,并使用 的隧道网络192.168.140.0/23和 的 IPv4 本地网络192.168.17.0/24

我确保在 LAN 接口上有一个192.168.140.0/23以源为出的站 NAT 规则,并且将 NAT 设置为混合或手动(两种都尝试过)。

在 EC2 实例上,我停止了源目标检查。

有效的方法:

  • 我可以连接到 OpenVPN
  • 我可以使用 pfSense 作为 DNS(现在不相关,但我想稍后使用它)
  • 从 pfSense 中的控制台,我可以通过 ssh 访问我的私有网络中的另一台服务器(192.168.17.30)。
  • 从所述服务器(192.168.17.30),我可以 ssh 到 pfSense。

无效的方法:

  • 我无法通过 ssh 连接到私有网络上的服务器 ( 192.168.17.30)。
    • 如果我在防火墙规则上启用日志,我就可以确认 pfSense 允许数据包进入。

我已经尝试过的:

  • 广泛开放的防火墙规则。
  • 广泛开放的 AWS 安全组。
  • 添加192.168.140.0/23到我的 VPC 中的路由表(尽管因为它是 NATing,我知道我不需要它)。

为了进行诊断,我启用了数据包捕获。以下是从 pfSense 框进行 SSH 时的输出:

18:59:06.034748 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.034969 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.035013 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.035538 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 38
18:59:06.035705 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.060000 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 41
18:59:06.060098 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.060752 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 1432
18:59:06.060905 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.062725 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 1056
18:59:06.063141 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.065800 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 48
18:59:06.065956 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.070607 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 508
18:59:06.070772 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.074492 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 16
18:59:06.074616 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.074640 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 44
18:59:06.074802 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.074818 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 44
18:59:06.074868 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.074920 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 68
18:59:06.081411 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 44
18:59:06.081477 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.081628 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0
18:59:06.082931 IP 192.168.17.30.22 > 192.168.17.10.59085: tcp 0
18:59:06.082959 IP 192.168.17.10.59085 > 192.168.17.30.22: tcp 0

从 OpenVPN 客户端 SSH 连接时捕获的数据包相同:

18:57:12.126970 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0
18:57:13.131702 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0
18:57:14.135982 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0
18:57:15.145506 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0
18:57:16.159995 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0
18:57:17.152084 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0
18:57:19.158465 IP 192.168.17.10.7955 > 192.168.17.30.22: tcp 0

如您所见,NAT 似乎正在工作,因为传出的数据包来自192.168.17.10,但没有收到来自服务器的响应。

我发布了类似的问题Netgate 论坛,但我在这里包含了大部分信息。

答案1

我已启用“硬件校验和卸载”,但当您在 ​​AWS 上使用 pfSense 时需要将其禁用(它实际上应该是官方图像上的默认设置)。

这解决了我们遇到的问题。

相关内容