Differences between revisions 1 and 7 (spanning 6 versions)
Revision 1 as of 2011-09-07 15:57:44
Size: 4755
Comment: first translated version
Revision 7 as of 2017-12-08 16:14:50
Size: 5139
Comment: sync with english master
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[iptables|English]] - Italiano-~ ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[iptables|English]] - Italiano - [[es/iptables|Español]] -~
Line 4: Line 4:
Line 10: Line 9:
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, DebPkg:fwbuilder, DebPkg:bastille, DebPkg:ferm ([[it/ferm|pagina wiki]]). 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, DebPkg:fwbuilder, DebPkg:bastille, DebPkg:ferm ([[it/ferm|pagina wiki]]), DebPkg:ufw (Uncomplicated Firewall, da Ubuntu).
Line 37: Line 36:
Nota: c'è un pacchetto apposito che aiuta in questa operazione: DebianPkg:iptables-persistent
Line 40: Line 41:
 nano /etc/iptables.test.rules  editor /etc/iptables.test.rules
Line 63: Line 64:
# Permette le connessioni SSH per chi usa script
# IL NUMERO DI -dport DEVE ESSERE LO STESSO IMPOSTATO NEL FILE SSHD_CONFIG
-A INPUT -p tcp -m state --state NEW --dport 30000 -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
Line 72: Line 73:
# 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
Line 109: Line 113:
 nano /etc/network/if-pre-up.d/iptables  editor /etc/network/if-pre-up.d/iptables
Line 115: Line 119:
 #!/bin/bash  #!/bin/sh
Line 133: Line 137:
   * 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


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).

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.

Una volta che si è soddisfatti, 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

Notare: Questo HOWTO è frutto del contributo dell'utente Geejay a wiki.openvz.org e fa parte di un howto sull'installazione.

Vedere anche


CategorySystemAdministration