IPTables规则订单

时间:2014-02-17 07:52:43

标签: debian firewall iptables

我正在尝试为端口443上的流量实施IPTables规则。我想允许新连接,直到它们达到速率限制,然后丢弃它们并记录丢弃的数据包(我将稍后为记录添加速率限制) 。但是,根据我的规则,每个NEW连接都会调用我的日志记录规则。除非已达到速率限制,否则我不想创建日志条目。

无论我搜索谷歌的数量多少,我似乎无法弄清楚这个非常基本的问题。我相信我理解,ACCEPT规则将阻止任何后续规则被调用。但是在ACCEPT规则之前或之后放置我的日志记录规则没有任何区别 - 连接仍然被记录。

对于INPUT链,

iptables -L -v -n如下:

Chain INPUT (policy DROP 2 packets, 88 bytes)  pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 state NEW limit: avg 50/min burst 10
    0     0 LOG        tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 state NEW LOG flags 7 level 7 prefix "IPTables-50/m-Dropped: "
    9   612 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

1 个答案:

答案 0 :(得分:0)

您可以使用-m limit模块来实现此目的。

  

iptables -t filter -A INPUT -p tcp -i eth1 --dport 443 -m limit --limit 10/min -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

     

iptables -t filter -A INPUT -p tcp -i eth1 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j LOG --log-prefix "IPTables-443-Dropped: " --log-level 4

     

iptables -t filter -A INPUT -p tcp -i eth1 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j DROP

  • 第一行将接受数据包,直到达到每分钟10次。
  • 第二行将匹配并记录超过每分钟10的数据包。
  • 第三行将匹配并丢弃与第二条规则相同的数据包。

我刚尝试使用ICMP数据包,我不知道你是否真的想使用这种方法:这是一个速率。 也许您最好使用-m connlimit模块,在联机帮助页中描述为:

  

允许您限制每个客户端IP地址(或客户端地址块)与服务器的并行连接数。

希望这有帮助。