Questo modulo permette di restringere il numero di confronti e per sopprimere i messaggi di log. In ipchains non è implementata.
Può essere utilizzato per limitare il numero di registrazioni dei log oppure per evitare alcuni Denial of Service (DoS), i port scanner sospetti, e i ping della morte (Ping of death).
Questa opzione permette di specificare il numero confronti che devono essere effettuati in certo periodo di tempo. E' possibile specificare il numero di confronti da effettuare ogni secondo ('/second' o '/s'), oppure ogni minuto ('/minute' o '/m'), ogni ora ('/hour' o '/h'), ogni giorno ('/day' o '/d').
Questa opzione permette di specificare il burst, ossia il numero di pacchetti che devono essere confrontati la prima volta, e quanti ne devono essere recurati se ad ogni scadenza non sono pervenuti. Quindi se specifichiamo un limite di 1 pacchetto al minuto con burst di 5 la prima volta saranno confrontati 5 pacchetti, poi uno solo ogni minuto. Inoltre per ogni minuto che non si ricevono pacchetti allora ne sarà recuperato uno nel burst.
I parametri di default sono --limit 3/hour --limit-burst 5
E' importante fare attenzione a questa enstensione in quanto si potrebbero causare involontariamente dei DoS, in genere è comunque raccomandato utilizzarla con l'obiettivo LOG.
# -------------------------------------------------------------------------------- # Appendiamo alla catena INPUT (-A INPUT) una regola che limiti (-m limit), usando # i parametri di default, le registrazioni. # -------------------------------------------------------------------------------- iptables -A INPUT -m limit -j LOG # -------------------------------------------------------------------------------- # Appendiamo alla catena FORWARD (-A FORWARD) una regola che limiti (-m limit), # le registrazioni accettando 1 pacchetto ogni ora (--limit 1/h), con burst # pari a 3 pacchetti (--limit-burst 3). # -------------------------------------------------------------------------------- iptables -A FORWARD -m limit --limit 1/h --limit-burst 3 -j LOG # -------------------------------------------------------------------------------- # Appendiamo una regola che accetti solo 1 pacchetto al secondo (burst di 5) # di tipo SYN (richiesta connessione tcp). # -------------------------------------------------------------------------------- iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT # -------------------------------------------------------------------------------- # Questo comando aggiunge una regola il cui scopo è di limitare il numero di pacchetti # RST da accettare (1 al secondo con burst di 5). # Utile nel caso qualcuno cerchi di effettuare un port-scanning. # -------------------------------------------------------------------------------- iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # -------------------------------------------------------------------------------- # Aggiungiamo una regola alla catena INPUT (-j INPUT) che accetti 1 pacchetto # icmp echo-request (ping) ogni secondo con burst di 5 pacchetti. # -------------------------------------------------------------------------------- iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT