Netfilter: utilizzo di iptables per



Documenti analoghi
Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)


Filtraggio del traffico IP in linux

Sicurezza nelle reti

Crittografia e sicurezza delle reti. Firewall

Iptables. Mauro Piccolo

PACKET FILTERING IPTABLES

esercizi su sicurezza delle reti maurizio pizzonia sicurezza dei sistemi informatici e delle reti

Packet Filter in LINUX (iptables)

Corso avanzato di Reti e sicurezza informatica

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

FIREWALL iptables V1.1 del 18/03/2013

TCP e UDP, firewall e NAT

Problematiche di Sicurezza in Ambiente Linux

Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet)

Transparent Firewall

Esercitazione 5 Firewall

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway

Firewall: concetti di base

Prof. Filippo Lanubile

Firewall e Abilitazioni porte (Port Forwarding)

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

Sicurezza applicata in rete

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

FIREWALL OUTLINE. Introduzione alla sicurezza delle reti. firewall. zona Demilitarizzata

Access Control List (I parte)

Corso GNU/Linux Avanzato Uso e configurazione di un firewall usando iptables

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Besnate, 24 Ottobre Oltre il Firewall.

Il firewall ipfw. Introduzione ai firewall. Problema: sicurezza di una rete. Definizione di firewall. Introduzione ai firewall

Sicurezza dei sistemi e delle reti 1. Lezione X: Proxy. Proxy. Proxy. Mattia Monga. a.a. 2014/15

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Sicurezza architetturale, firewall 11/04/2006

Indirizzamento privato e NAT

Reti di Telecomunicazione Lezione 8

Progettare un Firewall

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Lo scenario: la definizione di Internet

La sicurezza delle reti

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Elementi di Informatica e Programmazione

Il firewall Packet filtering statico in architetture avanzate

Protocolli di Comunicazione

Router(config)# access-list access-list number {permit deny} {test-conditions}

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

Dal protocollo IP ai livelli superiori

Kernel Linux 2.4: firewall 1985

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Modulo 8. Architetture per reti sicure Terminologia

Elementi sull uso dei firewall

Il FIREWALL LINUX Basare la sicurezza della rete su un sistema operativo gratuito

Antonio Cianfrani. Extended Access Control List (ACL)

Reti di Calcolatori. Il software

Transmission Control Protocol

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Reti di Telecomunicazione Lezione 6

Multicast e IGMP. Pietro Nicoletti

Innanzitutto, esistono diversi modi per realizzare una rete o più reti messe insieme; vi illustro la mia soluzione :

Guida di Pro PC Secure

Elementi di Informatica e Programmazione

Filtraggio del traffico di rete

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Contesto: Peer to Peer

Introduzione alle applicazioni di rete

Proteggere la rete: tecnologie

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

Ordine delle regole (1)

Cognome: Nome: Matricola: Sicurezza dei sistemi informatici e delle reti 18 febbraio 2014

Livello Trasporto Protocolli TCP e UDP

Firewall con IpTables

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Reti di Telecomunicazione Lezione 7

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

ACCESS LIST. Pietro Nicoletti

Standard di comunicazione

maurizio pizzonia sicurezza dei sistemi informatici e delle reti. esercizi su sicurezza delle reti

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

NAT NAT NAT NAT NAT NAT. Internet. Internet. router. router. intranet. intranet. Internet. Internet. router. router. intranet. intranet.

Firewall e VPN con GNU/Linux

Sommario. Introduzione ai firewall. Firewall a filtraggio dei pacchetti. Il firewall ipfw. Definizione e scopo Classificazione

3. Introduzione all'internetworking

Calcolatrice IP Online

INFORMATICA GENERALE - MODULO 2 CdS in Scienze della Comunicazione. CRISTINA GENA cgena@di.unito.it

Obiettivo: realizzazione di reti sicure TIPI DI ATTACCO. Politica di sicurezza: a) scelte tecnologiche b) strategie organizzative

Firewall e VPN con GNU/Linux

WAN / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP.

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente

Proteggiamo il PC con il Firewall di Windows Vista

2.1 Configurare il Firewall di Windows

Guida Rapida di Syncronize Backup

IP Internet Protocol

Transcript:

Netfilter: utilizzo di iptables per intercettare e manipolare i pacchetti di rete Giacomo Strangolino Sincrotrone Trieste http://www.giacomos.it delleceste@gmail.com

Sicurezza delle reti informatiche Primi decenni di esistenza: ricercatori universitari per scambio di messaggi elettronici; dipendenti di industrie per la condivisione delle stampanti.

Sicurezza delle reti informatiche (II) Oggi: segretezza autenticazione non disconoscimento (firma) controllo di integrità

Sicurezza delle reti informatiche (III) Oggi: esegue determinate operazioni: visualizzazione di pubblicità, raccolta di informazioni personali, modifica della configurazione del computer, in genere senza prima richiedere l' autorizzazione. virus informatici spyware/malware keylogger registra la pressione dei tasti sulla tastiera.

L'architettura stratificata delle reti informatiche e la sicurezza Possibile inclusione delle linee di trasmissione in tubi con gas argo ad elevata pressione. (Sensori ne rilevano la caduta) APPLICAZIONE TRASPORTO RETE COLLEGAMENTO DATI FISICO

L'architettura stratificata delle reti informatiche e la sicurezza Possibile codifica punto a punto: fallisce nei router, dove l'instradamento richiede la decodifica (vulnerabile da attacchi dall'interno del router) APPLICAZIONE TRASPORTO RETE COLLEGAMENTO DATI FISICO

L'architettura stratificata delle reti informatiche e la sicurezza APPLICAZIONE Firewall TRASPORTO Filtra i pacchetti di rete in base alla loro provenienza o destinazione. RETE COLLEGAMENTO DATI FISICO

Architettura: livello rete Il livello rete gestisce l'instradamento dei pacchetti nella internet, attraverso i vari nodi che la intessono

Firewall: la sicurezza al livello rete In azienda le informazioni private (segreti commerciali, piani di sviluppo, strategie di marketing, analisi finanziarie) non devono essere divulgate; pericolo che informazioni entrino (virus e altri agenti nocivi digitali)

Firewall: la sicurezza al livello rete (II) Implementa un filtro di pacchetti: tabelle con regole che elencano sorgenti e destinazioni accettabili e vietate

Firewall: la sicurezza al livello rete (III) Problemi: bloccare i pacchetti in uscita non è facile: i servizi non sono obbligati a rimanere in ascolto su porte fisse; Inconveniente: se si in alcuni servizi importanti (ftp), i numeri di porta sono assegnati dinamicamente; desiderano certi servizi, è necessario per quanto riguarda aprire i pacchetti delle porte UDP, poco si sa circa ciò che vogliono fare: molti filtri bloccano tutto il traffico UDP.

L'architettura stratificata delle reti informatiche e la sicurezza Possibile codifica APPLICAZIONE per processo TRASPORTO (non risolve il problema del RETE non disconoscimento e della autenticazione) COLLEGAMENTO DATI FISICO

Architettura: il trasporto TCP (Transmission Control Protocol, protocollo di controllo della trasmissione): È affidabile e orientato alla connessione. Gestisce la ritrasmissione e il controllo del flusso UDP (User Datagram Protocol): È veloce! Non è affidabile, non è orientato alla connessione ed è senza riscontro.

Intestazione TCP.-------------------------------+-------------------------------. Source Port Destination Port -------------------------------+------------------------------- Sequence Number --------------------------------------------------------------- Acknowledgment Number -------------------+-+-+-+-+-+-+------------------------------- Data U A P R S F Offset Reserved R C S S Y I Window G K H T N N -------+-----------+-+-+-+-+-+-+------------------------------- Checksum Urgent Pointer `-------------------------------+-------------------------------'

Intestazione UDP

L'architettura stratificata delle reti informatiche e la sicurezza Algoritmi di crittografia, algoritmi a chiave segreta (DES) o a chiave pubblica/privata (RSA) APPLICAZIONE TRASPORTO RETE COLLEGAMENTO DATI FISICO

Netfilter/iptables: l'infrastruttura per il firewalling in linux netfilter: il motore in spazio kernel (packet filtering, address translation, packet mangling, estensioni) iptables: utilità in spazio utente per la configurazione di netfilter

Funzionalità Stateless packet filtering (IPv4 e IPv6); stateful packet filtering (IPv4 e IPv6); tutti i tipi di traduzione degli indirizzi e delle porte, e.g. NAT/NAPT (solo IPv4); infrastruttura flessibile e estensibile; API multilivello disponibile per estensioni di terze parti

Utilizzazione implementazione di un filtro di pacchetti basato su regole stateless e stateful; utilizzazione del NAT e del mascheramento degli indirizzi per condividere l'accesso Internet di una connessione via modem; implementarzione transparent proxies; manipolazione dei pacchetti di rete (packet mangling) alterando ad esempio i bit TOS/DSCP/ECN dell'intestazione IP

L'architettura di rete e l'instradamento dei pacchetti nel kernel linux (I) Il pacchetto arriva dalla scheda di rete... PRE ROUTING Il pacchetto e` per me? Il pacchetto non e` per me.. lo inoltro INOLTRO (forward) POST ROUTING Il pacchetto lascia il computer Il pacchetto arriva ad una applicazione locale INPUT SI OUTPUT Un pacchetto viene generato da un'applicazione Processi Locali

L'architettura di rete e l'instradamento dei pacchetti nel kernel linux (II): filtering e Network NAT DESTINAZIONE Address Translation NAT INDIRIZZO SORGENTE e MASCHERAMENTO IP PRE ROUTING Il pacchetto e` per me? NO INOLTRO (forward) POST ROUTING FILTRO IN INGRESSO INPUT SI FILTRO IN FORWARD OUTPUT FILTRO IN USCITA Processi Locali OUTPUT DESTINATION NAT

IPTABLES: concetti fondamentali 2 target (obiettivi) principali: ACCEPT e DROP; 3 catene (percorsi) predefinite: INPUT, OUTPUT e FORWARD e altre definibili dall'utente; 3 tabelle : FILTER, NAT, MANGLE;

IPTABLES: concetti fondamentali (II) quando si verifica una corrispondenza tra il pacchetto di rete e la regola, la sorte del pacchetto è definita; per le regole definite dall'utente, quando si verifica una corrispondenza, il pacchetto salta alla nuova catena definita dall'utente e la percorre in toto; se non si verifica una corrispondenza, la ricerca continua da dove si era eseguito il salto iniziale.

IPTABLES: inizializzazione del firewall Inizializzazione delle tabelle di iptables: iptables -t filter -F iptables -t nat -F Impostazione della politica predefinita: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP Lista delle regole del firewall: iptables [-t filter] -L iptables -t nat -L

IPTABLES: indirizzi di rete specificare un indirizzo sorgente: --source/--src iptables -A INPUT -s 192.168.0.2 -j ACCEPT iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT inversione ( not ) iptables -A OUTPUT -d! 192.168.0.2 -j ACCEPT specificare un indirizzo destinazione: iptables -A OUTPUT -d 192.168.0.0/255.255.255.0 -j ACCEPT --destination/--dst

IPTABLES: interfacce di rete --in-interface specificare un'interfaccia di rete: iptables -A INPUT -s 192.168.0.2 -i eth0 -j ACCEPT iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT --out-interface specificare un indirizzo destinazione: iptables -A OUTPUT -d! 192.168.0.2 -o eth1 -j ACCEPT iptables -A FORWARD -d 192.168.0.0/255.255.255.0 -i eth0 -o eth1 -j ACCEPT

IPTABLES: protocollo di trasporto specificare un protocollo: iptables -A INPUT -p tcp -s 192.168.0.2 -i eth0 -j ACCEPT iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -j ACCEPT iptables -A OUTPUT -p icmp -o eth1 -j ACCEPT

IPTABLES: protocollo di trasporto specificare una porta: iptables -A INPUT -p tcp -s 192.168.0.2 --source-port 22 -i eth0 -j ACCEPT iptables -A OUTPUT -p udp --destination-port 22 -o eth1 -j ACCEPT opzioni TCP: da esaminare iptables -A INPUT -p tcp --tcp-flags ALL SYN,ACK -j DROP devono essere attivi

IPTABLES: stateful connection Iptables nei moduli della connection tracking implementa una macchina a stati che traccia lo stato di ciascuna connessione; Per attivare le opzioni di ip_conntrack, è sufficiente attivare il modulo con l'opzione -m state;

IPTABLES: stateful connection (II) Gli stati rintracciabili in una connessione sono: NEW: un pacchetto crea una connessione; ESTABLISHED: un pacchetto appartiene a una connessione esistente; RELATED: un pacchetto in relazione a una connessione esistente, ma di cui non fa parte (es. ftp data o errore ICMP); INVALID: un pacchetto il cui stato non può essere identificato (solitamente sono scartati)

IPTABLES: stateful connection (III): esempi Blocco delle connessioni nuove o invalide in ingresso: iptables -A INPUT -i ppp0 -m state --state NEW, INVALID -j DROP iptables -A FORWARD -i ppp0 -o eth0 -m state --state NEW, INVALID -j DROP Permesso alle connessioni nuove in uscita o già stabilite: iptables -A OUTPUT -o ppp0 -m state --state NEW -j ACCEPT iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

IPTABLES: NETWORK ADDRESS TRANSLATION (NAT) Il NAT consente la modifica degli indirizzi IP sorgente o destinazione o delle porte sorgente o destinazione, cosicché diviene possibile indirizzare un pacchetto a una destinazione diversa da quella per cui era stato creato oppure a un servizio diverso, rispettivamente.

IPTABLES: NETWORK ADDRESS TRANSLATION (NAT) (II) iptables -A PREROUTING -t nat -p tcp -d 158.110.28.25 --dport 20024 -j DNAT --to 158.110.144.168:22

IPTABLES: TRANSPARENT PROXY (caso particolare di DNAT) Invia il traffico in ingresso verso la porta 80 al proxy squid in ascolto sulla porta 3128 in modo trasparente iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 -j REDIRECT --to-port 8110 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

IPTABLES: CONDIVISIONE DELLA CONNESSIONE INTERNET VIA MODEM Accade spesso di avere più computer connessi alla rete Internet attraverso un modem: con iptables è semplice permettere a tutti i PC di accedere alla rete usando il cosiddetto mascheramento degli indirizzi (ip masquerading): iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE Tutto il traffico in uscita attraverso l'interfaccia ppp0 viene mascherato

IPTABLES: RIMOZIONE DI UNA REGOLA Si può cancellare una regola ripetendo la sintassi specificata al momento del suo inserimento, cambiando -A con -D: iptables -D INPUT -s 192.168.0.2 -j ACCEPT Se ci sono più regole con le stesse opzioni nella stessa catena, verrà cancellata solo la prima.

IPTABLES: ALTRI ESEMPI Opzione multiport: posso indicare più porte nella stessa regola: iptables -A INPUT -p tcp -m multiport --dports telnet,www,dns -j ACCEPT Opzione LOG: registrare le operazioni di iptables sul file di log iptables -A INPUT -i ppp0 -m state --state NEW, INVALID -j LOG log-prefix conn. new/inval. da ppp0 iptables -A INPUT -i ppp0 -m state --state NEW, INVALID -j DROP Limite di 29 caratteri nella stringa! Modulo multiport

IPTABLES: ESTENSIONI Modulo time: consente di attivare delle regole in base all'orario ed ai giorni della settimana: iptables -A INPUT -p tcp --dport www -m time timestart 09:00 timestop 18:00 days Mon,Tue,Wed,Thu,Fri -j ACCEPT Consente di usare Modulo ipp2p: consente programmi di prendere di file sharing decisioni in merito al traffico peer to peer. come Con edonkey questo modulo o emulesi può rilevare il traffico generato dai principali sistemi di file sharing: iptables -A PREROUTING -t nat -s 192.168.1.0/24 -m ipp2p edk -j ACCEPT iptables -A PREROUTING -t nat -s 192.168.1.0/24 -m ipp2p kazaa bit winmx --gnu -j DROP Nega il traffico legato a programmi come kazaa, Bit- Torrent, WinMX, Gnutella

IPTABLES: AIUTOOO!!! iptables -p tcp help Le regole che contengono -A FORWARD richiedono che nel kernel sia abilitato l'inotro dei pacchetti di rete attraverso le interfacce: echo 1 > /proc/sys/net/ipv4/ip_forward http://www.netfilter.org/

IPTABLES AVANZATO: IP QUEUE Il modulo di netfilter denominato QUEUE consente di mandare i pacchetti in una coda in spazio utente e di scrivere applicativi che, ponendosi in ascolto su quella coda, possono ricevere e analizzare i pacchetti, nonché finalmente esprimere un verdetto per ciascuno di essi. Questo estende le funzionalità del firewall consentendo all'utente di personalizzare totalmente il funzionamento del filtro di pacchetti

IPTABLES AVANZATO: IP QUEUE (II) Ad esempio, le regole: iptables -A INPUT -i ppp0 -j QUEUE iptables -A OUTPUT -o ppp0 -j QUEUE consentono di inviare ad un'applicazione in ascolto in spazio utente tutti i pacchetti che attraversano l'interfaccia di rete ppp0, e di affidare ad essa la sorte di ciascuno di essi. Vedere esempio di applicazione

Netfilter: utilizzo di iptables per intercettare e manipolare i pacchetti di rete Giacomo Strangolino Sincrotrone Trieste http://www.giacomos.it delleceste@gmail.com