Ciao a tutti. Si e` parlato ultimamente di firewall personali per Linux, ovvero di regole che rendano un po' piu' sicura la nostra macchina casalinga. Linux, dal 2.4 in poi. ha un ottimo firewall integrato nel kernel, il "packet filtering" la cui interfaccia piu' naturale (seppure ne esistano altre, magari grafiche) e' IPTABLES.
Secondo il mio modesto parere IPTABLES consente un controllo davvero accurato delle regole di filtraggio, con il vantaggio che queste possono essere contenute in un solo file.
Lo script che segue dovrebbe essere eseguito al boot e prevede questo scenario: una macchina collegata alla rete via ADSL (ppp0) ed una eventuale altra macchina (o LAN) collegata su eth0. La macchina principale ha un web server visibile all'esterno, puo' essere raggiunta via ssh e risponde al ping.
Commentate o decommentate le righe che ritenete opporture.
codice:#! /bin/bash ################################ # REGOLE GENERALI INDISPENSABILI ################################ # Resetto tutte le regole iptables -F iptables -F -t nat # Nego il traffico in ingress iptables -P INPUT DROP # Nego il traffico tra le schede di rete iptables -P FORWARD DROP # Permetto l'uscita di tutto il traffico dal pc iptables -P OUTPUT ACCEPT # Permetto ai pacchetti usciti di rientrare iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permetto LOOPBACK iptables -A INPUT -i lo -j ACCEPT ################################ # SERVIZI OFFERTI DALLA MACCHINA ################################ # apro ssh iptables -A INPUT -p tcp --dport 22 -j ACCEPT # permetto il ping iptables -A INPUT -p icmp -j ACCEPT # apro web iptables -A INPUT -p tcp --dport 80 -j ACCEPT ##################### # RETE LOCALE ##################### # Masquerading, questo permette alla rete di uscire dalla mia PPP0 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward # Permetto il traffico forward dalla lan ad internet iptables -A FORWARD -s 192.168.0.1/24 -j ACCEPT iptables -A FORWARD -d 192.168.0.1/24 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permetto input su eth0 iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # MOSTRO IL RISULTATO iptables -L iptables --table nat -L