我正在尝试在 OpenBSD 5.0 上配置 pf 端口转发
防火墙机器有两个网卡:
em0:192.168.200.3 vic0:192.65.214.136
我想将进入 192.168.200.3:104 的所有数据包转发到 192.65.214.131:104。此外,我还需要能够访问端口 22,以便进行 ssh 连接。
到目前为止,我设置的规则如下:
set skip on lo
pass in log on em0 proto tcp from any to any port 104 rdr-to 192.65.214.131
# By default, do not permit remote connections to X11
block in on ! lo0 proto tcp to port 6000:6010
通过使用 tcpdump -n -e -ttt -r /var/log/pflog 读取日志,我看到规则 0 已匹配,但调用应用程序未收到它期望的确认。
我做错了什么?
顺便说一句。我可以 ping 和 telnet 到 192.65.214.131。
编辑:这是新的 /etc/pf.conf,现在可以使用了。谢谢 Falcon。
set skip on lo
pass in log on em0 proto tcp from any to any port 104 rdr-to 192.65.214.131
pass out on vic0 from em0:network to any nat-to vic0
# By default, do not permit remote connections to X11
block in on ! lo0 proto tcp to port 6000:6010
编辑:嗯,nat-to 规则仅当数据包从 192.168.200.x 发送时才有效,但有些数据包是从 192.168.7.xxx 发送的,我该如何允许这些数据包呢?
提前谢谢你,莱昂纳多。
答案1
确保客户端接口能够 ping 192.65.214.131 以及运行 pf 的服务器,并且 192.65.214.131 能够 ping 客户端计算机(或者,如果由于某种原因禁用了 ping,只需确保它们具有有效的路由)。这些设置的一个常见问题是,数据包可以在 NAT 的帮助下到达主机,但如果 NAT 仅更改了目标地址而未更改源地址,或者如果它仅打算重定向但路由表未显示返回路径,则数据包只能单向传输,并且会出现不对称路由故障。