Gli aggressori stanno trovando modi sofisticati per penetrare anche nelle reti remote protette da sistemi di rilevamento e prevenzione delle intrusioni. Nessun IDS/IPS può fermare o ridurre al minimo gli attacchi degli hacker determinati a prendere il controllo della tua rete. Una configurazione impropria consente agli aggressori di aggirare tutte le misure di sicurezza della rete implementate.
In questo articolo spiegherò come gli ingegneri della sicurezza o gli amministratori di sistema possono prevenire questi attacchi.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Quasi tutte le distribuzioni Linux sono dotate di un firewall integrato per proteggere i processi e le applicazioni in esecuzione sull'host Linux. La maggior parte dei firewall sono progettati come soluzioni IDS/IPS, il cui scopo principale è rilevare e impedire che pacchetti dannosi accedano a una rete.
Un firewall Linux di solito viene fornito con due interfacce:iptables e ipchains. La maggior parte delle persone si riferisce a queste interfacce come "firewall iptables" o "firewall ipchains". Entrambe le interfacce sono progettate come filtri di pacchetti. Iptables agisce come un firewall stateful, prendendo decisioni in base ai pacchetti precedenti. Ipchains non prende decisioni in base ai pacchetti precedenti; quindi, è progettato come un firewall stateless.
In questo articolo, ci concentreremo sul firewall iptables, che viene fornito con la versione del kernel 2.4 e successive.
Con il firewall iptables, puoi creare policy, o insiemi ordinati di regole, che comunicano al kernel come dovrebbe trattare specifiche classi di pacchetti. All'interno del kernel c'è il framework Netfilter. Netfilter è sia un framework che il nome del progetto per il firewall iptables. Come framework, Netfilter consente a iptables di agganciare funzioni progettate per eseguire operazioni sui pacchetti. In poche parole, iptables si basa sul framework Netfilter per creare funzionalità firewall come il filtraggio dei dati dei pacchetti.
Ogni regola di iptables viene applicata a una catena all'interno di una tabella. Una catena iptables è una raccolta di regole che vengono confrontate con pacchetti con caratteristiche simili, mentre una tabella (come nat o mangle) descrive diverse categorie di funzionalità. Ad esempio, una tabella mangle altera i dati dei pacchetti. Pertanto, vengono applicate regole specializzate che alterano i dati del pacchetto e regole di filtro vengono applicate alla tabella dei filtri perché la tabella dei filtri filtra i dati dei pacchetti.
Le regole di Iptables hanno una serie di corrispondenze, insieme a un obiettivo, come Drop
o Deny
, che indica a iptables cosa fare con un pacchetto conforme alla regola. Pertanto, senza un target e una serie di corrispondenze, iptables non può elaborare efficacemente i pacchetti. Un obiettivo si riferisce semplicemente a un'azione specifica da intraprendere se un pacchetto soddisfa una regola. Le corrispondenze, d'altra parte, devono essere soddisfatte da ogni pacchetto affinché iptables possa elaborarle.
Ora che abbiamo capito come funziona il firewall iptables, diamo un'occhiata a come utilizzare il firewall iptables per rilevare e rifiutare o eliminare indirizzi falsificati.
Attivazione della verifica dell'indirizzo di origine
Il primo passo che, come ingegnere della sicurezza, faccio quando mi occupo di indirizzi falsificati da host remoti è attivare la verifica dell'indirizzo di origine nel kernel.
La verifica dell'indirizzo di origine è una funzionalità a livello di kernel che elimina i pacchetti che fingono di provenire dalla tua rete. Utilizza il metodo del filtro del percorso inverso per verificare se l'origine del pacchetto ricevuto è raggiungibile tramite l'interfaccia in cui è arrivato.
Per attivare la verifica dell'indirizzo di origine, utilizza il semplice script della shell di seguito invece di farlo manualmente:
#!/bin/sh
#author’s name: Michael K Aboagye
#purpose of program: to enable reverse path filtering
#date: 7/02/18
#displays “enabling source address verification” on the screen
echo -n "Enabling source address verification…"
#Overwrites the value 0 to 1 to enable source address verification
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "completed"
Lo script precedente, una volta eseguito, visualizza il messaggio Enabling source address verification
senza aggiungere una nuova riga. Il valore predefinito del filtro del percorso inverso è 0,0, il che significa nessuna convalida dell'origine. Pertanto, la seconda riga sovrascrive semplicemente il valore predefinito da 0 a 1. 1 significa che il kernel convaliderà la sorgente confermando il percorso inverso.
Infine, puoi utilizzare il comando seguente per eliminare o rifiutare indirizzi falsificati da host remoti scegliendo una di queste destinazioni:DROP
o REJECT
. Tuttavia, ti consiglio di usare DROP
per motivi di sicurezza.
Sostituisci il segnaposto "Indirizzo IP" con il tuo indirizzo IP, come mostrato di seguito. Inoltre, devi scegliere di utilizzare REJECT
o DROP
; i due obiettivi non funzionano insieme.
iptables -A INPUT -i internal_interface -s IP_address -j REJECT / DROP
iptables -A INPUT -i internal_interface -s 192.168.0.0/16 -j REJECT/ DROP
Questo articolo fornisce solo le nozioni di base su come prevenire gli attacchi di spoofing da host remoti utilizzando il firewall iptables.