将所有出站连接限制到特定接口,如果不可用则阻止

将所有出站连接限制到特定接口,如果不可用则阻止

我在虚拟机中运行 Centos 7(我不认为这很重要,但就上下文而言......)

在虚拟机中,我正在运行软件来建立隧道。我已经可以接受来自主机的连接,但我想强制所有出站流量通过隧道。

我如何允许现有连接的返回数据包,同时确保除非通过 tun0,否则不会从框中建立新的连接?

我看过这个问题iptables 阻止所有出站连接但它看起来有点蛮力...我一直在使用,firewall-cmd并且输出iptables -L -n -v很冗长。

相反,使用特定接口进行出站连接(Ubuntu 9.04),我看不出如何将它应用到centos。

我如何才能可靠地确保所有出站流量都通过 tun0 建立或根本不建立?

答案1

这将有效阻止除 tun0 之外的任何传出(IPv4)流量。

iptables -F OUTPUT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -P OUTPUT DROP

请注意,这将阻止任何出站流量任何除 tun0 之外的接口,其中包括 DHCP 流量、已建立的 SSH 隧道或来自已建立隧道的出站数据包。

这可以类似地应用于使用 的 IPv6 ip6tables

相关内容