Debian IPTables规则顺序

Debian IPTables规则顺序,debian,firewall,iptables,Debian,Firewall,Iptables,我正在尝试为端口443上的流量实施IPTables规则。我想允许新的连接,直到它们达到速率限制,然后丢弃它们并记录丢弃的数据包。我稍后将在日志记录中添加速率限制。然而,根据我拥有的规则,我的日志规则会随着每个新连接而被调用。除非已经达到速率限制,否则我不想创建日志条目 不管我在谷歌上搜索了多少次,我似乎都搞不懂这个极其基本的问题。我相信我理解接受规则将阻止调用任何后续规则。但是将我的日志记录规则放在ACCEPT规则之前或之后并没有任何区别-连接仍然被记录 输入链的iptables-L-v-n如下

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

不管我在谷歌上搜索了多少次,我似乎都搞不懂这个极其基本的问题。我相信我理解接受规则将阻止调用任何后续规则。但是将我的日志记录规则放在ACCEPT规则之前或之后并没有任何区别-连接仍然被记录

输入链的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
您可以使用-m限制模块来实现这一点

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

iptables-t filter-A INPUT-p tcp-i eth1-dport 443-m state-state NEW,RELATED,builded-j LOG-日志前缀iptables-443-drop:-日志级别4

iptables-t filter-A INPUT-p tcp-i eth1-dport 443-m state-state新的、相关的、已建立的-j DROP

第一行将接受数据包,直到它们达到每分钟10的速率。 第二行将匹配并记录每分钟超过10的数据包。 第三行将匹配并丢弃与第二条规则相同的数据包。 我只是用ICMP数据包试过,我不知道你是否真的想用这个方法:它是一个速率。 也许您最好使用-m connlimit模块,在手册页中描述为:

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

希望这有帮助