Ping è un'utilità di rete utilizzata per verificare la disponibilità di un sistema su una rete con protocollo Internet utilizzando la richiesta echo ICMP e i messaggi di risposta eco. Tuttavia, alcuni amministratori di rete preferiscono bloccare il ping poiché lo considerano un problema di sicurezza per alcuni motivi. In un post precedente, abbiamo spiegato come bloccare o sbloccare la richiesta di ping su Ubuntu 20.04. Questo post parlerà di come bloccare o sbloccare le richieste di ping su Debian.
Prerequisiti
- sistema operativo Debian
- Utente Sudo
Nota: La procedura spiegata qui è stata testata su Debian 10 (Buster) sistema.
Blocca o sblocca le richieste di ping su Debian
Ping invia una richiesta di eco ICMP al sistema di destinazione e quindi ottiene una risposta di eco ICMP. Nel sistema operativo Linux, quando esegui il ping di un indirizzo IP, continua a inviare pacchetti ICMP finché non premi Ctrl+C per interromperlo. Per inviare un numero specifico di pacchetti, usa il ping con -c opzione. Ad esempio, per inviare 3 pacchetti ICMP, puoi utilizzare il seguente comando:
$ ping -c 3 <ip-address or hostname>
Per bloccare le richieste di ping al sistema Debian, ci sono le seguenti due opzioni:
- Attraverso i parametri del kernel
- Tramite iptables
Spiegheremo entrambe le opzioni per bloccare le richieste di ping sul sistema Debian.
Blocca o sblocca le richieste di ping tramite i parametri del kernel
Le richieste di ping possono essere bloccate/sbloccate modificando il parametro del kernel net.ipv4.icmp_echo_ignore_all . Questo parametro controlla se il sistema deve rispondere o meno alle richieste ping. Il valore predefinito del parametro del kernel net.ipv4.icmp_echo_ignore_all è "0" il che significa consentire tutte le richieste di ping. Modificando il valore di questo parametro del kernel, puoi fare in modo che il sistema blocchi le richieste di ping.
Esistono tre modi diversi per modificare i parametri del kernel:
- Tramite il comando "sysctl"
- Attraverso il file "icmp_echo_ignore_all"
- Tramite il file "/etc/sysctl.conf"
Per scoprire se il sistema sta attualmente bloccando o consentendo le richieste di ping, emettere il seguente comando in Terminale:
$ sudo sysctl -ar ‘icmp_echo’
Il valore di "icmp_echo_ignore_all" è uguale a "0" significa che il ping è sbloccato mentre il valore "1" significa che il ping è sbloccato. Il seguente output mostra che il ping è attualmente sbloccato nel nostro sistema.
Blocca o sblocca le richieste di ping tramite il comando "sysctl" (temporaneamente)
Se hai bisogno di bloccare temporaneamente le richieste di ping al tuo sistema, puoi usare il comando sysctl come segue:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1
Dopo aver eseguito il comando precedente, la macchina inizierà a bloccare le richieste di ping in arrivo. Ora, se un altro sistema tenta di eseguire il ping del tuo sistema, non vedrà alcuna risposta come mostrato nell'output seguente.
Tuttavia, come affermato in precedenza, questo cambiamento sarà temporaneo. Non appena si riavvia il sistema, il valore del parametro del kernel tornerà al suo valore originale e il ping verrà nuovamente sbloccato.
Puoi anche sbloccare il ping usando il comando seguente:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0
Blocca o sblocca le richieste di ping tramite il file icmp_echo_ignore_all (temporaneamente)
/proc/sys/net/ipv4/ contiene un file icmp_echo_ignore_all che controlla se il sistema deve rispondere o meno alle richieste ping.
Per bloccare le richieste di ping, dovrai modificare il valore in icmp_echo_ignore_all modulo di file da "0" a "1". Puoi farlo usando il comando seguente:
$ sudo sh -c ‘echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all’
Tuttavia, questo cambiamento sarà temporaneo. Non appena si riavvia il sistema, il valore del parametro del kernel tornerà al suo valore originale e il ping verrà nuovamente sbloccato.
Puoi anche sbloccare il ping usando il comando seguente:
$ sudo sh -c ‘echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all’
Blocca o sblocca le richieste di ping tramite il file "/etc/sysctl.conf" (permanentemente)
Le richieste di ping possono anche essere bloccate in modo permanente utilizzando /etc/sysctl.conf file. Per bloccare permanentemente le richieste di ping, prima modifica /etc/sysctl.conf file utilizzando il seguente comando:
$ sudo nano /etc/sysctl.conf
Ora nel file modificato, aggiungi la seguente riga:
net.ipv4.icmp_echo_ignore_all = 1
Ora salva e chiudi /etc/sysctl.conf file ed eseguire il comando seguente per applicare le modifiche:
$ sysctl -p
Per sbloccare il ping, modifica /etc/sysctl.conf file e cambia il valore di net.ipv4.icmp_echo_ignore_all torna a 0:
net.ipv4.icmp_echo_ignore_all = 0
Blocca o sblocca le richieste di ping utilizzando iptables (permanentemente)
Iptables è un'utilità della riga di comando in Linux che consente/blocca il traffico in base a un insieme di regole. La distribuzione Debian per impostazione predefinita include l'utilità iptables. Tuttavia, se il tuo sistema non dispone di questa utilità, puoi installarla come segue:
$ sudo apt-get install iptables
Ora esegui il comando seguente in Terminale per bloccare le richieste di ping:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
Nel comando precedente, la A l'opzione viene utilizzata per aggiungere una regola in iptables e icmp-type 8 viene utilizzato per la richiesta eco ICMPs. Questo comando aggiunge una regola nel firewall per bloccare tutti i ping in arrivo sul tuo sistema. Dopo aver aggiunto questa regola, il sistema rifiuterà tutte le richieste di ping che gli arrivano. Ora, se un altro sistema tenta di eseguire il ping del tuo sistema, riceverà il messaggio "Porta di destinazione non raggiungibile messaggio.
Se non vuoi che l'utente mittente veda il messaggio Porta di destinazione non raggiungibile, usa DROP invece di REJECT nel comando precedente come segue :
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP
Ora, se un utente esegue un ping sul tuo sistema, non riceverà risposta:
Per sbloccare il ping, usa il comando seguente:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECT
O il comando seguente se hai usato il DROP opzione nella regola di iptables:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j DROP
Nel comando precedente, D l'opzione viene utilizzata per eliminare una regola in iptables e icmp-type 8 viene utilizzato per la richiesta eco ICMPs.
Per elencare le regole nel tuo iptables, usa il seguente comando:
$ sudo iptables -L
Le regole di iptables che abbiamo aggiunto sopra non sopravviveranno a un riavvio del sistema. Per farli sopravvivere a un riavvio, dovrai installare iptables-persistent pacchetto. Esegui il seguente comando per installarlo:
$ sudo apt install iptables-persistent
Dopo ogni regola aggiunta o eliminata in iptables, esegui i seguenti comandi per rendere persistenti queste regole dopo il riavvio:
$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload
Questo è il modo in cui puoi bloccare/sbloccare le richieste di ping sul tuo sistema Debian. In questo post, hai imparato diversi modi per bloccare/sbloccare le richieste di ping temporaneamente o permanentemente. Se conosci altri modi per bloccare/sbloccare il ping che abbiamo perso, ci piacerebbe saperlo nei commenti qui sotto!