erlug
[Top] [All Lists]

Re: [Erlug] IPTABLES

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] IPTABLES
From: Roberto Barbieri <roberto@xxxxxxxxx>
Date: Sat, 4 May 2002 19:08:46 +0200
Il 12:15, venerdì 3 maggio 2002, hai scritto:
> On Fri, 2002-05-03 at 11:27, Roberto Barbieri wrote:
> > Scusa e iptables al riavvio come fa a ricordarsi le regole?
>
> Un attimo scusa...non si _ricorda_ le regole, le riscrive
> Cio che puoi fare e "dumpare" le regole in un file e ridarle in pasto
> a iptables.
> Quello che NON si puo fare è proprio il "ricordarsi" delle regole,
> che come diveva giustamente lo Zen sono scritte in kernel space.
>
> > Prova a guardare in /etc/sysconfig/iptables
>
> E appunto quanto sopra, il risultato di iptables-save.
> Di fatto non è un file di configurazione, ma una serie di
> argomenti/opzioni che vengono passate a iptables.
>
> Scusa se sembro puntiglioso, ma non vorrei che si generasse confusione
>
> Ciao
>
> Andy
>


> Un attimo scusa...non si _ricorda_ le regole, le riscrive

o meglio le rilegge, come fanno del resto tutti i programmi
quando vengono avviati, o leggono le impostazioni
dallo stdin o da un file di configurazione (o da entrambi)



> Di fatto non è un file di configurazione, ma una serie di
> argomenti/opzioni che vengono passate a iptables.
[...]
> Scusa se sembro puntiglioso, ma non vorrei che si generasse confusione

Scusami anche tu ma non sono d'accordo
Innanzi tutto il post originale chiedeva dove iptables
salva le regole, e credo di aver risposto correttamente

Iptables si comporta come ogni altro programma, infatti
ogni programma setta le opzioni in memoria fino a quando
non vengono salvate in un file (e diventano quindi le opzioni
ed i parametri che vengo letti dal programma quando
viene avviato),  il fatto che iptables le salvi nello spazio di
memoria del kernel invece della memoria normale dipende
solo dal fatto che iptables e' una funzione (o meglio un'insieme
di funzioni) del kernel.

Ora visto che modificando a mano il file /etc/sysconfig/iptables
e riavviando iptables queste vengo lette da iptables-restore
(vedi /etc/rc.d/init.d/iptables) e in seguito applicate ad iptables, 
non e' errato dire che /etc/sysconfig/iptables e' a tutti gli effetti
un file di configurazione; che poi sia prassi comune utilizzare
uno script della shell per settare/modificare le regole di iptables
questo e' un'altro discorso.

Per farti un esempio, quando usi "links" e modifichi qualche opzione
lui setta le modifiche in memoria (come fa iptables quando gli dai
una nuova regola da aggiungere alle altre) se esci e apri dinuovo
il programma le impostazioni non sono state mantenute (proprio
quello che succede se riavvii iptables senza salvare, le ultime
regole vengo perse). Se invece modifichi delle opzioni e le salvi
lui le scrive in un file che viene riletto al nuovo avvio del programma
(cosa che iptables fa tramite iptables-restore). L'unica motivo per cui
il comportamento di iptables SEMBRA differente e' che non e' un
programma interattivo.

Altra concetto che mi sembra errato e' dire che iptables-save
fa un "dump" delle regole di iptables.
Per "dump" si intende leggere qualcosa (a basso livello)cosi com'e'
(in genere un'insieme di allocazioni di memoria o settori del disco) e 
scriverlo senza lacuna modifica in un file, a basso livello su una
periferica o in stdout.
Ora, aprendo un file che contiene un dump (per sempio uno dei soliti file 
"core") la cosa che salta subito all'occhio e' che il file non e' in formato 
ascii (come /etc/sysconfig/iptables) ma binario e leggibile ed interpretabile 
solo con appositi debugger (tipo gdb).

Altro esempio e' il comando "dump" che non fa il backup dei file (come ad
esempio tar), ma di quello che c'e' scritto a basso livello nei settori del 
disco (byte per byte); infatti facendo un dump del disco, in fase di 
ripristino vengono ricreati non solo i file, ma anche l'mbr la tabella delle
partizioni e le singole partizioni cosi' com'erano sul disco originale.

Quindi secondo me sarebbe piu corretto dire che iptables-save
legge dallo spazio di memoria del kernel le regole di iptables
e le scrive in formato comprensibile e riutilizzabile nel file 
/etc/sysconfig/iptables


E' anche vero che la pagina man di iptables-save  puo' indurre
in errore, ma se si legge bene:

DESCRIPTION
iptables-save  is used to dump the contents of an IP Table
in easily parseable format to STDOUT. Use  I/O-redirection
provided by your shell to write to a file.

Dice infatti che iptables-save fa un dump delle regole e lo rende
leggibile per poi passarlo a stdout. Cio' significa che il risultato
finale (che e' anche il contenuto di /etc/sysconfig/iptables)
non e' il dump delle regole, ma rielaborazione dello stesso fatta
dal programma iptables-save.

Questa e' la mia opinione :)
Critiche, correzzioni approfondimenti sono i benvenuti :)

Roberto Barbieri
r.barbieri@xxxxxxxxxxx
roberto@xxxxxxxxx



>
> _______________________________________________
> Erlug mailing list
> Erlug@xxxxxxxxxxxxxx
> http://mail.erlug.linux.it/cgi-bin/mailman/listinfo/erlug
> -----------------------------------------------------------
> ErLUG webzine: http://erlug.linux.it
> Manuali FDL:
> LinuxFacile - http://www.linuxfacile.org
> Linux Da Zero - http://erlug.linux.it/linuxdazero/
> -----------------------------------------------------------


<Prev in Thread] Current Thread [Next in Thread>