Le funzionalità di firewall e di mascheramento IP, essendo incorporate nel kernel, devono essere abilitate prima della compilazione (sezione 29.2.9). È importante osservare che quando si utilizza il sistema del filtro di pacchetto IP, è necessario consentire il transito dei pacchetti attraverso il firewall, abilitando in pratica le funzionalità di inoltro dei pacchetti (forwarding/gatewaying) come nel caso di un router normale. Una volta inserita nel kernel la funzionalità di forwarding/gatewaying, questa può essere controllata attraverso un file del file system virtuale /proc/. Generalmente, tale funzionalità viene disabilitata espressamente, per motivi di sicurezza, dalla procedura di inizializzazione del sistema. Per riattivare l'inoltro tra le interfacce di rete, si può agire nel modo seguente: # echo 1 > /proc/sys/net/ipv4/ip_forward 180.1 Schema generale
di funzionamento del kernel Figura 180.1. Schema dei punti di controllo della gestione del kernel Linux 2.2.*. .-------------. .-------------.
.-------------. Un pacchetto proveniente da un'interfaccia qualunque, diretto allo stesso firewall o passante per questo, è soggetto al controllo di ingresso; un pacchetto passante, dopo il controllo di ingresso viene sottoposto al controllo di inoltro; un pacchetto che deve uscire attraverso un'interfaccia del firewall è sottoposto al controllo di uscita. In pratica, i pacchetti che devono attraversare il firewall sono sottoposti a tutti i punti di controllo in questa sequenza. Quando un pacchetto IP è sottoposto al vaglio di un punto di controllo e all'interno di questo non c'è alcuna regola che lo prenda in considerazione, la sua sorte è stabilita dalla politica predefinita (policy) per quel filtro. Generalmente, questa politica è tale per cui gli viene concesso il transito. 180.2 ipchains per
l'amministrazione del firewall ipchains interviene su un elenco di regole riferite alle funzionalità di firewall del kernel; un po' come avviene con la tabella degli instradamenti di un router. L'ordine in cui sono elencate tali regole è importante, quindi si deve poter distinguere tra l'inserimento di una regola all'inizio, alla fine o in un'altra posizione dell'elenco esistente. Salvo eccezioni particolari, che verranno descritte nel contesto opportuno, la sintassi di massima per l'utilizzo di ipchains è quella seguente: ipchains opzione_di_comando punto_di_controllo [regola] [obiettivo] L'opzione di comando serve a stabilire il tipo di intervento nel sistema di gestione del firewall. L'elenco seguente si riferisce alle opzioni che permettono la cancellazione o l'inserimento delle regole in un punto di controllo: -F | --flush elimina tutte le regole del punto di controllo specificato; -D | --delete elimina una o più regole dal punto di controllo specificato; -A | --append aggiunge una regola in coda a quelle del punto di controllo selezionato; -I | --insert inserisce una regola in una posizione stabilita del punto di controllo selezionato; -R | --replace sostituisce una regola del punto di controllo selezionato. Altre opzioni non modificano le regole; in particolare: -L | --list elenca le regole di un uno o di tutti i punti di controllo; -P | --policy cambia la politica predefinita per il punto di controllo specificato; Altre opzioni verranno mostrate quando sarà più opportuno. Il punto di controllo viene indicato attraverso un nome. Si tratta di input, forward e output, che intuitivamente fanno riferimento all'ingresso, all'inoltro e all'uscita. Il programma ipchains
permette di gestire delle regole all'interno di contenitori aggiuntivi
a cui si fa riferimento a partire da regole inserite nei punti di controllo
normali. Nella terminologia di ipchains si parla sempre di chain, sia
per indicare i punti di controllo, sia per indicare questi elenchi di
regole aggiuntive. Infine, una regola comune è conclusa con l'indicazione di un obiettivo. L'obiettivo è la definizione della sorte da dare al pacchetto intercettato, indicata attraverso una parola chiave. Le più importanti per iniziare ad apprendere la configurazione del firewall sono: ACCEPT, DENY e REJECT. ACCEPT consente il transito del pacchetto; DENY impedisce il transito del pacchetto, limitandosi a ignorarlo; REJECT impedisce il transito del pacchetto notificando all'origine il rifiuto (viene inviato un messaggio ICMP specificante che il pacchetto è stato rifiutato). Esempi Lo schema mostra l'aggiunta di una regola di ingresso, non meglio definita, per la quale viene applicato l'obiettivo DENY. ipchains -R input 1 regola -j DENY Lo schema mostra la sostituzione della prima regola di ingresso con un'altra regola non meglio definita, per la quale viene applicato l'obiettivo DENY. ipchains -I input 1 regola -j ACCEPT Lo schema mostra l'inserimento nella prima posizione di una regola di ingresso per la quale viene consentito il transito dei pacchetti (ACCEPT). # ipchains -D input 2 Questo comando elimina la seconda regola di ingresso. # ipchains -F input Questo comando elimina tutte le regole di ingresso. # ipchains -F Questo comando elimina tutte le regole di tutti i punti di controllo. # ipchains -P input DENY Cambia la politica predefinita di ingresso specificando che, in mancanza di regole, i pacchetti devono essere bloccati. 180.2.1 Opzioni di
contorno Opzioni Questa opzione si utilizza generalmente assieme all'opzione di comando -L, allo scopo di rendere più dettagliata l'informazione che si ottiene. -n | --numeric Quando ipchains viene usato per ottenere delle informazioni, con questa opzione si fa in modo che gli indirizzi numerici non siano convertiti in nomi. Ciò può essere utile per evitare l'attesa di una risoluzione da parte del sistema DNS che potrebbe essere inaccessibile. -p [!] {tcp|udp|icmp|all} --protocol [!] {tcp|udp|icmp|all} Stabilisce il tipo di protocollo della regola che viene definita. La parola chiave all rappresenta qualsiasi protocollo ed è l'impostazione predefinita se questo non viene specificato. Le parole chiave che identificano i protocolli possono essere espresse anche attraverso lettere maiuscole. Il punto esclamativo, se utilizzato, serve a fare riferimento a tutti i protocolli fuorché quello indicato. -l | --log Questa è un'opzione che si utilizza nella dichiarazione di una regola e serve a richiedere l'annotazione nel registro del sistema di ogni pacchetto che corrisponda alla regola stessa. È evidente che si tratta di una possibilità da usare per compiere delle verifiche solo quando ne esiste la necessità. -i [!] interfaccia --interface [!] interfaccia Questa è un'opzione che si utilizza nella dichiarazione di una regola e serve a indicare il nome dell'interfaccia di rete attraverso la quale sono ricevuti o inviati i pacchetti della regola che si sta definendo. Quando questa opzione non viene usata, si intende fare riferimento implicitamente a qualunque interfaccia di rete. -j obiettivo --jump obiettivo Questa è un'opzione che si utilizza nella dichiarazione di una regola e serve a definire l'obiettivo, attraverso una parola chiave tra quelle consuete, oppure il riferimento a un gruppo di regole creato a parte. Esempi Elenca le regole di ingresso in modo dettagliato. # ipchains -L output -n Elenca le regole di uscita senza tradurre gli indirizzi in nomi. ipchains -A punto_di_controllo regola -l -j DENY Lo schema mostra l'indicazione di una regola non meglio definita, con la quale di vogliono intercettare dei pacchetti da bloccare (l'obiettivo è DENY). Questi pacchetti, anche se vengono bloccati, sono annotati nel registro del sistema. ipchains -A punto_fi_controllo regola -i eth0 -j DENY Lo schema mostra l'aggiunta in coda di una regola non meglio identificata, nella quale viene specificato in particolare che deve riferirsi al traffico entrante o uscente dall'interfaccia eth0. Per i pacchetti che vengono intercettati dalla regola, viene applicato l'obiettivo DENY. ipchains -A punto_di_controllo -p tcp regola -i eth0 -j DENY Lo schema mostra l'aggiunta in coda di una regola non meglio identificata, nella quale viene specificato in particolare che deve riferirsi al traffico TCP entrante o uscente dall'interfaccia eth0. Per i pacchetti che vengono intercettati dalla regola, viene applicato l'obiettivo DENY. ipchains -A punto_di_controllo -p ! tcp regola -i ! eth0 -j DENY Lo schema mostra l'aggiunta in coda di una regola non meglio identificata, nella quale viene specificato in particolare che deve riferirsi a tutto il traffico che non sia TCP, entrante o uscente da un'interfaccia qualunque purché non sia eth0. Per i pacchetti che vengono intercettati dalla regola, viene applicato l'obiettivo DENY. 180.2.2 Regole che
non fanno riferimento a un protocollo [-p all] [-s [!] origine] [-d [!] destinazione] [-i interfaccia] Come si vede dallo schema, si possono utilizzare le opzioni -s e -d per indicare rispettivamente l'origine e la destinazione di un pacchetto. In aggiunta, si potrebbe inserire l'indicazione di una certa interfaccia attraverso cui i pacchetti vengono ricevuti o trasmessi; inoltre, volendo indicare espressamente che non si fa riferimento a un protocollo particolare, si può aggiungere l'opzione -p con l'argomento all. La definizione di un gruppo di indirizzi IP può essere fatta attraverso l'indicazione di una coppia numero_ip/maschera, con una barra obliqua di separazione tra i due. La maschera può essere indicata nel modo consueto, oppure con un numero che esprime la quantità di bit iniziali da porre al valore uno. Quando si vuole fare riferimento a indirizzi imprecisati, si utilizza solitamente l'indirizzo 0.0.0.0, che può essere indicato anche con un solo zero; questo si abbina di solito alla maschera nulla: 0.0.0.0/0 o 0/0. Tuttavia, per fare riferimento a qualunque indirizzo, è sufficiente omettere la sua indicazione, in pratica basta fare a meno di indicare l'opzione -s o -d. L'indicazione di un indirizzo può essere fatta utilizzando direttamente il nome di dominio corrispondente, ma questo richiede la disponibilità di un servizio DNS; ciò può essere conveniente quando si tratta di un firewall connesso stabilmente con la rete esterna, altrimenti si creerebbero delle attese inutili e fastidiose, nel tentativo di risolvere dei nomi che non sono di competenza delle zone locali. Pertanto, in generale è preferibile indicare indirizzi in forma numerica. Il punto esclamativo che può essere inserito facoltativamente di fronte all'indicazione di un indirizzo IP, o di un gruppo di indirizzi, rappresenta la negazione logica e serve a fare riferimento al gruppo di indirizzi complementare. Rappresentazione dell'origine
e della destinazione --source [!] indirizzo[/maschera] Permette di definire l'origine dei pacchetti. L'indirizzo viene indicato generalmente in forma numerica, anche se c'è la possibilità di usare un nome di dominio. La maschera, eventuale, serve a indicare un gruppo di indirizzi. Se questo parametro viene omesso, si intende implicitamente -s 0.0.0.0/0, ovvero -s 0/0, che rappresenta tutti gli indirizzi possibili. -d [!] indirizzo[/maschera] --destination [!] indirizzo[/maschera] Permette di definire la destinazione dei pacchetti. L'indirizzo viene indicato generalmente in forma numerica, anche se c'è la possibilità di usare un nome di dominio. La maschera, eventuale, serve a indicare un gruppo di indirizzi. Se questo parametro viene omesso, si intende implicitamente -d 0.0.0.0/0, ovvero -d 0/0, che rappresenta tutti gli indirizzi possibili. Esempi Blocca tutto il traffico in ingresso proveniente dalla rete 192.168.100.*. # ipchains -A input -s 192.168.100.0/24 -d 0/0 -j DENY Esattamente come nell'esempio precedente. # ipchains -A input -s 192.168.100.0/24 -d 0/0 -i eth0 -j DENY Come nell'esempio precedente, specificando però che questo traffico in ingresso deve provenire dall'interfaccia eth0 (se provenisse da un'altra interfaccia, non verrebbe intercettato da questa regola). # ipchains -A input -d 192.168.100.0/24 -j DENY Blocca tutto il traffico in ingresso che risulta destinato alla rete 192.168.100.*. # ipchains -A input -s 0/0 -d 192.168.100.0/24 -j DENY Esattamente come nell'esempio precedente. # ipchains -A input -s 0/0 -d ! 192.168.100.0/24 -j DENY Blocca tutto il traffico in ingresso che risulta destinato a indirizzi diversi dalla rete 192.168.100.*. # ipchains -A output -d 192.168.100.0/24 -j DENY Blocca tutto il traffico in uscita che risulta destinato alla rete 192.168.100.*. Rispetto all'applicazione di questa regola nel punto di controllo di ingresso, in questo caso si impedisce anche al firewall stesso di accedere a questi indirizzi. 180.2.3 Regole per
i protocolli TCP e UDP Dovendo fare riferimento a un protocollo TCP o UDP si utilizza l'opzione -p, seguita dalla parola chiave tcp o udp. Dal momento che i protocolli TCP e UDP utilizzano le porte, l'origine e la destinazione possono includere questa informazione. Le porte possono essere indicate in modo preciso (una soltanto), oppure attraverso un intervallo. Queste porte possono essere espresse attraverso un nome, come definito nel file /etc/services, oppure per numero, cosa che di solito si preferisce per evitare ambiguità o malintesi. Gli intervalli di porte, in particolare, vengono espressi nella forma seguente: porta_iniziale:porta_finale Se si indica un intervallo, che si determina per la presenza dei due punti, se manca l'indicazione della porta iniziale si intende in modo predefinito la numero zero, se invece manca quella finale si intende la porta 65 535. Come nel caso degli indirizzi IP, l'indicazione della porta o dell'intervallo di queste può essere preceduta dal punto esclamativo in qualità di negazione logica. Opzioni per i protocolli
TCP e UDP --source [!] indirizzo[/maschera] [!] [porta|intervallo_di_porte] -d [!] indirizzo[/maschera] [!] [porta|intervallo_di_porte] --destination [!] indirizzo[/maschera] [!] [porta|intervallo_di_porte] Con i protocolli TCP e UDP, l'origine e la destinazione possono includere l'indicazione delle porte. [!] -y | [!] --syn All'interno di una regola, fa in modo di identificare solo i pacchetti del protocollo TCP che hanno il bit SYN attivato, assieme ai bit ACK e FIN azzerati. Questo serve a isolare i pacchetti che nel protocollo TCP richiedono l'inizializzazione della connessione. In pratica, si tratta di un modo alternativo per bloccare una connessione TCP in un solo verso. Se si usa il punto esclamativo di negazione si intende fare riferimento a pacchetti diversi dal tipo SYN. Esempi Impedisce l'accesso ai servizi HTTP (protocollo TCP, porta 80) della rete 192.168.*.* a tutti gli indirizzi estranei alla rete stessa. # ipchains -A input
-p tcp -s ! 192.168.0.0/16 <-' Come nell'esempio precedente, limitandosi a intervenire nei pacchetti SYN. 180.2.4 Regole per
il protocollo ICMP Per indicare una regola che faccia riferimento a un tipo particolare di pacchetto ICMP, si sfruttano le opzioni che servono a specificare l'origine o la destinazione, aggiungendo il numero o il nome del tipo ICMP. In pratica, questa informazione va a sostituire il numero di porta nel caso dei protocolli TCP e UDP. È estremamente
importante che non vengano bloccati i messaggi ICMP di tipo 3. Opzioni per il protocollo
ICMP --source [!] indirizzo[/maschera] [!] [tipo] -d [!] indirizzo[/maschera] [!] [tipo] --destination [!] indirizzo[/maschera] [!] [tipo] Come già accennato, con il protocollo ICMP l'origine e la destinazione possono includere l'indicazione del tipo di messaggio ICMP. Esempi Blocca e ignora i pacchetti ICMP che contengono un messaggio di tipo 8, cioè echo-request, proveniente da un indirizzo estraneo alla rete 192.168.*.* e destinato alla rete stessa. 180.2.5 Pacchetti
frammentati Se il firewall rappresenta
un passaggio obbligato per il traffico che lo attraversa, è molto
importante che sia abilitata la ricomposizione dei pacchetti frammentati.
Questo risolve tanti problemi e soprattutto quello del controllo dei
frammenti. Per identificare un frammento di pacchetto successivo al primo, si utilizza l'opzione -f nel modo seguente: [!] -f | [!] --fragment Il punto esclamativo permette di ottenere l'effetto contrario, cioè di fare riferimento a tutti i pacchetti che non sono frammenti. Utilizzando questa opzione non è possibile indicare delle porte TCP o UDP, né specificare il tipo di messaggio per il protocollo ICMP. Esempi Blocca e ignora i frammenti dei pacchetti ICMP provenienti da un indirizzo estraneo alla rete 192.168.*.* e destinati alla rete stessa. 180.3 Esempi /sbin/ipchains -A forward -s 224.0.0.0/3 -d 0/0 -l -j DENYQuesta regola impedisce il transito di tutti quei pacchetti che provengono da un'origine in cui l'indirizzo IP sia composto in modo da avere i primi tre bit a uno. Infatti, 22410 si traduce nel numero binario 111000002, che esclude tutta la classe D e la classe E degli indirizzi IPv4. Si osservi l'aggiunta dell'opzione -l per ottenere l'annotazione nel registro del sistema dei tentativi di attraversamento. Segue la visualizzazione della regola attraverso ipchains -L forward -n; si osservi la comparsa della lettera l nella colonna delle opzioni. target prot opt source
destination ports /sbin/ipchains -A forward -s 224.0.0.0/3 -l -j DENYQuesto esempio è esattamente identico a quello precedente, perché la destinazione predefinita è proprio quella riferita a qualunque indirizzo. /sbin/ipchains -A forward -p tcp -s 192.168.1.0/24 -d 0/0 23 -j ACCEPTConsente ai pacchetti TCP provenienti dalla rete 192.168.1.0/255.255.255.0 di attraversare il firewall per raggiungere qualunque indirizzo, ma solo alla porta 23. In pratica concede di raggiungere un servizio TELNET. Segue la visualizzazione della regola attraverso ipchains -L forward -n. target prot opt source
destination ports /sbin/ipchains -A
forward -p tcp -s 0/0 6000:6009 -d 0/0 -l -j DENY /sbin/ipchains -A
input -p tcp -s 0/0 6000:6009 -d 0/0 -l -j DENY 180.4 Contabilizzazione
del traffico Con l'opzione -v si può osservare il valore raggiunto dai vari contatori. Per esempio, disponendo di un'unica regola che cattura tutto il traffico in ingresso, # ipchains -F input # ipchains -A input il comando # ipchains -L input -v potrebbe generare un rapporto simile a quello seguente: pkts bytes target
prot opt tosa tosx ifname mark outsize L'azzeramento dei conteggi si ottiene con l'opzione di comando -Z (--zero), che interviene in tutte le regole dei punti di controllo indicati. Questa può essere utilizzata anche assieme all'opzione -L, in modo da non perdere informazioni; tuttavia, in questo caso, non è possibile indicare il nome di un punto di controllo particolare e si deve intervenire su tutte le regole esistenti. Esempi Mostra tutte le informazioni disponibili sulle regole di ingresso. Tra le altre cose mostra anche i contatori del traffico. # ipchains -Z input Azzera i conteggi riferiti alle regole di ingresso. # ipchains -L -Z -v Mostra tutte le informazioni disponibili di tutti i punti di controllo (ed eventualmente anche di altri raggruppamenti di regole), compresi i conteggi che vengono azzerati immediatamente dopo. 180.5 Raggruppamenti
di regole al di fuori dei punti di controllo standard Per comprendere il meccanismo, si supponga di avere creato la raccolta di regole (chain) denominata Prova, con una regola all'interno del punto di controllo di ingresso che vi faccia riferimento. Per cominciare, le regole contenute all'interno di Prova potrebbero essere: target prot opt source
destination ports Le regole di ingresso potrebbero essere quelle seguenti: target prot opt source
destination ports La creazione di un raggruppamento di regole si ottiene con l'opzione di comando -N (--new-chain) e la sua eliminazione con -X (--delete-chain). Per esempio, il comando # ipchains -N Prova serve a creare il raggruppamento Prova a cui si accennava in precedenza. L'inserimento di regole avviene nel modo normale; per continuare a seguire gli esempi fatti, i comandi dovrebbero essere i seguenti: # ipchains -A Prova -s 192.168.1.0/24 # ipchains -A Prova -d 192.168.1.0/24 # ipchains -A Prova -s 127.0.0.1 Così, l'inserimento della regola in ingresso che fa riferimento a questo raggruppamento, come mostrato dagli esempi in precedenza, si indica semplicemente con il comando seguente: # ipchains -A input -p tcp -j Prova L'eliminazione di un raggruppamento di regole è ammissibile solo quando questo è vuoto e quando non esistono più riferimenti da parte di altre regole nei punti di controllo normali. # ipchains -D input -p tcp -j Prova # ipchains -F Prova # ipchains -X Prova I comandi mostrati sopra servono rispettivamente a eliminare la regola di ingresso che faceva riferimento al raggruppamento Prova, a svuotare il raggruppamento e infine a eliminarlo. 180.6 Mascheramento
IP Figura 180.2. Mascheramento IP. .---------------. In linea di principio, i nodi collocati nella rete privata mascherata, sono in grado di accedere all'esterno, per mezzo del mascheramento degli indirizzi, mentre dall'esterno potrebbe mancare l'instradamento verso tali nodi. In effetti, quando la rete privata mascherata utilizza indirizzi IP esclusi dalla rete pubblica, tale instradamento (dall'esterno verso l'interno) non può esistere. L'attivazione nel kernel delle funzionalità di mascheramento richiede prima di tutto che siano state attivate quelle di firewall, assieme a quelle di ricomposizione dei pacchetti frammentati (nello stesso modo già visto nella sezioni dedicate al filtro di pacchetto IP), dove in particolare sia stata poi aggiunta anche quella di mascheramento (sezione 29.2.9). 180.6.1 ipchains per
l'amministrazione del mascheramento ipchains -A|-I forward -s indirizzi_da_mascherare -d 0/0 -j MASQ Ricapitolando quindi, il mascheramento si ottiene definendo una regola nel punto di controllo di inoltro, in cui sia stato attivato il mascheramento dell'origine nei confronti della destinazione. 180.6.2 Mascheramento
in pratica In ogni caso, la situazione comune per il mascheramento IP è quella dello schema che appare in figura 180.3. L'interfaccia di rete del nodo di mascheramento connessa alla rete privata (eth0) deve avere un indirizzo IP che appartenga a tale spazio; inoltre deve essere stato previsto un instradamento corretto. L'altra interfaccia, quella rivolta verso la rete pubblica (ppp0), avrà un indirizzo IP pubblico, mentre l'instradamento dovrà essere quello predefinito. Figura 180.3. Esempio di mascheramento di una rete privata. .---------------.
192.168.1.0 In questa situazione, la regola che consente alla rete privata di raggiungere l'esterno può essere definita con uno dei due comandi seguenti: il primo è un esempio approssimativo, mentre il secondo fa un riferimento esplicito agli indirizzi esterni in modo che non coincidano con quelli interni. /sbin/ipchains -A forward -s 192.168.1.0/24 -d 0/0 -j MASQ/sbin/ipchains -A forward -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j MASQVisualizzando la regola attraverso ipchains -L forward -n, si ottiene una tra le due informazioni seguenti (a seconda del comando prescelto). Chain forward (policy
ACCEPT): #!/bin/sh Il kernel Linux fornisce questa funzionalità come estensione di quelle di filtro dei pacchetti IP; ma per farlo deve essere aggiunta esplicitamente la gestione di questa caratteristica (sezione 29.2.9). Naturalmente, per attivare un sistema di proxy trasparente occorre il proxy. In effetti, il vantaggio di usare questo sistema al posto del mascheramento IP sta proprio nell'inserzione di un proxy, possibilmente di una cache proxy, per ridurre il traffico nella connessione con la rete pubblica. In questo modo, il software utilizzato nei nodi della rete privata non ha bisogno di essere configurato per inviare tutte le sue richieste al proxy, ma quando i pacchetti tentano di raggiungere l'esterno, allora vengono presi in considerazione da questo. 180.7.1 ipchains per
il proxy trasparente ipchains -A|-I input -p tcp -s origine -d destinazione porte -j REDIRECT porta_locale Quello che si ottiene è che il traffico proveniente dagli indirizzi previsti, diretto verso le destinazioni indicate, complete dell'informazione sulle porte, viene ridiretto alla porta specificata dopo l'obiettivo REDIRECT nel nodo locale. 180.7.2 Proxy trasparente
in pratica Figura 180.4. Il proxy trasparente deve essere attraversato dal traffico che poi lì può essere ridiretto verso il proxy locale. .---------------. Lo scopo del proxy trasparente può essere semplicemente quello di «obbligare» a utilizzare una cache proxy, senza importunare gli utenti pretendendo da loro che configurino gli applicativi per questo, oppure può essere il modo attraverso cui si definisce un firewall proxy, impedendo l'attraversamento del proxy per mezzo del filtro di pacchetto IP. A titolo di esempio viene mostrato in che modo si potrebbe ridirigere il traffico di una rete locale con indirizzi 192.168.1.0/24, quando questo è rivolto alla porta 80, cioè a un servizio HTTP, verso la porta locale 8 080 (tipica di una cache proxy). /sbin/ipchains -A
input -p tcp \ Chain input (policy
ACCEPT): /sbin/ipchains -A
forward -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j MASQ180.8 Riferimenti
<http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html> Terry Dawson, Linux NET-3-HOWTO, Linux Networking <http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html> Mark Grennan, Firewalling and Proxy Server HOWTO <http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html> Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org |
Copyright (c) 2000-2003 by Ing. Eduardo Palena - Napolifirewall.com