iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j REJECT
Сохраняем:
iptables-save
А можно это все протестировать мини DoS атакой с другого узла:
ab -c 100 -n 1000 ip.ad.dr.es/
И видим:
iptables -vL
Chain INPUT (policy ACCEPT 11352 packets, 3260K bytes)
pkts bytes target prot opt in out source destination
11437 3265K ISPMGR all -- any any anywhere anywhere
85 5100 REJECT tcp -- any any anywhere anywhere tcp dpt:http flags:FIN,SYN,RST,ACK/SYN #conn/32 > 15 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 11953 packets, 8313K bytes)
pkts bytes target prot opt in out source destination
11953 8313K ISPMGR all -- any any anywhere anywhere
Chain ISPMGR (2 references)
pkts bytes target prot opt in out source destination
Что ровно 15 пакетов были пропущены, а 85 отбиты, как нам и требовалось :)
Как сделать что бы не отбивались, а в очередь ставились?
ReplyDeleteЭтот вопрос не к iptables, этот вопрос уже на уровне приложения, слово для поиска - backlog.
Delete