FreeBSD pf 出口过滤

FreeBSD pf 出口过滤

我正在尝试构建一个简单的 pf.conf,其中包括允许所有系统通过选定的一系列端口将流量传出网络的 NAT。在我的基本配置中,我有一个内部服务器,它托管 HTTP/HTTPS,可通过 NATed IP 从外部访问。从内部,我只希望客户端通过 DNS/HTTP/HTTPS 离开网络。

int_if="eth0"
ext_if="eth1"
localnet=$int_if:network

nat on $ext_if from $localnet to any -> ($ext_if)
comp1="172.16.0.1"
rdr on $ext_if proto tcp from any -> $comp1 port http
rdr on $ext_if proto tcp from any -> $comp1 port https

client_out_tcp = "{ http, https}"
client_out_udp = "{ 53 }"
pass inet proto tcp from $localnet to port $client_out_tcp
pass inet proto tcp from $localnet to port $client_out_udp

通过这种配置,我的服务器可以按照我设计的正确端口进行连接,但无论如何,我的客户端始终可以离开网络。

答案1

这是因为您默认不会阻止本地网络上的传出流量。

尝试使用类似这样的方法:

block out from $localnet to any
pass inet proto tcp from $localnet to port $client_out_tcp
pass inet proto tcp from $localnet to port $client_out_udp

相关内容