如何使用iptables阻止所有来自IP地址的stream量

我试图阻止所有来往于内部IP地址的stream量(此服务器充当networking路由器)。 到目前为止,我已经尝试了以下内容:iptables -A INPUT -s 192.168.1.111 -j DROP&iptables -A OUTPUT -d 192.168.1.111 -j DROP,其中192.168.1.111是我试图阻止stream量的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 

我怎么能阻止所有stream量进出IP使用当前的设置? 我不是在iptables的世界上最好的,所以任何帮助将不胜感激,谢谢!

INPUTOUTPUT iptables链适用于发往本地服务器的stream量。 任何通过防火墙路由的数据包都由FORWARD链处理。 因此,在这种情况下,您需要防止使用FORWARD链将数据包由Linux路由器转发到内部客户端。

我build议您从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 

你所做的错误是你添加了(-A)192.168.1.111的阻塞规则,而不是插入它(-I),因为如果你注意一些INPUT / OUTPUT中的规则确实允许来自192.168.1.X段。 所以这样做:

 iptables -I INPUT -s 192.168.1.111 -j DROP iptables -I OUTPUT -d 192.168.1.111 -j DROP 

如果192.168.1.111使用与路由器相同的服务器,而不是将相似规则添加到FORWARD链

iptables -I FORWARD -d 192.168.1.111 -j DROP