v

Salvare le impostazioni del firewall iptables in Linux


Netfilter è un modulo del kernel Linux che permette di gestire i pacchetti in transito attraverso il sistema, e può essere dunque utilizzato sia per funzioni di NAT che come firewall attraverso il comando iptables. In questo piccolo howto si vedrà in che modo è possibile salvare una configurazione di iptables, dopo che sono state definite nuove regole.

Innanzitutto è importante ricordare che tutte le modifiche apportate con iptables sono immediate, ossia dopo che è stato inserito un certo comando, quella regola risulta subito attiva. Dunque, bisogna prestare la massima attenzione durante la configurazione del firewall, soprattutto quando si agisce su un sistema da remoto, poiché una regola errata al momento sbagliato chiude subito fuori da tutto! Buona norma prima di inserire le regole con la shell è quella di scrivere tutte le regole iptables in un file testuale, con un qualsiasi editor di testo, in modo da poter osservare e controllare il tutto prima di digitare i comandi sulla shell. E’ importante ricordare anche che lo stato del firewall rimane tale solo fino al riavvio, momento in cui le regole inserite a sistema avviato sono “azzerate” e vengono invece caricate le impostazioni salvate. Nel caso peggiore in cui si viene chiusi fuori dal firewall mentre si stanno creando le regole (e prima di averle salvate!), è necessario “solamente” riavviarlo, operazione semplice se agiamo in locale ma più complessa se siamo da remoto :-(.

I comandi che permettono di osservare e salvare la configurazione di iptables sono:

  • iptables-save, che stampa sullo standard output la configurazione corrente del firewall;
  • iptables-restore, con cui si può ripristinare una configurazione precedentemente salvata tramite iptables-save.

In particolare, come ho già accennato, al riavvio vengono caricate le impostazioni salvate in memoria, e, pertanto, è necessario specificare quale configurazione caricare all’avvio del sistema. I metodi utilizzabili sono due:

  • uno script shell che esegue in successione tutti i comandi iptables necessari (del tipo iptables -I INPUT DROP x…, iptables -I INPUT DROP y…). In questo caso le regole vengono aggiunte a caldo e il firewall viene configurato dinamicamente ad ogni avvio. Questa tecnica ha il vantaggio di permettere commenti fra le regole e poter usare variabili, cicli e impostare regole sulla base di parametri variabili. Spesso questo script lo si richiama dal file /etc/rc.d/rc.local, anche se sarebbe preferibile applicarlo appena attivate le interfacce di rete;
  • uno script inserito tra i servizi all’interno di init.d, oppure all’interno di /etc/rc.d/rc.local, come nel caso precedente. Questo script richiamerà iptables-restore in modo da ripristinare una configurazione precedentemente salvata. Nello specifico il comando da inserire è cat /etc/firewall | iptables-restore, supponendo che firewall sia un file contenente la configurazione salvata in precedenza. Questa è la soluzione usata da molte distribuzioni, dove il file di configurazione del firewall, riprendendo l’esempio, non è altro che l’output di un comando come: iptables-save > /etc/file_config. Ha il vantaggio di applicare lunghi elenchi di regole in modo molto più rapido. Ecco un esempio di file /etc/rc.d/rc.local
    #!/bin/sh
    #
    # This script will be executed *after* all the other init scripts.
    # You can put your own initialization stuff in here if you don't
    # want to do the full Sys V style init stuff.
    touch /var/lock/subsys/local
    cat /etc/firewall | iptables-restore

Alcune risorse utili:

Linux firewalling: Introduzione a Iptables

iptables-restore

roghan

Annunci

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...