|
Il firewalling risulta essere scienza complessa e oscura
per la maggior
parte degli utenti.
Allo stesso tempo la sicurezza dei sistemi informatici (che
siano singoli pc o reti molto complesse) e le tecniche per
implementarla non sono più da molto uno snobistico
virtuosismo tecnico bensì una necessità
impellente.
Tra virus, dialer, rootkit, exploit, software di forza bruta
ed altre insidie, dietro le quali ci sta spesso un "simpatico"
ragazzetto che il fato pare abbia designato come tuo personale
Attila informatico, anche l'utente medio che accede a internet
dal proprio pc di casa è sottoposto a un pericolo
in costante crescita ed è costretto quindi a porvi
rimedio.
In questo senso la realizzazione di un firewall casalingo
(o per un
ufficio) in una piccola rete che accede a internet attraverso
un modem
analogico condiviso è relativamente semplice.
Lo scopo consiste nel proteggere i pc all'interno e nell'
utilizzare la
funzione NAT con indirizzo ip pubblico assegnato dinamicamente
dal
provider.
Di seguito viene descritto uno script di esempio che può
essere
localizzato nella directory /etc/init.d con un collegamento
simbolico in
/etc/rc.d/rc5.d (digitate ad es. ln -s /etc/init.d/firewall_casa
/etc/rc.d/rc5.d/S30firewall_casa) in modo che tale script
venga lanciato
automaticamente al boot del sistema (se questo parte con
il runlevel 5, cioè con interfaccia grafica).
# INIZIO SCRIPT #
# puliamo tutto prima di applicare le nuove regole
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
# impostiamo la policy per i pacchetti in ingresso
# bloccando il traffico
/sbin/iptables -P INPUT DROP
# impostiamo la policy per i pacchetti in transito
# tra le interfacce bloccando il traffico
/sbin/iptables -P FORWARD DROP
# impostiamo la policy per i pacchetti in uscita
# abilitando il traffico
/sbin/iptables -P OUTPUT ACCEPT
# poi facciamo in modo di accettare i pacchetti in entrata
# che appartengono ad una connessione già esistente
# o che sono correlati a connessioni preesistenti
/sbin/iptables -A INPUT -m state --state ESTABLISHED, RELATED
-j ACCEPT
# abilitiamo il transito di pacchetti provenienti
# dalla rete interna (ad es. 192.168.1.*)
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
# abilitiamo il transito di pacchetti che appartengono
# ad una connessione già esistente o che siano correlati
# a connessioni preesistenti
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,
RELATED -j
ACCEPT
# abilitiamo i pacchetti icmp (il ping) per l'interfaccia
# di loopback
/sbin/iptables -A INPUT -i lo -p icmp -j ACCEPT
# abilitiamo i pacchetti icmp per la scheda di rete
/sbin/iptables -A INPUT -i eth0 -p icmp -j ACCEPT
# ora abilitiamo i pc della rete interna alla navigazione
# in internet utilizzando la funzione NAT per un modem
# condiviso con indirizzo ip dinamico assegnato dal
# provider
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o
ppp0 -j
MASQUERADE
# e infine abilitiamo l'attraversamento dei pacchetti
# tra un'interfaccia e l'altra
echo 1 > /proc/sys/net/ipv4/ip_forward
# FINE SCRIPT #
Per quanto riguarda i client che accedono a internet attraverso
il
firewall, basterà indicare come gateway l'indirizzo
ip interno statico del
pc dove funziona il firewall.
P.S.
Lo script è stato testato su Red Hat 8.0 con il kernel
2.4.18, modem
analogico u.s.robotics e 2 client con windows 2000.
|