Se si sta utilizzando un kernel 2.1.102 o più recente passare alla sezione riguardante IPCHAINS.
Nei vecchi kernel l'IP Forwarding è abilitato per default. Per questo motivo la propria rete dovrebbe cominciare vietando l'accesso a chiunque e cancellando tutte le regole impostate l'ultima volta. Questo frammento di script dovrebbe essere collocato nello script di startup della propria rete (/etc/rc.d/init.d/network).
# # Imposta IP packet Accounting e Forwarding # # Forwarding # # Di default NEGA tutti i servizi ipfwadm -F -p deny # Cancella tutti i comandi ipfwadm -F -f ipfwadm -I -f ipfwadm -O -f
Ora abbiamo il firewall definitivo. Nulla può passare.
Si crei il file /etc/rc.d/rc.firewall. Questo script dovrebbe consentire traffico email, Web e DNS. ;-)
#! /bin/sh # # rc.firewall # # Libreria funzioni. . /etc/rc.d/init.d/functions # avvia configurazione. . /etc/sysconfig/network # Controlliamo che la rete sia presente if [ ${NETWORKING} = "no" ] then exit 0 fi case "$1" in start) echo -n "Starting Firewall Services: " # Inoltro delle email al proprio server /sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25 # Consenti connessione email verso server email esterni /sbin/ipfwadm -F -a accept -b -P tcp -S 192.1.2.10 25 -D 0.0.0.0/0 1024:65535 # Consenti accesso web al proprio web server /sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.11 80 # Consenti connessioni Web verso server Web esterni /sbin/ipfwadm -F -a accept -b -P tcp -S 192.1.2.* 80 -D 0.0.0.0/0 1024:65535 # Consenti traffico DNS /sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 192.1.2.0/24 ;; stop) echo -n "Stooping Firewall Services: " ipfwadm -F -p deny ;; status) echo -n "Now do you show firewall stats?" ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: firewall {start|stop|status|restart|reload}" exit 1 esac
NOTA: in questo esempio l'email server è presente all'indirizzo 192.1.2.10 dove dovrebbe essere in grado di inviare e riceve sulla porta 25.
Il server web è presente all'indirizzo 192.1.2.11. Consentiamo a chiunque appartenente alla LAN di accedere ai server web e DNS esterni.
Ciò non è perfettamente sicuro, in quanto la porta 80 non dovrebbe essere usata come porta web, un hacker acuto potrebbe utilizzarla per creare una rete privata virtuale (VPN) attraverso il firewall. Per raggirare questa situazione è necessario impostare un proxy web, e consentire solo il proxy attraverso il firewall. Gli utenti della rete LAN devono passare attraverso il proxy per accedere ai server web esterni.
Si potrebbe essere interessati a tenere conto del traffico che passa attraverso il firewall. Il seguente script conta tutti i pacchetti. E' possibile aggiungere una o due linee per contare i pacchetti diretti solo verso un determinato sistema.
# Cancella le regole correnti di "conteggio" ipfwadm -A -f # Conteggio /sbin/ipfwadm -A -f /sbin/ipfwadm -A out -i -S 192.1.2.0/24 -D 0.0.0.0/0 /sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 192.1.2.0/24 /sbin/ipfwadm -A in -i -S 192.1.2.0/24 -D 0.0.0.0/0 /sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 192.1.2.0/24
Se tutto ciò di cui si ha bisogno è un firewall filtrante allora ci si può fermare qui. Si effettuino dei test e se la si goda.