Real Drums Destiny Ball Interest Calculator Torch 4 You The day of Safe Sex


 Powered by Max Banner Ads 

iptables e netfilter – e Linux diventa un firewall!

L’articolo che presento quest’oggi vuole introdurre quello che rappresenta il software per eccellenza per la gestione del firewall del Sistema Operativo Linux.

Iptables è diventato un elemento essenziale di tutte le distribuzioni di Linux, da quelle orientate ai server, a quelle che apparentemente possono avere meno bisogno di un firewall a protezione del sistema, ovvero i desktop o alcuni sistemi embedded.

Iniziamo ad analizzare quelle che sono le sue caratteristiche essenziali, con questa mini guida che illustra la filosofia che sta alla base del funzionamento del framework Netfilter. Successivamente, ulteriori articoli illustreranno l’uso di base e avanzato del comando iptables

1 Star2 Stars3 Stars4 Stars5 Stars (5 voti, punteggio medio: 5,00 su 5)
Loading ... Loading ...

Technorati Tags: , , , , , , , , , , , , , , , , , , ,

Iniziamo subito precisando che Iptables e NetFilter, in realtà, non sono due prodotti software distinti. Al contrario, si tratta di due componenti dello stesso sistema software.

Infatti, NetFilter rappresenta il framework che si occupa della gestione della sicurezza di rete nel cosiddetto “kernel-space”, mentre iptables consiste nel programma che realizza l’interfaccia utente del sistema di firewalling. Infatti, iptables è il comando di Linux che consente all’utente di definire le regole da utilizzare per la gestione dei pacchetti di rete, da parte del firewall.

In pratica, per implementare un firewall su un sistema Linux, basta imparare ad utilizzare iptables e la sua sintassi. Questo tutorial intende proprio dare le indicazioni di base per consentirvi di iniziare a realizzare il vostro firewall.

Iniziamo subito con la descrizione del funzionamento di iptables.

Iptables si basa su 3 tabelle, ognuna delle quali, a sua volta, comprende diverse chains, ovvero le cosiddette “catene” di regole (rules del firewall): 

  1. filter: la tabella che riguarda le regole per il filtraggio dei pacchetti;

  2. nat: la tabella che riguarda le regole per la gestione della cosiddetta Traduzione Automatica degli indirizzi di rete (NAT sorgente o destinazione – in seguito saranno meglio spiegati);

  3. mangle: la tabella contenente le regole che consentono la modifica dei particolari flags contenuti nelle intestazioni dei pacchetti di rete.

Per ognuna di queste tabelle, abbiamo a disposizione delle catene principali, secondo il seguente schema: 

  • filter:

INPUT –> per i pacchetti in ingresso sulle interfacce di rete

OUTPUT –> per i pacchetti in uscita dalle interfacce di rete

FORWARD –> per i pacchetti che attraversano l’host sul quale è implementato il firewall (che sono entrati da una interfaccia di rete e devono essere ruotati su un’altra interfaccia, tipicamente su host destinati a svolgere funzioni di routing)

  •  nat:

PREROUTING –> per i pacchetti che devono essere ruotati, prima che il sistema operativo prenda le decisioni relative al routing (tipicamente Destination NAT)

POSTROUTING –> per i pacchetti che devono essere ruotati, dopo che il sistema operativo ha preso le decisioni relative al routing (tipicamente Source NAT o mascheramento IP)

  •  mangle:

INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING –> prevede tutte le catene principali, in quanto l’alterazione dell’header di un pacchetto può essere effettuata in input, output o in tutti gli altri casi, a seconda delle esigenze. Tuttavia, bisogna evidenziare che questa tabella è poco utilizzata per gli scopi convenzionali, mentre può risultare utile se risulta necessaria una configurazione più particolare degli aspetti di rete.

Quando si utilizza il comando iptables, si fa riferimento, per ogni regola, a queste tre tabelle e alle chains corrispondenti. Ecco il motivo di questa descrizione.

I pacchetti di rete che arrivano su un’interfaccia di rete dove è utilizzato il framework netfilter/iptables, seguono un determinato percorso, attraverso queste catene. E questo percorso è molto importante, dal momento che le regole da definire devono rispettarlo, per consentire al firewall di funzionare correttamente.

In particolare, i pacchetti in ingresso seguono il percorso:

mangle prerouting –> nat prerouting –> filter input

Quelli in uscita, invece, seguono quest’altro:

mangle output –> nat output –> filter output

I pacchetti che attraversano l’host, destinati ad altri host remoti (forwarding), seguono il seguente percorso, attraverso le chains:

mangle prerouting –> nat prerouting –> filter forward

Ogni pacchetto che viene passato al setaccio da iptables, viene confrontato con le regole di iptables relative alle catene che attraversa. Se coincide con una di queste regole, allora segue ciò che è definito dalla regola corrispondente, altrimenti segue ciò che è definito dalla policy della catena corrispondente.

Infatti, per ogni catena è definita una Policy, ovvero una regola generale da rispettare nel caso in cui il pacchetto non trova riscontro nelle regole indicate.

Nel prossimo articolo, che arriverà presto, vedremo come utilizzare il comando iptables per gestire Netfilter e le diverse catene presentate qui, allo scopo di realizzare il nostro firewall… pazientate, ragazzi!

Se poi ci sono suggerimenti, sappiate che sono sempre bene accetti!

Ciao!

Posted on ottobre 22, 2007 by Roberto Travagliante (HoneyFT)

Filed under Internet, Linux, Sicurezza | | No Comments »



Leave a Reply