Iptables

將所有出站連接限製到特定介面,如果不可用則阻止

  • August 27, 2019

我在虛擬機中執行 Centos 7(我認為這不重要,但對於上下文……)

在虛擬機內部,我正在執行軟體來建立隧道。我已經可以接受來自主機的連接了,但我想強制所有出站流量通過隧道。

如何允許現有連接的返回數據包,同時確保除非超過 tun0,否則不會從框中建立新連接?

我已經看過這個問題iptables blocking all outbound connections但它看起來有點暴力……我一直在使用firewall-cmd並且輸出iptables -L -n -v很冗長。

相反,使用Use specific interface for outbound connections (Ubuntu 9.04),我看不到如何將其應用於 centos。

如何可靠地確保所有出站流量要麼通過 tun0 建立,要麼根本不建立?

這將有效地阻止除 tun0 之外的任何傳出 (IPv4) 流量。

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

請注意,這將阻止除 tun0 以外的任何介面上的****任何出站流量,其中包括 DHCP 流量、已建立的 SSH 隧道或來自已建立隧道的出站數據包。

這可以類似地應用於 IPv6,使用ip6tables.

引用自:https://serverfault.com/questions/980655