3 155
contributi
m (rimossa parte obsoleta e sostituito pacchetto) |
Wtf (discussione | contributi) Nessun oggetto della modifica |
||
Riga 8: | Riga 8: | ||
<pre># apt-get install iptables</pre> | <pre># apt-get install iptables</pre> | ||
Attenzione che se avete un kernel ricompilato per conto vostro dovrete assicuratevi di avere abilitato tutte le opzioni ed i moduli necessari. | Attenzione che se avete un kernel ricompilato per conto vostro dovrete assicuratevi di avere abilitato tutte le opzioni ed i moduli necessari. | ||
=== Nozioni di base === | |||
Prima di addentrarsi nel magico mondo di <code>iptables</code> è bene aver chiare alcune informazioni preliminari, assolutamente necessarie per comprendere i comandi che saranno presentati più avanti. | |||
In linea generale ogni regola di iptables, per quanto lunga e complessa, è così strutturata: | |||
# tabella cui attribuire la regola, ad esempio ''filter''; | |||
# catena cui attribuire la regola, ad esempio ''input''; | |||
# condizioni che fanno applicare la regola al pacchetto in esame, ad esempio tutti i pacchetti provenienti da fuori LAN, basati su protocollo TCP e diretti alla porta numero X; | |||
# azione da intraprendere, ad esempio accettare o scartare il pacchetto. | |||
Ci sono cinque tabelle indipendenti predefinite, ma all'utente comune normalmente ne interessano solo due: | |||
* '''filter''', la tabella usata per decidere del destino dei pacchetti, ovvero accettati o scartati. È, usando un'espressione impropria, la tabella delle regole del firewall; | |||
* '''nat''', la tabella usata per alterare e instradare i pacchetti. Questa tabella viene usata per esempio per sostituire l'ip sorgente di un pacchetto in uscita dalla LAN (masquerading) o per reindirizzare ad una certa macchina della LAN tutti i pacchetti provenienti da internet e diretti verso una certa porta. | |||
Le catene possono essere pensate come le colonne che compongono le tabelle. | |||
* ''filter'' | |||
** '''INPUT''', raggruppa tutte le regole riguardanti i pacchetti che arrivati ad una delle interfacce di rete della macchina devono essere indirizzati alla macchina stessa; | |||
** '''OUTPUT''', raggruppa tutte le regole riguardanti i pacchetti generati dalla macchina e destinati ad essere inviati altrove; | |||
** '''FORWARDING''', raggruppa tutte le regole riguardanti i pacchetti che arrivati ad una delle interfacce di rete della macchina devono essere instradati direttamente ad un'altra sua interfaccia, poiché non destinati a questa macchina. | |||
* ''nat'' | |||
** '''PREROUTING''', raggruppa tutte le regole che modificano i pacchetti in arrivo ad una delle interfacce della macchina, prima che raggiungano la tabella ''filter''; | |||
** '''OUTPUT''', raggruppa tutte le regole che modificano i pacchetti generati dalla macchina prima di transitare attraverso la catena ''output'' della tabella ''filter''; | |||
** '''POSTROUTING''', raggruppa tutte le regole che modificano i pacchetti in uscita da una delle interfacce della macchina, dopo che hanno già oltrepassato la tabella ''filter'', catena ''output'' o catena ''forwarding'' a seconda della provenienza del pacchetto; | |||
Se si considerano le sole due tabelle qui descritte l'ordine di transito delle diverse catene è il seguente: | |||
# '''nat PREROUTING''' | |||
# instradamento del pacchetto: | |||
#* se diretto alla macchina | |||
#*# '''filter INPUT''' | |||
#*# elaborazione locale. Se nessuna risposta deve essere data il percorso si conclude qui, viceversa il pacchetto di risposta attraverserà: | |||
#*# '''nat OUTPUT''' | |||
#*# '''filter OUTPUT''' | |||
#* se diretto ad un altro dispositivo attraverserà invece '''filter FORWARD''' | |||
# nuovo instradamento del pacchetto | |||
# '''nat POSTROUTING''' | |||
===Risorse in rete=== | ===Risorse in rete=== |
contributi