Ricerca nel sito web

Come bloccare le richieste ICMP di ping sui sistemi Linux


Alcuni amministratori di sistema spesso bloccano i messaggi ICMP sui loro server per nascondere le macchine Linux al mondo esterno su reti difficili o per prevenire qualche tipo di IP Flood e attacchi Denial of Service.

Il metodo più semplice per bloccare il comando ping sui sistemi Linux è aggiungere una regola iptables, come mostrato nell'esempio seguente. Iptables fa parte del kernel Linux netfilter e, di solito, è installato per impostazione predefinita nella maggior parte degli ambienti Linux.

iptables -A INPUT --proto icmp -j DROP
iptables -L -n -v  [List Iptables Rules]

Un altro metodo generale per bloccare i messaggi ICMP nel tuo sistema Linux è aggiungere la variabile del kernel seguente che eliminerà tutti i pacchetti ping.

echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all

Per rendere permanente la regola di cui sopra, aggiungere la riga seguente al file /etc/sysctl.conf e, successivamente, applicare la regola con il comando sysctl.

echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf 
sysctl -p

Nelle distribuzioni Linux basate su Debian fornite con firewall applicativo UFW, puoi bloccare i messaggi ICMP aggiungendo la seguente regola al file /etc/ufw/before.rules, come illustrato nell'estratto seguente.

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Riavvia il firewall UFW per applicare la regola, emettendo i comandi seguenti.

ufw disable && ufw enable

Nella distribuzione CentOS o Red Hat Enterprise Linux che utilizza l'interfaccia Firewalld per gestire le regole iptables, aggiungi la regola seguente a eliminare i messaggi ping.

firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent	
firewall-cmd --reload

Per verificare se le regole del firewall sono state applicate con successo in tutti i casi discussi sopra, prova a eseguire il ping dell'indirizzo IP della tua macchina Linux da un sistema remoto. Nel caso in cui i messaggi ICMP siano bloccati sul tuo sistema Linux, dovresti ricevere un messaggio "Richiesta scaduta" o "Host di destinazione non raggiungibile" sul computer remoto.