Netfilter: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 46.255.86.244 (discussione), riportata alla versione precedente di Equoreo
Etichetta: Rollback
KSavys (discussione | contributi)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(20 versioni intermedie di 12 utenti non mostrate)
Riga 1:
[[File:Netfilter-components.svg|miniatura|right| Componenti di Netfilter]]
In [[informatica]] '''netfilter''' è un componente di [[LinuxDefault (kernelinformatica)|default]] di tutte le moderne [[distribuzione Linux|distribuzioni Linux]], che consente l'intercettazione e la manipolazione dei [[Pacchetto (reti)|pacchetti]] che attraversano il [[computer]], permettendo la realizzazione di alcune funzionalità di rete avanzate come [[firewall]] basati sul [[filtraggio stateful dei pacchetti]] o configurazioni anche complesse di [[Network address translation|NAT]], un sistema di [[traduzione automatica]] degli indirizzi [[Internet Protocol|IP]], tra cui la condivisione di un'unica [[connessione (informatica)|connessione]] [[Internet]] tra diversi computer di una [[rete locale]], o ancora la manipolazione dei pacchetti in transito.
 
== Descrizione ==
[[File:Netfilter-packet-flow.svg|miniatura|right|Flusso dei pacchetti su Netfilter]]
È un componente [[standard]] di [[Default (informatica)|default]] di tutte le moderne [[distribuzione Linux|distribuzioni Linux]]. Estende le capacità native di [[instradamento]] pacchetti [[Internet Protocol|IP]] del [[kernel Linux]], permettendo di realizzare dei [[router]]/[[firewall]] molto sofisticati, ma trovatrovando anche applicazione in calcolatori che hanno una sola [[Interfaccia (informatica)|interfaccia]] di rete e non inoltrano pacchetti da un'interfaccia ad un'altra. In questo secondo caso viene utilizzato soprattutto come firewall. Per [[configurazione (informatica)|configurare]] netfilter attualmente si usa il [[programma (informatica)|programma]] '''iptables''', che permette di definire le regole per i filtri di rete e il reindirizzamento NAT: spesso con tale termine ci si riferisce all'intera infrastruttura, incluso netfilter. Fu introdotto nella versione principale del sistema operativo nel marzo del [[2000]], durante lo sviluppo della versione 2.4.; Nellanella versione 2.2 usava un sistema denominato [[ipchains]], che a sua volta sostituì il sistema [[ipfwadm]], usato nella versione 2.0.
In [[informatica]] '''netfilter''' è un componente [[Linux (kernel)|Linux]], che consente l'intercettazione e la manipolazione dei [[Pacchetto (reti)|pacchetti]] che attraversano il [[computer]], permettendo la realizzazione alcune funzionalità di rete avanzate come [[firewall]] basati sul [[filtraggio stateful dei pacchetti]] o configurazioni anche complesse di [[Network address translation|NAT]], un sistema di traduzione automatica degli indirizzi [[Internet Protocol|IP]], tra cui la condivisione di un'unica [[connessione (informatica)|connessione]] [[Internet]] tra diversi computer di una [[rete locale]], o ancora la manipolazione dei pacchetti in transito.
 
=== Caratteristiche ===
È un componente [[standard]] di [[Default (informatica)|default]] di tutte le moderne [[distribuzione Linux|distribuzioni Linux]]. Estende le capacità native di [[instradamento]] pacchetti [[Internet Protocol|IP]] del [[kernel Linux]], permettendo di realizzare dei [[router]]/[[firewall]] molto sofisticati, ma trova anche applicazione in calcolatori che hanno una sola [[Interfaccia (informatica)|interfaccia]] di rete e non inoltrano pacchetti da un'interfaccia ad un'altra. In questo secondo caso viene utilizzato soprattutto come firewall. Fu introdotto nella versione principale del sistema operativo nel marzo del [[2000]], durante lo sviluppo della versione 2.4. Nella versione 2.2 usava un sistema denominato [[ipchains]], che a sua volta sostituì il sistema [[ipfwadm]], usato nella versione 2.0.
[[File:Netfilter.png|thumb|Schema di funzionamento tra interfacce di ingresso e uscita]]
 
I dati che transitano in una rete sono divisi in pacchetti di dimensioni prefissate,; con netfilter è possibile controllare il contenuto di ogni singolo pacchetto, e definire le azioni o regole da compiere in base alle caratteristiche di quelli ricevuti. Ad esempio, si può definire una regola che impedisce la ricezione di pacchetti provenienti da un particolare indirizzo o che utilizzano una determinata [[Porta (reti)|porta]] per effettuare la [[connessione (informatica)|connessione]].
Per [[configurazione (informatica)|configurare]] netfilter attualmente si usa il [[programma (informatica)|programma]] '''iptables''', che permette di definire le regole per i filtri di rete e il reindirizzamento NAT. Spesso con il termine iptables ci si riferisce all'intera infrastruttura, incluso netfilter.
 
== Descrizione ==
I dati che transitano in una rete sono divisi in pacchetti di dimensioni prefissate, con netfilter è possibile controllare il contenuto di ogni singolo pacchetto, e definire le azioni o regole da compiere in base alle caratteristiche di quelli ricevuti. Ad esempio, si può definire una regola che impedisce la ricezione di pacchetti provenienti da un particolare indirizzo o che utilizzano una determinata [[Porta (reti)|porta]] per effettuare la [[connessione (informatica)|connessione]].
 
Il sistema netfilter è dunque basato su regole raggruppate in ''catene'' (''chain''), a loro volta raggruppate in ''tabelle'' (''tables'').: Ogniogni tabella definisce un tipo diverso di operazioni che è possibile effettuare sui pacchetti;, mentre ogni catena definisce come vengono trattati i pacchetti nelle diverse fasi della loro elaborazione.
 
Le catene sono una forma di [[lista di controllo degli accessi]] (ACL): ogni regola è costituita da due parti: la specifica delle caratteristiche che un pacchetto deve avere affinché la regola stessa venga applicata (''match'') e un ''obiettivo'' o ''target'', che indica cosa fare quando il pacchetto rispetta le caratteristiche indicate. A ciascuna catena è anche associata una ''politica'' di default, che definisce come vengono trattati i pacchetti che non corrispondono ad alcuna regola. Le caratteristiche più di frequente utilizzate per costruire delle regole sono l'indirizzo di partenza o di destinazione del pacchetto e il numero di porta associato alla connessione.
 
Ogni pacchetto di rete che arriva o parte dal computer attraversa almeno una catena e ogni [[regola della catena]] controlla se il pacchetto ne rispetta la specifica. Se questo accade, il pacchetto seguirà il comportamento descritto nell'obiettivo della regola, e le regole successive della catena verranno ignorate (a parte casi speciali). Se il pacchetto raggiunge la fine della catena senza essere processato da nessuna regola, la politica di default della catena determina cosa farne.
 
In ogni tabella esistono alcune catene predefinite, ma l'utente può crearne di nuove; uno dei possibili obiettivi è infatti il collegamento a un'altra catena. In questo caso, il pacchetto ricomincia ad essere valutato dalle regole della nuova catena, senza limiti di concatenazione. Una regola può semplicemente essere un collegamento a una catena. Solo se il pacchetto attraversa l'intera catena collegata esso continuerà nella catena principale.
Riga 100:
 
===Monitoraggio delle connessioni===
Una delle funzionalità più importanti offerte da netfilter è la possibilità di identificare i pacchetti facenti parte di una stessa connessione (''stateful packet filtering''). Questo permette di creare delle regole basate sulla relazione che un pacchetto ha nei confronti della connessione a cui appartiene e di altre connessioni correlate a [[Livello di applicazione|livello applicativo]]. Inoltre il NAT si basa su queste informazioni per tradurre allo stesso modo gli indirizzi dei pacchetti di una stessa connessione, e iptables usa queste informazioni per realizzare firewall avanzati.
 
netfilter assegna ad ogni pacchetto uno dei seguenti stati:
Riga 129:
* [[Firestarter (software)]]: un [[personal firewall]] basato su iptables.
* [[FireHOL]]: strumento testuale che permette di realizzare firewall di livello professionale, usa una sintassi semplice ma espressiva.
* [[Shorewall]]
 
==Altri progetti==
Line 134 ⟶ 135:
 
==Collegamenti esterni==
* {{cita web|httphttps://www.netfilter.org/|Sito del progetto Netfilter/iptables|lingua=en}}
* [https://web.archive.org/web/20081210035025/http://www.fwbuilder.org/ Firewall builder] Programma per la programmazione grafica del firewall.
* [httphttps://evil0.github.com/evil-nfhook-ITA.txt Netfilter hacking] {{Webarchive|url=https://web.archive.org/web/20121119035512/http://evil0.github.com/evil-nfhook-ITA.txt |date=19 novembre 2012 }} Testo completo sulle tecniche di netfilter hooking per kernel 2.6 e 2.4.
* [http://openskill.info/topic.php?ID=124 Iptables - OpenSkills] Funzionamento di netfilter/iptables e ulteriori approfondimenti.
{{Portale|Sicurezza informatica|Software libero|Telematica}}