Networking

如何使用 iptables 阻止進出 IP 地址的所有流量

  • February 17, 2013

我正在嘗試阻止所有進出內部 IP 地址的流量(該伺服器充當網路的路由器)。到目前為止,我已經嘗試了以下方法:iptables -A INPUT -s 192.168.1.111 -j DROP & iptables -A OUTPUT -d 192.168.1.111 -j DROP,其中 192.168.1.111 是我試圖阻止來自的流量的 IP 地址。區域網路連接到br0。這是我目前的 iptables 設置(我已經刪除了埠轉發等以使其更容易通過):

# Generated by iptables-save v1.4.8 on Sat Feb 16 21:21:16 2013
*nat
:PREROUTING ACCEPT [184556:41149689]
:POSTROUTING ACCEPT [13698:835740]
:OUTPUT ACCEPT [77252:6378101]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Feb 16 21:21:16 2013
# Generated by iptables-save v1.4.8 on Sat Feb 16 21:21:16 2013
*filter
:INPUT DROP [10054:2687428]
:FORWARD ACCEPT [1377:76856]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 192.168.1.0/24 -i br0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A FORWARD -i eth0 -o Br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i br0 -o eth0 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j ACCEPT
-A OUTPUT -s 127.0.0.1/32 -j ACCEPT
COMMIT
# Completed on Sat Feb 16 21:21:16 2013

我如何才能使用目前設置阻止所有進出 IP 的流量?我不是世界上最好的 iptables,所以任何幫助將不勝感激,謝謝!

INPUTOUTPUTiptables 鏈適用於發往本地伺服器的流量。任何通過防火牆路由的​​數據包都由FORWARD鏈處理。所以在這種情況下,你需要防止數據包被linux路由器使用FORWARD鏈轉發到內部客戶端。

我建議您從 FORWARD 鏈的預設 DROP 策略開始。因為您目前的設置顯示預設情況下您的 FORWARD 策略是 ACCEPT,這不是最安全的設置。因此,從前向的丟棄策略開始 -

 iptables -P FORWARD DROP

然後允許將數據包轉發到內部客戶端 -

 iptables -A FORWARD -s source-net/subnet -d destination-net/subnet -j ACCEPT
 iptables -A FORWARD -m state –state NEW,ESTABLISHED -s source-net/subnet -j ACCPET
 iptables -A FORWARD -m state –state ESTABLISHED -j ACCEPT

如果內部客戶端在允許的子網內,請設置規則以顯式丟棄發往該客戶端的數據包 -

  iptables -I FORWARD -s 0/0 -d 192.168.1.111 -j DROP
  iptables -I FORWARD -s 192.168.1.111 -d 0/0 -j DROP

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