使用 ufw 或 iptables 限制流向本地網路和 VPN 的流量

使用 ufw 或 iptables 限制流向本地網路和 VPN 的流量

我想限制來自我的 ubuntu 電腦的來自本地網路 ( eth0) 或來自或到我的 VPN ( tun0) 的所有流量。應該可以連接本地網路中的路由器,但不可能在不使用 VPN 的情況下離開本地網路。

由於我沒有 iptables 的經驗,而且我找不到一些操作方法,所以我嘗試了 ufw 但沒有成功。

感謝您提供一些如何接近的提示或程式碼片段!

答案1

您將需要使用預設操作 DROP 對過濾器表的 INPUT 鏈進行操作,然後為每個介面上傳入的封包 (-i) 設定 ACCEPT 規則。為了提高安全性,您也可以強制執行來源主機的子網,但以下規則就足夠了。

iptables -t filter -p INPUT DROP
iptables -t filter -A INPUT -i eth0 -j ACCEPT
iptables -t filter -A INPUT -i tun0 -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT

如果您也想對離開主機的流量執行相同的操作,也請執行以下操作:

iptables -t filter -p OUTPUT DROP
iptables -t filter -A OUTPUT -o eth0 -j ACCEPT
iptables -t filter -A OUTPUT -o tun0 -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

不過,如果您這樣做,您實際上可能還沒有其他介面。另外,lo也在那裡,因為它是環回介面;如果沒有這些規則,環回將不再起作用。

請注意,如果您的主機是路由器,這些規則將不適用於它正在路由的流量(僅適用於它本身產生的流量或發送到它的流量,而不是通過它的流量)。

相關內容