Networking
如何使用 iptables 阻止進出 IP 地址的所有流量
我正在嘗試阻止所有進出內部 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,所以任何幫助將不勝感激,謝謝!
INPUT
和OUTPUT
iptables 鏈適用於發往本地伺服器的流量。任何通過防火牆路由的數據包都由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