![pfSense 不转发数据包](https://linux22.com/image/664922/pfSense%20%E4%B8%8D%E8%BD%AC%E5%8F%91%E6%95%B0%E6%8D%AE%E5%8C%85.png)
我有一个 pfSense 盒设置,其中我的 WAN 接口 (em0) 设置在本地网络 (192.168.1.100) 中,而我的 LAN 接口 (em1) 是其自己的私有网络 (10.0.0.1)。最终目标是将 10.0.0.x 网络作为私有恶意软件实验室,该网络上的设备无法直接与 192.168.1.x 网络上的任何设备通信。不过,我想在 pfSense 防火墙上打洞,以允许来自 192.168.1.x 网络的流量访问私有网络中的服务,例如 FTP、HTTP、SMB、SSH 等。因此,如果我通过 FTP 传输到 192.168.1.100(WAN 接口),那么它将路由到在 10.0.0.x 内部设备上运行的 FTP 服务器。目前我可以看到我的 FTP 服务器收到了 TCP SYN 数据包,但没有其他任何事情发生。
我可以看到一些使用 tcpdump 通过 pfSense 进行 FTP 流量。
这是我的 NAT 端口转发规则(它们也有一个相关的过滤规则)。
如果有帮助的话,我的 LAN 防火墙规则也是如此。
我以为可能是我的阻止规则出了问题,阻止了来自 10.0.0.x 网络的 192.168.1.x 流量,但我禁用了该规则。我完全不知所措,不明白出了什么问题,所以任何帮助都将不胜感激!
答案1
FTP 服务器上的 Wireshark 屏幕截图很有趣——没有响应表明它无法(路由/NAT 问题)或不会(防火墙)响应。我的想法:
- FTP 服务器是否有本地防火墙(使用 检查
iptables -L -vn
)来丢弃任何流量?如果 iptablesINPUT
或OUTPUT
链有DROP
策略,但您没有允许 FTP 流量和相关/已建立连接的进出规则,那么这将是一个问题。 - 到 SSH 和 HTTP 端口的流量(假设这些服务正在运行)是否会遭遇与 FTP 流量相同的命运?我不是专家,但 FTP 经常使用多个端口(20 和 21),因此排除特定于 FTP 的奇怪行为可能是个不错的选择。
- 您能否从 10.0.0.x 子网上的另一台计算机获得到 FTP 服务器的 TCP 连接?FTP 服务器的任何流量是否可以传出到 192.168.1.x 网络?如果 10.0.0.x 子网内的流量运行正常但没有流量可以传出,则 pfSense 盒上的路由、NAT 或防火墙设置可能存在问题。
答案2
- 虽然您说您正在接收 TCP SYN 数据包,但我认为您应该在 WAN 接口上有一个防火墙规则,以允许端口 21(FTP)进入 LAN 接口即 em1。
- FTP 服务器应具有默认网关 10.0.0.1。
- 还要检查出站 NAT 规则是否设置为“自动”。如果不是,那么您将遇到从 FTP 返回的数据包的路由问题。
- 在 pfsense > 诊断 > ARP 表中,应该会告诉您是否可以通过 pfsense 访问 FTP 服务器。最好先允许 ICMP 数据包进入专用网络上的设备,然后从那里开始跟踪。跟踪路由还应该有助于找到数据包丢失的位置。
答案3
pfSense 对 FTP 协议有特殊支持,这会影响主动和被动模式。我的经验是,它只会使被动模式的 DNAT 配置(通常很简单)变得复杂。无论如何,我只能通过以下步骤使被动模式正常工作。
去系统:高级:系统可调参数(.../system_advanced_sysctl.php) 页。设置1为了调试.pfftpproxy选项,禁用 pf FTP 代理处理程序。现在,设置您的 FTP 服务器以使用特定端口范围传输数据,并转发这些端口以及 TCP/21。
但是,只要有可能,就尽量避免使用 FTP 协议。还有其他选择,例如SCP,本质上更安全(基于 SSH),允许更多的身份验证选项,并且没有主动/被动/NAT/多端口负担。
答案4
假设提供的地址就是您现有的地址 - 您是否在 WAN 接口 (em0) 上启用了阻止私有网络?我相信这是与阻止 bogan 网络一起的默认设置。