connlimit功能:
connlimit模塊允許你限制每個客戶端IP的並發連接數,即每個IP同時連接到一個服務器個數。
connlimit模塊主要可以限制內網用戶的網絡使用,對服務器而言則可以限制每個IP發起的連接數。
connlimit參數:
--connlimit-above n #限制為多少個
--connlimit-mask n #這組主機的掩碼,默認是connlimit-mask 32 ,即每個IP.
例子:
限制同一IP同時最多100個http連接
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT 或 iptables -I INPUT -p tcp --syn --dport 80 -m connlimit ! --connlimit-above 100 -j ACCEPT
只允許每組C類IP同時100個http連接
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 --connlimit-mask 24 -j REJECT
只允許每個IP同時5個80端口轉發,超過的丟棄
iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j DROP
限制某IP最多同時100個http連接
iptables -A INPUT -s 222.222.222.222 -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT
限制每IP在一定的時間(比如60秒)內允許新建立最多100個http連接數
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 100 -j REJECT iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT