5134
Comment: sync with English master
|
6427
sync with English master v.35
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
'''NOTA BENE: iptables viene sostituito da [[nftables]] a partire da Debian Buster''' |
|
Line 10: | Line 12: |
== Stato attuale == '''NOTA BENE: Debian Buster usa in modo predefinito l'infrastruttura nftables'''. A partire da Debian Buster, nf_tables è il backend predefinito quando si usa iptables, attraverso il livello iptables-nft (cioè usando la sintassi iptables syntax con il sottosistema nf_tables del kernel). Questo ha effetti anche su ip6tables, arptables e ebtables. Si può passare da uno all'altro, tra iptables-nft e iptables-legacy usando update-alternatives (lo stesso vale per arptables ed ebtables): {{{ # update-alternatives --set iptables /usr/sbin/iptables-legacy # update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy }}} |
|
Line 102: | Line 118: |
Ora l'output mostra che solo le porte definite prima sono aperte. Tutte le altre sono chiuse. | Ora l'output mostra che solo le porte definite prima sono aperte. Tutte le altre sono chiuse. Se la macchina è sotto controllo remoto si può volere stabilire una nuova connessione ssh a questo punto. |
Line 104: | Line 120: |
Una volta che si è soddisfatti, salvare le regole nel file di configurazione principale di iptables: | == Rendere le modifiche permanenti == Dato che le tabelle IP (IP-Table) non sono persistenti, vengono cancellate ("ripulite") all'avvio successivo. Una volta che si è soddisfatti del proprio insieme di regole, salvare le regole nel file di configurazione principale di iptables: |
Line 129: | Line 149: |
Un altro metodo è quello di usare il pacchetto DebianPkg:iptables-persistent. Le regole possono essere memorizzate usando comandi del tipo: {{{ iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6 }}}} |
|
Line 137: | Line 164: |
* Nozioni base su iptables: ~-<<BR>>. http://www.justlinux.com/nhf/Security/IPtables_Basics.html -~ | * Nozioni base su iptables: ~-<<BR>>. http://forums.justlinux.com/showthread.php?70876-iptables-basics -~ |
Translation(s): English - Italiano - Español
NOTA BENE: iptables viene sostituito da nftables a partire da Debian Buster
Iptables fornisce le funzionalità di filtraggio dei pacchetti, traduzione degli indirizzi di rete (NAT) e altre funzioni di rimaneggiamento dei pacchetti.
Due degli usi più tipici di iptables sono la funzione di firewall e NAT.
La configurazione manuale di iptables può essere impegnativa per i non esperti. Fortunatamente ci sono a disposizioni molti strumenti di configurazione (configurazione guidata) che assistono l'utente: ad esempio, fwbuilder, bastille, ferm (pagina wiki), ufw (Uncomplicated Firewall, da Ubuntu).
Stato attuale
NOTA BENE: Debian Buster usa in modo predefinito l'infrastruttura nftables.
A partire da Debian Buster, nf_tables è il backend predefinito quando si usa iptables, attraverso il livello iptables-nft (cioè usando la sintassi iptables syntax con il sottosistema nf_tables del kernel). Questo ha effetti anche su ip6tables, arptables e ebtables.
Si può passare da uno all'altro, tra iptables-nft e iptables-legacy usando update-alternatives (lo stesso vale per arptables ed ebtables):
# update-alternatives --set iptables /usr/sbin/iptables-legacy # update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
Visualizzare la configurazione attuale
Per vedere quali regole siano già configurate, usare questo comando:
iptables -L
L'output sarà simile al seguente:
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
Quanto sopra permette a tutti di accedere a tutto.
Archiviare le regole di iptables in un file
Nota: c'è un pacchetto apposito che aiuta in questa operazione: iptables-persistent
Si possono rendere le impostazioni un poco più restrittive creando un file di prova per iptables:
editor /etc/iptables.test.rules
In questo file inserire alcune regole base:
*filter # Permette tutto il traffico su loopback (lo0) traffic e elimina tutto il traffico che non usa lo0 verso 127/8 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accetta in entrata su tutte le connessioni stabilite -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Permette tutto il traffico in uscita # Potrebbe essere modificato per permettero solo un certo tipo di traffico -A OUTPUT -j ACCEPT # Permette connessioni HTTP e HTTPS da qualsiasi parte provengano (le normali porte per i siti web) -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT # Permette le connessioni SSH # Il numero --dport e' lo stesso di quello in /etc/ssh/sshd_config -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT # Ora ci si dovrebbe informare sulle regole di iptables e considerare se l'accesso ssh # per tutti sia realmente quello che si vuole. Molto probabilmente si preferisce # permettere l'accesso solo per alcuni IP. # Permettere ping # notare che bloccare altri tipi di pacchetti icmp è considerata da alcuni una cattiva idea # rimuovere -m icmp --icmp-type 8 da questa riga per permettere tutti i tipi di icmp: # https://security.stackexchange.com/questions/22711 -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # registrare le chiamate negate di iptables (accesso via il comando 'dmesg') -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 # Respingere tutto il resto del traffico in entrata: politica del negare in modo predefinito quando non esplicitamente permesso -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT
Tutto questo potrebbe sembrare complicato, ma provare a guardare una sezione alla volta. Ci si accorgerà che ciò che viene fatto è semplicemente chiudere tutte le porte tranne quelle che sono state permesse: che in questo caso sono le porte 80 e 443 (le porte standard dei browser web) e la porta SSH definita in precedenza.
Attivare queste nuove regole:
iptables-restore < /etc/iptables.test.rules
e vedere la differenza:
iptables -L
Ora l'output mostra che solo le porte definite prima sono aperte. Tutte le altre sono chiuse. Se la macchina è sotto controllo remoto si può volere stabilire una nuova connessione ssh a questo punto.
Rendere le modifiche permanenti
Dato che le tabelle IP (IP-Table) non sono persistenti, vengono cancellate ("ripulite") all'avvio successivo.
Una volta che si è soddisfatti del proprio insieme di regole, salvare le regole nel file di configurazione principale di iptables:
iptables-save > /etc/iptables.up.rules
Per assicurarsi che le regole di iptables vengano usate al prossimo riavvio, creare un nuovo file:
editor /etc/network/if-pre-up.d/iptables
e aggiungervi queste righe:
#!/bin/sh /sbin/iptables-restore < /etc/iptables.up.rules
Il file deve essere eseguibile, perciò cambiare i suoi permessi:
chmod +x /etc/network/if-pre-up.d/iptables
Un altro metodo è quello di usare il pacchetto iptables-persistent. Le regole possono essere memorizzate usando comandi del tipo:
iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6
}
Notare: Questo HOWTO è frutto del contributo dell'utente Geejay a wiki.openvz.org e fa parte di un howto sull'installazione.
Vedere anche
Documentazione su netfilter/iptables:
. http://www.netfilter.org/documentation/- Introduzioni facili/Panoramiche
Firewall e routing avanzato in Linux:
. http://ornellas.apanela.com/dokuwiki/pub:firewall_and_adv_routingNozioni base su iptables:
. http://forums.justlinux.com/showthread.php?70876-iptables-basics
Securing Debian HOWTO: sezione sull'aggiunta di funzionalità firewall:
. http://www.debian.org/doc/manuals/securing-debian-howto/ch-sec-services.en.html#s-firewall-setup