Acronimul ICMP vine de la Internet Control Message Protocol. După cum îi spune și numele ICMP este un protocol folosit pentru control și verifcări. În general se verifică funcționalitatea unor noduri ale rețelei. Folosit însă în exces de cineva rău intenționat poate provoca DoS sau chiar DDoS. Mai demult când mă întreba cineva ziceam: „Dai DROP și gata!”, practica însă spune că nui chiar așa.
Nu de puține ori dăm câte un ping la serverul respectiv, numai ca să verificăm că funcționează. Ce facem? Îl facem să accepte ping numai de la anumite adrese? Dacă se virusează astea și fac mai mult rău decât restul internetului la un loc?
Eu vă recomand așa:
- creem un lanț nou, ICMP și direcționătm tot traficul ICMP către el(practica spune că e bine să creem grupurile de reguli ce țin de un anume protocol sau de un serviciu în lanțuri separate)
iptables -N ICMP iptables -A INPUT -p icmp -j ICMP iptables -A OUTPUT -p icmp -j ICMP iptables -A FORWARD -p icmp -j ICMP
- jurnalizăm și ignorăm pachetele ce depășesc de o anumită dimensiune (pachetele de control în general nu depășesc 1500, adică mai mult de cât MTU, dacă sunt mai mari e clar că ceva e în neregulă)
iptables -A ICMP -m length --length 1700:65507 -m limit --limit 1/sec -j LOG --log-prefix "ICMP TOO BIG: " iptables -A ICMP -m length --length 1700:65507 -j DROP
- acceptăm pachetele de tipul care ne interesează și în anumite limite
iptables -A ICMP -p icmp -m limit --limit 10/sec --limit-burst 20 -m icmp --icmp-type 0 -j ACCEPT #echo-reply iptables -A ICMP -p icmp -m limit --limit 10/sec --limit-burst 20 -m icmp --icmp-type 8 -j ACCEPT #echo-request iptables -A ICMP -p icmp -m limit --limit 3/sec -m icmp --icmp-type 3 -j ACCEPT #destination-unreachable (folosit la traceroute și mtr) iptables -A ICMP -p icmp -m limit --limit 3/sec -m icmp --icmp-type 11 -j ACCEPT #time-exceeded iptables -A ICMP -p icmp -m limit --limit 3/sec -m icmp --icmp-type 30 -j ACCEPT #traceroute iptables -A ICMP -p icmp -m limit --limit 3/sec -m icmp --icmp-type 17 -j ACCEPT #address-mask-request iptables -A ICMP -p icmp -m limit --limit 3/sec -m icmp --icmp-type 18 -j ACCEPT #address-mask-reply
- jurnalizăm și ignorăm restul pachetelor
iptables -A ICMP -m limit --limit 1/sec -j LOG --log-prefix "DROP ICMP: " iptables -A ICMP -j DROP
Aștept sugestii
-blank, space, whatever
vreau doar sa primesc urmatoarele comentarii pe e-mail, dar nu ma lasa daca nu comentez si eu
Multumesc, de mult timp cautam o solutie de genul