Acronimul ICMP vine de la Internet Control Message Protocol. Dupa cum ii spune si numele ICMP este un protocol folosit pentru control si verifcari. In general se verifica functionalitatea unor noduri ale retelei. Folosit inss în exces de cineva rau intentionat poate provoca DoS sau chiar DDoS. Mai demult cand ma intreba cineva ziceam: „Dai DROP si gata!”, practica inss spune ca nui chiar asa.
Nu de putine ori dam cate un ping la serverul respectiv, numai ca sa verificam ca functioneaza. Ce facem? Îl facem sa accepte ping numai de la anumite adrese? Daca se viruseaza astea si fac mai mult rau decat restul internetului la un loc?
Eu va recomand așa:
Creem un lana nou, ICMP si directionam tot traficul ICMP catre el(practica spune că e bine sa creem grupurile de reguli ce tin de un anume protocol sau de un serviciu în lanturi 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
Jurnalizam si ignoram pachetele ce depasesc de o anumita dimensiune (pachetele de control în general nu depasesc 1500, adica mai mult de cat MTU, daca sunt mai mari e clar că ceva e in neregula)
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
Acceptam pachetele de tipul care ne intereseaza si î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
Jurnalizam si ignoram restul pachetelor
iptables -A ICMP -m limit --limit 1/sec -j LOG --log-prefix "DROP ICMP: " iptables -A ICMP -j DROP
Daca aveti ceva neclaritati astept reply !