我试图弄清楚这些iptable的规则实际上是做什么的,但我并不是很有经验。
以下是两条规则:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 16 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --syn --dport 443 -m connlimit --connlimit-above 20 --connlimit-mask 16 -j REJECT --reject-with tcp-reset我一直在为自己搜索这个,但我并不完全确定。
据我理解,这些规则适用于使用特定端口上的TCP协议(在本例中为HTTPS )到服务器的传入连接,并拒绝在特定时间内发送超过20个的IP地址。但是我不明白下面的属性到底是做什么的,或者拒绝是如何实际工作的。
当这些IP地址被阻塞时,这个限制适用的时限是什么?如果是的话,时间会持续多久?
发布于 2016-02-13 13:04:23
下面是上述iptables规则中这些参数的含义。
--syn这实际上是--tcp-flags SYN,RST,ACK,FIN SYN的缩写,并表示对于这个iptables规则检查的数据包,应该检查TCP标志SYN、RST、ACK和FIN。应该只匹配设置了TCP标志SYN的数据包。
--connlimit-above 20这实际上是参数-m connlimit --connlimit-above 20的一部分,并要求将数据包与连接限制相匹配。如果数据包与超过前20个连接的任何连接相关,则丢弃数据包。
--connlimit-mask 16这允许您限制将允许来自哪个子网掩码的数据包。此参数仅将每个255.255.0.0子网的连接数限制为16个。因此,通过同时使用这两个子网,您可以控制一次可以从一个255.255.0.0子网中建立多少连接。
REJECT --reject-with tcp-reset这意味着任何匹配的数据包都应该丢弃。通过告诉iptables使用tcp-重置丢弃数据包,您是说原始源必须重新开始会话(如果他们提出相同的请求,也将被删除)。
http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO-7.html
http://ipset.netfilter.org/iptables-extensions.man.html
https://serverfault.com/questions/755992
复制相似问题