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.
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 -versionSe le tabelle IP non sono installate, è possibile installarle eseguendo il seguente comando nel terminale.
ubuntu@ubuntu: ~ $ sudo apt-get updatePossiamo controllare lo stato predefinito delle tabelle IP eseguendo il comando seguente nel terminale.
ubuntu@ubuntu: ~ $ sudo iptables -l -vFlag '-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 -sPer 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 -jBlocco 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 -requestDopo aver eseguito il comando sopra, ora controlla lo stato delle tabelle IP.
ubuntu@ubuntu: ~ $ sudo iptables -l -vPossiamo 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.1Possiamo 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 -requestDopo aver aggiunto queste due regole, ora controlla lo stato delle tabelle IP.
ubuntu@ubuntu: ~ $ sudo iptables -l -vPossiamo 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.