我正在设置一个 freebsd 路由器,并希望在我的网络上的某些 IP 发出端口 80 请求时将其转发到我们的本地 Web 服务器。例如 - 被禁止的用户尝试浏览网页,但他的所有请求都被转发到网页,该网页会通知他已被禁止。据我所知,我可以使用 IPFW 来实现这一点,也许还可以使用 NATD。
如果有人能给我提供一个如何做到这一点的好例子,我将不胜感激。
答案1
如果您不想使用 natd,则需要使用 IPFIREWALL_FORWARD 选项编译的内核。您可以发出“sysctl kern.conftxt | grep IPFIREWALL_FORWARD”来检查当前内核。如果没有此选项,则需要重建内核(或坚持使用 pf)。
如果您有这样的内核,您只需要添加以下规则:
ipfw add allow tcp from any to 192.168.0.0/24 via internal_if0
ipfw add fwd localhost,80 tcp from any to any 80 via internal_if0
答案2
FreeBSD 现在有 3 个(原文如此!)不同的防火墙,ipfw2
这只是其中之一,剩下的两个是 Darren Reedipfilter
和 OpenBSD 的PF
。它们都具有内置 NAT,支持“从盒子中”进行端口重定向,例如,参见 PF 的方式。那么为什么不使用它们呢?