Avanti Indietro Indice

6. Impostazione del filtraggio IP (IPFWADM)

Per iniziare, si dovrebbe aver abilitato l'IP Forwarding nel proprio kernel e il proprio sistema dovrebbe essere avviato ed eseguire il forwarding di qualsiasi cosa gli venga inviata. Le proprie tabelle di instradamento dovrebbero essere a posto e si dovrebbe essere in grado di accedere a qualsiasi cosa, sia dall'interno verso l'esterno, che dall'esterno verso l'interno.

Ma dal momento che sta costruendo un firewall, si deve cominciare limitando quello a cui tutti hanno accesso.

Nel mio sistema ho creato un paio di script per impostare la politica di forwarding e di accounting. Questi script vengono richiamati dagli script /etc/rc.d, pertanto il mio sistema viene configurato al momento dell'avvio.

Di default il sistema di IP Forwarding nel kernel Linux inoltra tutto. Per questo motivo, il proprio script firewall dovrebbe iniziare con il negare l'accesso a tutto e reimpostare tutte le regole ipfw che c'erano l'ultima volta che è stato eseguito. Questo script permette di ottenere l'effetto desiderato.

  #
  # Imposta IP packet Accounting e Forwarding
  #
  #   Forwarding
  #
  # Di default NEGA tutti i servizi
  ipfwadm -F -p deny
  # Scarica tutti i comandi
  ipfwadm -F -f
  ipfwadm -I -f   
  ipfwadm -O -f

Ora abbiamo il firewall finale. Niente può attraversarlo. Senza dubbio esistono dei servizi verso i quali è necessario l'inoltro (forward), pertanto seguono alcuni esempi che potrebbero essere utili.

  # Inoltro delle email al proprio server
  ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25

  # Inoltro delle connessioni email verso server email esterni
  ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535

  # Inoltro delle connessioni Web al proprio Web Server
  /sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11 80

  # Inoltro delle connessioni Web a un Web Server esterno
  /sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0 1024:65535

  # Inoltro del traffico DNS
  /sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24

È probabile che siate anche interessati all'avere un resoconto del traffico che passa attraverso il proprio firewall. Questo script conta ogni pacchetto. Si potrebbe aggiungere una riga o due per contare solo i pacchetti che vanno verso un singolo sistema.

  # Scarica tutte le regole di accounting correnti
  ipfwadm -A -f
  # Accounting
  /sbin/ipfwadm -A -f
  /sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0
  /sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24
  /sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0
  /sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24

Se tutto quello che si voleva era un firewall filtrante, ci si può fermare qui.


Avanti Indietro Indice