Corso avanzato di Reti e sicurezza informatica http://www.glugto.org/ GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 1
DISCLAIMER L'insegnante e l'intera associazione GlugTo non si assumono alcuna responsabilità sull'utilizzo lecito o meno delle informazioni e dei concetti che verranno spiegati nelle seguenti lezioni GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 2
Firewalling La presenza di un filtro per le connessioni è essenziale in una rete Diversi tipi Diverse caratteristiche Diversi pro e contro GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 3
Scenario 1 Web Fw GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 4
Scenario 2 Pc Fw Web Pc Fw Pc Fw GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 5
Quali tipi? Firewall software Firewall hardware Iptables GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 6
In dettaglio... Firewall Firewall sw (personal fw) Firewall hw IDS Iptables GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 7
Firewall software E' un programma installato sulla pdl da proteggere, filtra i dati da e verso la pdl e nulla più Può essere vittima di attacco con estrema facilità GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 8
Firewall hardware Dispositivo fisico che protegge l'intera rete in quanto è collocato a monte Elevato costo Difficile upgrade e scalabilità GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 9
IDS Piattaforma all-in-one Costo molto elevato Difficile upgrade Scarsa modularità GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 10
Iptables Protegge l'intera rete Economico Non necessita di hw dedicato Scalabile Facile upgrade GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 11
E ancora... Packet filtering filtra semplicemente in base alle regole configurate, ogni pacchetto viene esaminato singolarmente Steteful packet inspection i pacchetti vengono esaminati come uno stream di dati, permette di capire che flag ha attivi, chi lo ha generato,... Content filtering abilita il filtraggio dei contenuti GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 12
Iptables Non è un applicativo ma un comando che inserisce regole nel kernel E' il kernel che filtra i pacchetti Netfilter Agisce a livello 3 della pila ISO/OSI GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 13
Come installarlo... Programmare cosa filtrare Ricompilare kernel Configurarlo GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 14
Cosa filtrare? Connessioni da esterno verso interno + Limitare connessioni da interno a esterno = Abilitare solo servizi necessari GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 15
Well known ports (0-1023) 80 www 21 ftp 20 ftpdata 22 ssh 53 DNS 443 https 25 SMTP 110 POP3 23 telnet 143 IMAP 3306 MySQL 1094 OpenVPN... GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 16
Ricompilazione... Necessaria a disabilitare tutto il superfluo (audio, accelerazione video, schede di rete non in uso) Lasciare solo l'essenziale Meno caratteristiche ovvero meno possibili falle GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 17
Consigli... Mai ricompilare sulla macchina che farà da fw Utilizzo di make -kpkg DISABILITARE MODULI Abilitare solo i protocolli che devono attraversare il firewall GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 18
Cosa ci serve... 2 o più interfacce Forward dei pacchetti tra le interfacce Echo 1 > /proc/sys/net/ipv4/ip_forward GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 19
Teoria di Iptables... Iptables ha 3 tabelle: filter (main) NAT Mangle Ogni tabella ha le sue catene GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 20
In dettaglio... Filter la tabella principale, si occupa di filtrare (accettando o rifiutando) i vari pacchetti NAT gestisce il NAT e le regole per la modifica degli indirizzi pubblici / privati Mangle è la tabella che si occupa di gestire le politiche di QOS (Quality Of Service) GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 21
Catene... Tabella filter INPUT: gestisce i pacchetti destinati al firewall OUTPUT: gestisce i pacchetti generati dal firewall FORWARD: gestisce i pacchetti che attraversano il firewall GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 22
Tabella NAT PREROUTING: gestisce i pacchetti in arrivo, usata per il NAT dell'host destinatario (DNAT) POSTROUTING: gestisce i pacchetti in uscita, utilizzata per il NAT dell'host sorgente (SNAT) FORWARD: gestisce il DNAT sui pacchetti generati localmente GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 23
Prerouting Output Postrouting Input Firewall Filter NAT Forward Forward GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 24
Come si configura? Iptables non ha una memoria + E' il kernel che va istruito + Le istruzioni si cancellano al reboot di sistema = BISOGNA SCRIVERE UNO SCRIPT GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 25
Ogni catena ha una policy di default Se nessuna regola è applicabile al pacchetto si usa la default policy La policy di default di ogni catena è ACCEPT GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 26
Le regole... Le regole sono lette in maniera sequenziale Es. Iptables opzione catena match -j destinazione Aggiungi, rimuovi ciò che cerchiamo GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 27
Operazione 1: pulizia delle tabella e delle catene -t specifica la catena -X cancella catene non standard -F esegue il flush delle catene -Z riempie di 0 le statistiche GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 28
Operazione 2: setting delle regole di default -P specifica la regola di default GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 29
Operazione 3: settaggio delle regole di input, output e forward -i specifica l'interfaccia di input -o specifica l'interfaccia di output -j specifica cosa fare del pacchetto -p specifica il protocollo -m state abilita il modulo degli stati GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 30
Operazione 4: settaggio del NAT SNAT source NAT DNAT destination NAT MASQUERADE mascheramento della connessione GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 31
Operazione 5: impostazioni di sicurezza echo "1" >/proc/sys/net/ipv4/... GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 32