Avanti Indietro Indice

6. Come i pacchetti attraversano i filtri

Il kernel ha tre liste di regole presenti nella tabella `filter'; queste liste sono chiamate catene del firewall (firewall chains) o giusto catene (chains). I loro nomi sono: INPUT, OUTPUT e FORWARD.

Tutto ciò ora è molto differente rispetto al funzionamento dei kernel 2.0 e 2.2!

Per i fan dell'arte ASCII, le catene adesso sono organizzate così:

                          _____
Ingresso                 /     \      Uscita
       -->[Decisioni]-->|FORWARD|------>
          [di routing]   \_____/        ^
               |                        |
               v                       ____
              ___                     /    \
             /   \                   |OUTPUT|
            |INPUT|                   \____/
             \___/                      ^
               |                        |
                ----> Processi locali --

I tre cerchi rappresentano le tre catene citate sopra. Quando un pacchetto arriva ad un cerchio del diagramma, questa catena lo esamina per deciderne il destino. Se la catena dice di scartare (DROP) il pacchetto, questo sarà ucciso lì, se la catena dice di accettarlo (ACCEPT), il pacchetto allora potrà continuare a percorrere il diagramma.

Una catena è una lista di regole. Ogni regola dice `se l'intestazione del pacchetto appare in questo modo, allora ecco cosa bisogna fare'. Se il pacchetto non soddisfa una certa regola, allora sarà consultata la regola successiva. Se non ci sono più regole da consultare allora il kernel, per decidere cosa fare, consulta la tattica (policy) della catena. In un sistema per la sicurezza, questa tattica in genere indica al kernel di scartare (DROP) il pacchetto.

  1. Quando un pacchetto arriva (o meglio attraversa la scheda ethernet) il kernel prima di tutto osserva qual è la destinazione del pacchetto, questa fase è detta `routing' (instradamento).
  2. Se è destinato a questa box allora il pacchetto nel diagramma, prosegue in basso, verso la catena INPUT. Se la catena lo lascia passare i processi in attesa di questo pacchetto lo riceveranno.
  3. Altrimenti, se non è stato attivato il forwarding nel kernel, o se il kernel non conosce come farlo proseguire, il pacchetto sarà scartato. Se invece il forwarding è attivato, e il pacchetto è destinato ad un'altra interfaccia di rete (se ne hai un'altra), allora il pacchetto nel nostro diagramma prosegue a destra verso la catena FORWARD. Se sarà accettato allora sarà inviato nella rete.
  4. Infine anche un programma sulla box può inviare dei pacchetti nella rete. Questi pacchetti passano immediatamente attraverso la catena OUTPUT, e se questa li accetta allora proseguono verso l'interfaccia a cui sono destinati.


Avanti Indietro Indice