我有一台 FreeBSD 主机,它是内部网络上其他系统的入口点。因此,我已pf
配置将某些端口(例如,端口 5000)上的传入流量重定向到该机器上运行网络服务的其中一个 jail 上的主机本地地址。如下所示:
---port 5000--->[Main host]
|
|---port 5000--->[Machine A]
|~~~~~~~~~~~~~~~~[Machine B]
重定向由 PF 规则执行:
rdr pass on egress proto tcp from any to $IP port 5000 -> $MACHINE_A_IP
这是我几乎一直想要的状态,也是默认配置。不过,有时我想暂时地将端口 5000 重定向到机器 B,如下所示:
---port 5000--->[Main host]
|
|~~~~~~~~~~~~~~~~[Machine A]
|---port 5000--->[Machine B]
我曾尝试设置 PF 锚点来实现这一点,但由于我是 PF 新手,我发现很难解析文档来涵盖这种用例。
如何在主机上发布动态 PF 规则以将 5000 从机器 A 临时重定向到机器 B?
答案1
实现此目的的正确方法是使用表作为重定向的目标。您可以使用 更改表的内容而无需重新加载 pf pfctl
。请注意,现有防火墙状态将继续将流量转发到旧主机,直到 tcp 流关闭或 udp“流”超时。