使用 ufw 进行 Ubuntu IPv6 端口重定向

使用 ufw 进行 Ubuntu IPv6 端口重定向

我正在尝试在同时支持 IPv4 和 IPv6 的服务器上配置从端口 80 到 8080 的端口重定向。操作系统是 Ubuntu 14.04,内核为 3.2* 系列。这是一台生产服务器,所以我不想升级内核。

我使用 UFW 作为防火墙软件,并且我也希望继续使用它来处理 IPv6。目前,我在 /etc/ufw/before.rules 中处理 IPv4 的端口重定向,如下所示:

*nat
:PREROUTING ACCEPT [0:0]

-A PREROUTING -p tcp --dport -80 -j REDIRECT --to-port 8080

这对于 IPv4 来说非常有效,但如果我将其添加到 before6.rules 中,UFW 将无法启动并抱怨运行 ufw-init 时出现问题。

通过搜索包括此网站在内的网络,我发现 ip6tables 不支持 3.8 之前的内核中的 NAT 和 REDIRECT。我还遇到了使用 ip6table 的 TPROXY 的解决方案,但我无法找到 ufw 的 before6.rules 的正确语法,更重要的是,我认为 TPROXY 与 REDIRECT 不同(我不擅长 iptables,所以我可能是错的,请随时纠正此说法)。

我的最后一个问题是:

是否可以通过 UFW 将端口 80 重定向到 8080,以便在内核为 3.2 的机器上进行 IPv6 连接?如果 ufw 不支持此功能,是否只能通过 ip6tables 来实现?

先感谢您!

答案1

好吧,我可以通过不同的解决方案来实现这一点。正如 Sander Steffann 在评论中所说,通过 iptables 和/或 ufw 可能无法做到这一点。

相反,我遇到了一个守护进程 xinetd,它帮助我完成了我想要做的事情 - 只需在 IPv4 和 IPv6 连接上将 80 重定向到 8080。

相关内容