我在虚拟机中运行 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
。