FastNetMon

Tuesday 15 December 2009

Ограничить число одновременных соединений посредством iptables


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 отбиты, как нам и требовалось :)

2 comments :

  1. Как сделать что бы не отбивались, а в очередь ставились?

    ReplyDelete
    Replies
    1. Этот вопрос не к iptables, этот вопрос уже на уровне приложения, слово для поиска - backlog.

      Delete

Note: only a member of this blog may post a comment.