Questo articolo spiega come utilizzare le tabelle IP per un firewall semplice e descrive il processo di apertura delle falle nel firewall alle porte necessarie. Una tabella IP è un firewall e uno strumento di rete disponibile per tutte le distribuzioni Linux e opera analizzando i pacchetti a livello di kernel man mano che vengono ricevuti.
Per un elenco completo di comandi, parametri e altre opzioni delle tabelle IP, vedere la pagina MAN e le istruzioni per le tabelle IP.
Set di regole di base
Il comando per elencare le regole correnti è:
sudo iptables --list
L'output predefinito è:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Lettura del set di regole
In un'installazione predefinita, vengono visualizzate tre catene predefinite , un elenco di regole, che si occupa delle tre attività principali:traffico in entrata (INPUT), traffico inoltrato (FORWARD) e traffico in uscita (OUTPUT). La cosa più importante da togliere dalla tabella sopra è che il set di regole predefinito per tutte le politiche è impostato su ACCETTO .
Norme
Le politiche disponibili e altre opzioni sono ampie. Se vuoi saperne di più su di loro, controlla la pagina man di IPtables. Questo articolo copre solo le norme più comuni:
-
Accetta passa esplicitamente il traffico fintanto che non si applicano altre regole di destinazione.
-
Rifiuta restituisce un pacchetto di errore in risposta al pacchetto abbinato. In caso contrario, è equivalente a DROP quindi è un TARGET che termina , terminando l'attraversamento della regola.
-
Lascia interrompe una connessione a un host senza alcuna comunicazione a meno che non si applichi una regola di destinazione.
Opzioni disponibili
Pagina MAN di IPtables:https://linux.die.net/man/8/iptables
Le opzioni riconosciute da iptables
vieni nei seguenti gruppi:
- Comandi specificare un'azione da eseguire.
- Parametri imposta le specifiche delle regole per i comandi utilizzati.
- Altre opzioni che specifichi, se necessario, per i comandi utilizzati.
Comandi firewall semplici
Consenti connessioni già connesse al tuo server.
sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Consenti connessioni su ServiceNet. Richiesto da altri prodotti Rackspace Cloud come Cloud Backup e Cloud Monitoring.
sudo iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Consenti connessioni a SSH. Puoi anche utilizzare questo comando per effettuare personalizzazioni. Il comando seguente consente tutti i tentativi di connessione TCP alla porta SSH 22
.
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
Consenti connessioni provenienti solo da una determinata sottorete IP utilizzando la notazione CIDR (ClasslessInter Domain Routing). In questo esempio, blocchiamo qualsiasi indirizzo IP compreso nell'intervallo 192.168.1.0 - 192.168.1.255.
sudo iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
Consenti connessioni a HTTP 80
o HTTPS 443
da qualsiasi connessione.
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
Consenti connessioni per server FTP sulla porta 21
.
sudo iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT
Modificando il criterio predefinito per negare tutte le connessioni, verranno accettate solo le connessioni consentite.
sudo iptables -P INPUT DROP
IMPORTANTE :esegui questa regola dopo aver impostato le regole di accesso per consentire le connessioni SSH in entrata.
Elenco delle porte comuni
Utilizzando i comandi precedenti, combinare e abbinare le opzioni dal seguente elenco di porte comuni per creare regole per qualsiasi server in esecuzione.
Salva il tuo set di regole
Se il server si riavvia per qualsiasi motivo o si riavvia IPTables, le modifiche andranno perse poiché le modifiche vengono archiviate nella memoria volatile. I seguenti comandi creano un file di testo normale, /etc/sysconfig/iptables , con sintassi leggibile dall'uomo. Tutte le modifiche a questo file sono attive ogni volta che iptables si riavvia.
-
Per CentOS e Fedora
/etc/init.d/iptables save
-
Per il sistema operativo Ubuntu
iptables-save > /etc/iptables.rules
-
Per tutte le altre distribuzioni
iptables-save > /etc/sysconfig/iptables
Riepilogo
Questo articolo mostra come creare un semplice firewall per proteggere il tuo server dagli attacchi di base. Tieni presente che IPTables è uno strumento potente che avrebbe bisogno di un libro per essere esplorato completamente. Se hai bisogno di aiuto per creare più regole, consulta Easy Firewall Generator per IPTables.
Riferimenti e link utili
- Ubuntu IPtables Howto
- Man IPtables