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