Il firewall di Linux: IPTables 19 Settembre 2005 [email protected] IPTables • • • • Un firewall basato su IPTables consiste di tre diversi “oggetti” fondamentali. Regole Catene Tabelle IPTables • REGOLE Sono gli oggetti di piu’ basso livello. Definiscono come devono essere manipolati i pacchetti. E’ composta da piu’ parti: 1. La tabella a cui deve essere aggiunta. La default e’ filter. 2. La catena a cui deve essere aggiunta. Ad esempio puo’ essere input, output o forward 3. Le istruzioni di filtraggio (o manipolazione) 4. Il target della regola che definisce cosa deva fare il pacchetto che corrisponde alla regola. Ad esempio puo’ essere accept, drop o log. IPTables • CATENE Le regole viste in precedenza sono organizzate in catene. Quelle che utilizzeremo per realizzare un firewall sono sempre disponibili e sono: 1. 2. Input Output IPTables • TABELLE Le regole viste in precedenza sono organizzate in catene. Quelle che utilizzeremo per realizzare un firewall sono sempre disponibili e sono: 1. 2. 3. Filter. Utilizzata per il filtraggio dei pacchetti (firewall) Nat Mangle IPTables • Realizzazione di un firewall Per avviare il servizio: /etc/init.d/iptables start Lista regole: iptables -L Per svuotare una tabella (flush): iptables -F • IPTables Realizzazione di un firewall Per aggiungere una regola alla tabella filter: iptables -t filter Si deve scegliere poi la catena di input o output: iptables -t filter –A INPUT Si deve scegliere poi quale proprieta’ del pacchetto controllare: iptables -t filter –A INPUT --source 192.168.0.1 Infine si decide l’azione da intraprendere per quel pacchetto (target) iptables -t filter –A INPUT --source 192.168.0.1 –j drop • IPTables Realizzazione di un firewall – Controllo del protocollo iptables -A INPUT --protocol tcp -j ACCEPT La lista dei protocolli si trova in /etc/protocols • IPTables Realizzazione di un firewall – Controllo del protocollo TCP – Opzioni specifiche, ad es. la porta iptables -A INPUT --protocol tcp --source-port 80 -j LOG iptables -A INPUT --protocol tcp --source-port 20:21 -j ACCEPT • IPTables Realizzazione di un firewall – Controllo del protocollo TCP – Opzioni specifiche, ad es. i flags iptables -A INPUT --protocol tcp --tcp-flags ! SYN,ACK,FIN SYN,ACK -j LOG • IPTables Realizzazione di un firewall – Controllo del protocollo ICMP iptables -A INPUT --protocol icmp --icmp-type echo-request -j LOG Questo esempio tiene traccia di tutti i pacchetti di risposta al ping • IPTables Realizzazione di un firewall – Controllo stateful dei pacchetti iptables -A INPUT --match state --state ESTABLISHED -j ACCEPT Questo esempio fa si che il firewall lasci passare tutti i pacchetti relativi a connessioni gia’ stabilite (access-list 103 permit tcp any 192.168.8.0 0.0.7.255 established)