我们正在将办公室服务器迁移到 AWS 并最终停用。由于我们熟悉 pfSense,因此我们正在使用多种 AWS 服务,但希望将 pfSense 用作 OpenVPC 服务器。
我们的 VPC 有两个子网:
- 民众:
192.168.16.0/24
- 私人的:
192.168.17.0/24
我创建了一个在 pfSense 中运行的具有两个接口的 EC2 实例:
WAN -> 192.168.16.10
,LAN -> 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 时需要将其禁用(它实际上应该是官方图像上的默认设置)。
这解决了我们遇到的问题。