Come utilizzare le tabelle IP per bloccare l'ICMP

Come utilizzare le tabelle IP per bloccare l'ICMP

Il protocollo di messaggi di controllo Internet, noto anche come ICMP, è un protocollo utilizzato per controllare la connettività degli host in una rete. Possiamo anche usare questo protocollo per diagnosticare i problemi in una rete. Ma da un punto di vista della sicurezza, può anche essere usato da qualcuno per eseguire un attacco DDoS. Un attacco di alluvione per ping o un attacco di smentito distribuito del servizio (DDoS) è una forma di attacco in cui qualcuno invia molte richieste di ping a un host e l'host diventa quasi inaccessibile al traffico di routine. Per evitare questo tipo di situazione, gli amministratori di rete di solito bloccano l'ICMP sulla loro rete. In questo articolo, impareremo come le tabelle IP possono essere utilizzate per bloccare ICMP sul nostro server.

Quali sono le tabelle IP?

Le tabelle IP sono un programma di utilità firewall per i sistemi operativi Linux. Può essere utilizzato per accettare, negare o restituire il traffico di rete da o verso una fonte. Osserva il traffico di rete in arrivo utilizzando diversi set di regole definite in una tabella. Queste serie di regole sono chiamate catene. Le tabelle IP osservano pacchetti di dati e quali pacchetti corrispondono alle regole sono diretti a un'altra catena o assegnati uno dei seguenti valori.

  • ACCETTATO: Il pacchetto sarà autorizzato a passare
  • GOCCIOLARE: Il pacchetto non sarà autorizzato a passare
  • RITORNO: La catena restituirà il pacchetto alla catena precedente.

Installazione di tabelle IP

Per la maggior parte delle distribuzioni Linux, le tabelle IP vengono preinstallate. È possibile verificare se le tabelle IP sono installate o meno digitando il seguente comando nel terminale.

ubuntu@ubuntu: ~ $ iptables -version

Se le tabelle IP non sono installate, è possibile installarle eseguendo il seguente comando nel terminale.

ubuntu@ubuntu: ~ $ sudo apt-get update
ubuntu@ubuntu: ~ $ sudo apt-get Installa iptables

Possiamo controllare lo stato predefinito delle tabelle IP eseguendo il comando seguente nel terminale.

ubuntu@ubuntu: ~ $ sudo iptables -l -v

Flag '-l' elenca tutte le regole e la flag '-v' mostra informazioni dettagliate.

In alternativa, possiamo anche elencare tutte le regole aggiunte alle tabelle IP mediante il comando seguente nel terminale.

ubuntu@ubuntu: ~ $ sudo iptables -s

Per impostazione predefinita, tutte le catene accettano i pacchetti e queste catene non hanno una regola assegnata.

Assegnare regole alle catene

Inizialmente, nessuna regola è assegnata a nessuna catena e stanno tutti accettando il traffico di rete. Ora in questa sezione, vedremo come possiamo definire le regole personalizzate per bloccare o consentire il traffico di rete. Al fine di definire una nuova regola, utilizziamo il flag "A" (APPEND), che dice alle tabelle IP che una nuova regola verrà definita. Le seguenti opzioni vengono utilizzate anche insieme alla bandiera "A" per descrivere la regola.

-io (Interfaccia): questa opzione indica da quale interfaccia desideri che il traffico di rete sia consentito o bloccato. Puoi ottenere un elenco di tutte le interfacce sul sistema eseguendo il seguente comando nel terminale.

ubuntu@ubuntu: ~ $ ifconfig

-P (Protocollo): questa opzione definisce quale protocollo si desidera filtrare utilizzando le tabelle IP. Questo può essere TCP, UDP, ICMP, ICMPV6, ecc. È possibile applicare le regole a tutti i protocolli utilizzando tutte le opzioni.

-S (Fonte): questa opzione mostra l'origine del traffico di rete come l'indirizzo IP o il nome di dominio.

-dport (porta di destinazione): questa opzione viene utilizzata per indicare la porta di destinazione per il traffico di rete.

-J (Target): questa opzione viene utilizzata per mostrare il target. Può essere accettato, rilasciare, rifiutare o restituire. Questa opzione è obbligatoria per ogni regola.

In generale, la sintassi di base per l'aggiunta di una regola sarà la seguente:

ubuntu@ubuntu: ~ $ sudo iptables -a -i -j
-p -dport -s

Blocco di ICMP utilizzando le tabelle IP

Finora, abbiamo una comprensione di base delle tabelle IP e il loro utilizzo per consentire o bloccare il traffico su porte specifiche attraverso interfacce specifiche. Ora useremo le tabelle IP per bloccare ICMP sul nostro server.

Il comando seguente aggiungerà una regola per bloccare ICMP sulla macchina:

ubuntu@ubuntu: ~ $ sudo iptables -a input -j reject -p icmp -icmp -type echo -request

Dopo aver eseguito il comando sopra, ora controlla lo stato delle tabelle IP.

ubuntu@ubuntu: ~ $ sudo iptables -l -v

Possiamo vedere che una regola è stata aggiunta alla catena di input, che mostra che tutto il traffico ICMP verrà respinto. Ora, se eseguiamo il ping del nostro sistema da qualsiasi altro sistema dalla stessa rete, rifiuterà la richiesta. Possiamo vedere il risultato facendo una richiesta di ping dal locale

ubuntu@ubuntu: ~ $ ping 127.0.0.1

Possiamo vedere che stiamo ricevendo messaggi di rifiuto dal sistema se proviamo a fare una richiesta di ping.

In alternativa, i seguenti due comandi possono essere utilizzati per aggiungere regole per bloccare ICMP sul nostro server.

ubuntu@ubuntu: ~ $ sudo iptables -a input -p icmp -j drop -icmp -type echo -request
ubuntu@ubuntu: ~ $ sudo iptables -a output -p icmp -j drop -icmp -type echo -reply

Dopo aver aggiunto queste due regole, ora controlla lo stato delle tabelle IP.

ubuntu@ubuntu: ~ $ sudo iptables -l -v

Possiamo vedere che il comando sopra ha aggiunto due regole, una alla catena di input e l'altra alla catena di output.

La differenza tra la caduta e il rifiuto è che quando usiamo il rifiuto, ci mostra un avviso (porta di destinazione irraggiungibile) quando ping perché la richiesta viene rifiutata e non raggiunge la porta. D'altra parte, quando usiamo una goccia, lascia semplicemente cadere l'uscita. L'ingresso non viene respinto, viene elaborato, ma l'uscita non viene visualizzata come mostrato di seguito

Conclusione

Gli hacker adottano metodi diversi per eseguire attacchi DDoS (Distributed Denial of Service) ai server. Il diluvio ping è anche una forma di attacco DDoS. Gli hacker inviano così tante richieste di ping al server che il server utilizza tutta la sua potenza di calcolo per elaborare le richieste di ping e non esegue la sua elaborazione effettiva. In questo scenario o in più altri scenari, potrebbe essere necessario bloccare ICMP sul tuo server.

In questo articolo, abbiamo imparato diversi modi per bloccare l'ICMP utilizzando le tabelle IP. Abbiamo discusso di come possiamo aggiungere regole diverse per bloccare ICMP sul nostro server. Allo stesso modo, possiamo utilizzare le tabelle IP per bloccare qualsiasi tipo di traffico su qualsiasi porta utilizzando le tabelle IP.