Link alla documentazione ufficiale e raccomandata esistono sul sito Web Netfilter.
Questo non è un nuovo argomento, le risorse sono illimitate .
La maggior parte dei comandi di base sono abbastanza intuitivi e possono essere facilmente riferiti alla manpage .
netfilter, che è la tecnologia a livello di kernel che abilita il filtraggio dei pacchetti, è piuttosto avanzato. Esistono tabelle aggiuntive che possono manipolare i pacchetti, tradurre i pacchetti e influire in altro modo sul routing. L' iptablesutilità è lo strumento userland per interagire con netfilter. Se desideri conoscere le funzionalità avanzate, ti suggerisco di fare riferimento alla documentazione di cui sopra. Per un'introduzione alla funzionalità di base, leggi di più.
Per elencare tutte le regole esistenti:
iptables -L -n
-n impedisce a iptables di risolvere ips, producendo un output più veloce.
La tabella predefinita è la filtertabella, che viene utilizzata per applicare le regole del firewall di base alle tre catene. Le tre catene predefinite della filtertabella sono INPUT, OUTPUTe FORWARD.
Le catene sono ampiamente autoesplicative. La catena INPUT influenza i pacchetti in arrivo, la catena OUTPUT influenza i pacchetti generati localmente e infine FORWARD per tutti i pacchetti che attraversano il sistema.
Tra gli obiettivi che è possibile specificare, è possibile DROPpacchetti, il che significa semplicemente ignorare e non rispondere. Puoi REJECTpacchetti, in cui una risposta icmp verrebbe inviata alla fonte del rifiuto. Infine, puoi farlo ACCEPT, il che consente ai pacchetti di continuare il routing.
Spesso con un firewall rivolto verso l'esterno la scelta predefinita sarà DROPal contrario REJECT, in quanto riduce l'impronta visibile della tua rete su Internet. Ad esempio, un IP che altrimenti limiti i servizi a un host specifico avrebbe meno visibilità DROP.
Nota, -Asignifica aggiungere alla fine della catena. Se si desidera inserire nella parte superiore, è possibile utilizzare -I. Tutte le regole vengono elaborate dall'alto verso il basso. -Dper la cancellazione.
A DROPun pacchetto in arrivo proveniente da 192.168.235.235:
iptables -A INPUT -s 192.168.235.235 -j DROP
Questo passa alla DROPdestinazione per tutti i protocolli provenienti da quell'IP.
Accettare:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
Per impedire l'accesso a tale IP dal server o dalla rete locale:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
È possibile specificare il -pprotocollo, l' -sorigine del pacchetto, la -ddestinazione per il pacchetto, la porta di destinazione --dport, la porta di origine --sporte molti altri flag che influenzeranno il modo in cui i pacchetti vengono trattati dalla regola.
Se la tua INPUTpolitica di default era DROPe volevi consentire a tutti gli utenti della 192.168.123.0/24sottorete di accedere a SSH sul tuo server, ecco un esempio:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Esatto, puoi usare anche la notazione CIDR !
In generale, la migliore politica di default è DROPper tutte le catene. Ogni catena ha una politica di default, che è specificata dal -Pflag. Anche se il criterio è impostato sul valore predefinito DROP, si consiglia comunque di includere anche la voce finale in una catena DROP.
Ad esempio, per modificare il criterio in DROPper le catene INPUT, FORWARD e OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Fai attenzione , se specifichi la politica di default di DROP per INPUT su un sistema remoto senza prima concederti l'accesso SSH, potresti impedirti di accedere al sistema. Se su un sistema remoto, è possibile specificare un crontab temporaneo per svuotare tutte le regole ogni 5 minuti come fail-safe.
Per eliminare tutte le regole e consentire tutto il traffico:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Nota, -Xrimuove tutte le catene create. -Felimina tutte le regole.
Esistono strumenti nativi per salvare e ripristinare le regole. In particolare, iptables-savee iptables-restore. La maggior parte delle moderne distribuzioni Linux hanno savee restorefunzionano all'interno di un file init iptables fornito con il sistema.
Esistono altre best practice per i firewall, come l'eliminazione di pacchetti non validi e altri tipi di traffico indesiderato. Questo è uno dei vantaggi dell'utilizzo di un'utilità front-end come Shorewall , poiché implementerà molte di queste politiche per impostazione predefinita. Tuttavia, sono d'accordo con il tuo approccio e preferisco mantenere anche le mie regole direttamente, e queste stesse migliori pratiche possono essere implementate senza un front-end.