AICA Corso IT Administrator: modulo 5 AICA © EUCIP IT Administrator Modulo 5 - Sicurezza Informatica Esercitazione Alberto Bosio
AICA Corso IT Administrator: modulo 5 AICA © IP Tables Funziona su tutti i kernel Linux che supportano packet filtering (controlare se esiste il file /proc/net/ip_fwchains) Dopo linstallazione del pacchetto IPTABLES risultano definite tre catene di base che definiscono le policy (ACCEPT/DROP) in input, output e forward : iptables –P INPUT iptables –P OUTPUT iptables –P FORWARD La policy di default è ACCEPT. Per visualizzare : iptables –L Per modificare la policy : iptables –P INPUT DROP Per eliminare tutte le regole presenti : iptables --flush
AICA Corso IT Administrator: modulo 5 AICA © IPtable Selezione fatta in base allheader IP –Indirizzo IP del destinatario –Indirizzo IP del mittente Eventualmente in base alle caratteristiche del protocollo trasportato (TCP, UDP, ICMP) –Protocollo TCP, UDP : porta ICMP : tipo e codice
AICA Corso IT Administrator: modulo 5 AICA © ESEMPI Nel caso si abbia una sola scheda di rete hanno senso solo le catene di INPUT e OUTPUT. Regola che, se la policy in OUTPUT è DROP, consente di raggiungere lhost per tutti i servizi: iptables –A OUTPUT –s -d –j ACCEPT Cancella la regola n dalla catena di OUTPUT iptables –D OUTPUT Regola che, se la policy in OUTPUT è DROP, consente di raggiungere il servizio offerto tramite TCP sulla porta 80 dallhost : iptables –A OUTPUT –p tcp –s -d dport 80 –j ACCEPT
AICA Corso IT Administrator: modulo 5 AICA © ESEMPI Regola che, se la policy in INPUT è DROP, consente di raggiungere il servizio offerto sul proprio host tramite TCP sulla porta 22 dallhost specificato da iptables –I INPUT 1 –p tcp –s -d -- dport 22 –j ACCEPT Attenzione di consentire anche il traffico in uscita per il servizio ssh (porta 22)
AICA Corso IT Administrator: modulo 5 AICA © Esempi Con almeno due schede di rete si possono definire anche le regole per il traffico in transito nella macchina (catena FORWARD) iptables –A FORWARD –d x.x.x.x/24 –j DROP x.x.x.x : indirizzo della rete alla quale si impedisce laccesso FORWARD : si effettua il transito DROP : i pacchetti destinati alla macchina sono scartati senza nessun avviso –REJECT : invia segnalazioni al mittente
AICA Corso IT Administrator: modulo 5 AICA © Esempi iptables –A FORWARD –p tcp –d x.x.x.x --dport 80 –j ACCEPT
AICA Corso IT Administrator: modulo 5 AICA © Ordine di valutazione Le prima regola corrispondente al pacchetto viene presa in configurazione 1.iptables –A FORWARD –d /24 –j DROP 2.iptables –A FORWARD –p tcp –d dport 80 –j ACCEPT Mai utilizzata
AICA Corso IT Administrator: modulo 5 AICA © Ordine di valutazione Permettere esplicitamente il traffico legittimo Bloccare tutto il resto –Default deny –Ultima regola : iptables –A FORWARD –j DROP
AICA Corso IT Administrator: modulo 5 AICA © Esempio Consente a tutti gli host della rete di raggiungere il server WEB sullhost iptables –A FORWARD –p tcp –s /24 –d dport 80 –j ACCEPT Consente al server WEB di rispondere alle sole richieste iptables –A FORWARD –p tcp –s –d /24 -tsport 80 --dport 1024: !–syn –j ACCEPT Vieta qualsiasi altro traffico in transito sulla macchina iptables –A FORWARD –j DROP
AICA Corso IT Administrator: modulo 5 AICA © Tcpdump Permette di vedere ed analizzare il traffico
AICA Corso IT Administrator: modulo 5 AICA © Tcpdump Per funzionare deve poter mettere la scheda di rete in modalità promiscua Può vedere traffico che non coinvolge il PC su cui si opera se non si utilizzano switch ma hub
AICA Corso IT Administrator: modulo 5 AICA © Tcpdump Sintassi: tcpdump [opzioni] [espressioni] Opzioni: -c Esce dopo aver ricevuto un tot di pacchetti (es. c100 ) -i Definisce l'interfaccia di rete. (es. -i eth0 o -i lo ) -w scrive su file il risultato dello sniffing (es. -w file ) -r Utilizza il file specificato come input per i dati da filtrare -p Linterfaccia locale non viene settata in modalità promiscua -q Visualizza il minor numero di informazioni possibili Espressioni: Le espressioni di Tcpdump sono composte da primitive che possono essere raggruppate per mezzo delle parentesi tonde (in modo da evitare ambiguità nell'ordine di risoluzione) e connesse attraverso operatori booleani: (solo i pacchetti che soddisfano la condizione espressa vengono presi in considerazione). Se lespressione manca, vengono catturati tutti i pacchetti. Es. tcpdump host (src host host dst host host) E anche possibile specificare un protocollo icmp tcp ip arp ….
AICA Corso IT Administrator: modulo 5 AICA © tcpdump Esempi Per catturare tutti i pacchetti tcpdump Per catturare 10 pacchetti tcpdump –c 10 Per catturare solo i pacchetti icmp tcpdump icmp Per catturare solo i pacchetti destinati a tcpdump dst host
AICA Corso IT Administrator: modulo 5 AICA © PPP Il PPP (Point to Point Protocol) è un meccanismo per creare ed usare IP (l'Internet Protocol) ed altri protocolli di rete su un collegamento seriale - sia esso una connessione seriale diretta (usando un cavo null-modem) su una connessione stabilita con telnet, oppure un collegamento fatto tramite modem e linee telefoniche (e usando naturalmente anche linee digitali come ISDN).
AICA Corso IT Administrator: modulo 5 AICA © PPP PAP/CHAP Il file secrets di PAP/CHAP Se si usa l'autenticazione pap o chap, allora si deve creare anche il file secrets. Questi sono: /etc/ppp/pap-secrets /etc/ppp/chap-secrets La prima cosa da notare su PAP e CHAP è che sono progettati per autenticare computer non utenti.
AICA Corso IT Administrator: modulo 5 AICA © PPP PAP Il file /etc/ppp/pap-secrets è qualcosa di simile a # Secrets per l'autenticazione usando PAP # client server secret indirizzi_IP_locali_accettabili quattro campi sono delimitati da spazi bianchi e l'ultimo può essere vuoto (che è quello che si vuole per l'allocazione di indirizzi IP dinamica e probabilmente anche per quella statica da parte del proprio ISP).
AICA Corso IT Administrator: modulo 5 AICA © PPP PAP Si supponga che il proprio ISP assegni il nome utente fred e la password flintstone, si dovrà aggiungere l'opzione name fred in /etc/ppp/options[.ttySx] e impostare il file /etc/ppp/pap-secrets come segue # Secrets per l'autenticazione usando PAP # client server secret indirizzi_IP_locali_accettabili fred * flintstone Questo dice che per il nome di macchina locale fred (che si è detto a pppd di usare anche se non è il nome locale della propria macchina) e per QUALSIASI server, si usa la password (secret) flintstone.
AICA Corso IT Administrator: modulo 5 AICA © PPP CHAP Questo richiede di avere metodi di autenticazione mutua - ovvero si deve permettere alla propria macchina di autenticare il server remoto E al server remoto di autenticare la propria macchina. Quindi, se la propria macchina è fred ed il sistema remoto è barney, la propria macchina dovrebbe usare name fred remotename barney e la macchina remota dovrebbe usare name barney remotename fred nei rispettivi file /etc/ppp/options.ttySx.
AICA Corso IT Administrator: modulo 5 AICA © PPP CHAP Il file /etc/chap-secrets per fred dovrebbe assomigliare a # Secrets per l'autenticazione usando CHAP # client server secret indirizzi IP locale accettabili fred barney flintstone barney fred wilma e per barney # Secrets per l'autenticazione usando CHAP # client server secret indirizzi IP locale accettabili barney fred flintstone fred barney wilma Si noti in particolare che entrambe le macchine devono avere voci per l'autenticazione bidirezionale. Questo permette alla macchina locale di autenticarsi presso il server e a quella remota di autenticarsi presso quella locale.