Filtraggio del traffico IP in linux



Похожие документы
Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall


Sicurezza nelle reti

Iptables. Mauro Piccolo

Packet Filter in LINUX (iptables)

Filtraggio del traffico di rete

PACKET FILTERING IPTABLES

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

Crittografia e sicurezza delle reti. Firewall

Corso avanzato di Reti e sicurezza informatica

Esercitazione 5 Firewall

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

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

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

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

Progettare un Firewall

Sicurezza applicata in rete

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

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

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

Transparent Firewall

Netfilter: utilizzo di iptables per

Elementi sull uso dei firewall

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

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

FIREWALL iptables V1.1 del 18/03/2013

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Firewall e Abilitazioni porte (Port Forwarding)

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

IP forwarding Firewall e NAT

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

Firewall: concetti di base

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

Prof. Filippo Lanubile

Kernel Linux 2.4: firewall 1985

TCP e UDP, firewall e NAT

FIREWALL Caratteristiche ed applicazioni

Lezione 1 Introduzione

La sicurezza delle reti

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

Dal protocollo IP ai livelli superiori

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

Prof. Mario Cannataro Ing. Giuseppe Pirrò

Reti di Telecomunicazione Lezione 8

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Sicurezza delle reti 1

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

Modulo 8. Architetture per reti sicure Terminologia

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

Firewall con IpTables

Sicurezza architetturale, firewall 11/04/2006

Indirizzamento privato e NAT

NetMonitor. Micro guida all uso per la versione di NetMonitor

Lo strato di trasporto Firewall e NAT

Introduzione alle applicazioni di rete

Access Control List (I parte)

Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.

Informatica per la comunicazione" - lezione 8 -

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

Ordine delle regole (1)

Corso di Sicurezza nelle reti a.a. 2009/2010. Soluzioni dei quesiti sulla seconda parte del corso

Apparecchiature di Rete

INFORMATICA PROGETTO ABACUS. Tema di : SISTEMI DI ELABORAZIONE E TRASMISSIONE DELLE INFORMAZIONI

Proteggere la rete: tecnologie

Firewall applicativo per la protezione di portali intranet/extranet

Concetto di regola. Sommario. Che cos è un Firewall? Descrizione di un Firewall. Funzione del Firewall

ANTISPAM PLAYNET (nuova Piattaforma) In questa piccola guida vogliamo mostrarvi come creare regole di BlackListe e Whitelist per

INTRODUZIONE ALLA SICUREZZA: IL FIREWALL

Difesa perimetrale di una rete

Internetworking TCP/IP: esercizi

Lezione Lab 1: Packet Filtering: Netfilter & IPTABLES

Besnate, 24 Ottobre Oltre il Firewall.

Protocolli applicativi: FTP

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

Problematiche di Sicurezza in Ambiente Linux

Sommario. Introduzione. Creazione di un firewall su GNU/Linux con iptables.

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

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

Reti di Calcolatori. Il software

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

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

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

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

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

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

Reti di Telecomunicazione Lezione 6

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Il firewall Packet filtering statico in architetture avanzate

FIREWALL: LA PROTEZIONE PER GLI ACCESSI ESTERNI

TeamPortal. Servizi integrati con ambienti Gestionali

IP (Internet Protocol) sta al livello 2 della scala Tcp/Ip o al livello 3 della scala ISO/OSI. Un indirizzo IP identifica in modo logico (non fisico

Firewall e VPN con GNU/Linux

Транскрипт:

Filtraggio del traffico IP in linux Laboratorio di Amministrazione di Sistemi L-A Dagli appunti originali di Fabio Bucciarelli - DEIS Cos è un firewall? E un dispositivo hardware o software, che permette o nega la comunicazione fra 2 reti diverse (es. Internet Lan aziendale). E posizionato sulla frontiera fra le 2 reti e ha lo scopo di proteggere la rete interna consentendo le attività lecite

Packet filter firewall Analizzano gli header dei pacchetti che vi transitano fino al livello di trasporto. Discriminano in base a: Livello fisico (es. interfaccia di rete) Livello data link (es. mac sorgente o destinazione) Livello rete (es. IP sorgente o destinazione) Livello trasporto (es. porta sorgente o destinazione) Proxy firewall Sono in grado di interpretare le informazioni del pacchetto fino al livello applicativo Es. firewall http inoltra o scarta pacchetti in funzione dell URL Proxy generici (es. socks) Proxy dedicati (es. squid)

Packet filter vs. Proxy firewall + veloce Packet filter Proxy firewall + potente Kernel space Indipendente dal protocollo applicativo User space Richiede hardware + veloce Firewall di linux E di tipo packet filter HOST A Applicazione Presentazione Sessione Trasporto Rete Data link Fisico Trasporto Trasporto Rete Rete Data link Data link Fisico Fisico FIREWALL HOST B Applicazione Presentazione Sessione Trasporto Rete Data link Fisico

Attacchi via rete alle applicazioni 1) Buffer overflows Bug di programmazione che non controlla i limiti di memoria di un buffer di input Exploit: invio di una quantità di dati che trabocca su aree critiche (es. lo stack) Risultato: minimo crash, massimo esecuzione di codice arbitrario Rischio tanto più alto quanti più diritti ha il servizio attaccato 2) Data-driven attacks Bug di programmazione che non verifica se il contenuto di un input può essere pericoloso per certe fasi di elaborazione Exploit: costruzione accurata di messaggi per un servizio Risultato: solitamente esecuzione di codice arbitrario Es. invio di posta ad un destinatario inesistente, con mittente un comando: To: fishlips@target.com From: /bin/sed 1,/^$/d sh Attacchi via rete alle applicazioni 3) Uso di caratteristiche lecite - Es: FTP bouncing fase 1 fase 2

Firewall di linux (2) E integrato nel kernel di linux, quindi rappresenta la soluzione più semplice e veloce. Il kernel deve essere predisposto in fase di compilazione, oppure devono essere caricati gli appositi moduli. Kernel 2.0.* -> ipfwadmin Kernel 2.2.* -> ipchains Kernel 2.4.* -> iptables Firewall di linux (3) L attraversamento dei pacchetti tra un interfaccia ed un altra deve essere abilitata espressamente nel kernel, attraverso il comando: # echo 1 > /proc/sys/net/ipv4/ip_forward Possibilità di estensioni (moduli), che possono essere incluse o meno in fase di compilazione

Iptables Si basa sui concetti di tabelle, catene e regole Una tabella è formata da catene (punti di controllo) e una catena da regole Tabelle Filter NAT Mangle

Tabella filter Contiene le regole di filtraggio vere e proprie dei pacchetti che il firewall origina e riceve o che transitano dal firewall Tabella NAT Consente di effettuare il NAT (Networking Address Translation) degli indirizzi IP o del valore della porta sorgente o di destinazione

Tabella mangle Usata per effettuare alterazioni particolari dell header IP (TTL, TOS, MARK) Particolarmente interessante è il target MARK, che permette di marcare il pacchetto, in modo da essere trattato diversamente nei successivi punti di controllo o da altri programmi Come i pacchetti attraversano i filtri Filtraggio dei pacchetti che devono essere inoltrati Pacchetto che deve essere inoltrato Effettua NAT (Network Address Translation) dei pacchetti in ingresso Mangle FORWARDING Filter FORWARDING Effettua NAT dei pacchetti in uscita (tipicamente viene fatto il mascheramento della soregente) RETE Mangle PREROUTING Nat PREROUTING ROUTING DECISION Viene deciso se il pacchetto è destinato a localhost o deve essere inoltrato Viene decisa l interfaccia d uscita del pacchetto ROUTING DECISION Mangle POSTROUTING Nat POSTROUTING RETE Pacchetto destinato a localhost Mangle INPUT Filter INPUT LOCAL PROCESS ROUTING DECISION Mangle OUTPUT Filter OUTPUT Nat OUTPUT Pacchetto originato dal localhost Filtraggio dei pacchetti in ingresso al firewall Filtraggio dei pacchetti in uscita al firewall

Catene della tabella filter INPUT operazioni di filtraggio di pacchetti appena gunti al firewall e diretti all host FORWARD operazioni di filtraggio di pacchetti che transitano dal firewall OUTPUT operazioni di filtraggio di pacchetti generati localmente che stanno per uscire dal firewall Catene della tabella NAT PREROUTING operazioni di nat di pacchetti appena giunti al firewall OUTPUT operazioni di nat di pacchetti generati localmente POSTROUTING operazioni di nat di pacchetti che stanno per uscire dal firewall

Catene della tabella mangle PREROUTING INPUT FORWARD OUTPUT POSTROUTING Le regole Hanno la forma di ACL Ogni catena ha una policy di default L elenco delle regole viene scorso dall inizio alla fine Al primo match si stabilisce cosa fare del pacchetto e, salvo casi particolari si interrompe l analisi delle regole della catena Se per nessuna regola c è il match, si esegue la policy di default

Come si costruisce una regola #iptables [table] command [match] [target] [table] selezione della tabella [match] criteri per la selezione del pacchetto [target] destino del pacchetto che soddisfa il match Comandi sulle catene Creare una nuova catena (-N) Cancellare una catena vuota (-X) Cambiare lapolicy di default di una catena (- P) Elencare le regole presenti in una catena (-L) Svuotare una catena delle sue regole (-F) Azzerare i contatori

Comandi per manipolare le regole di una catena Appendere una nuova regola alla catena (-A) Inserire una regola in una determinata posizione (-I) Sostituzione di una regola presente in una certa posizione (-R) Cancellazione di una regola presente in una certa posizione (-D) Cancellazione della 1 regola di una catena (- D) Itarget(1) ACCEPT il pacchetto viene accettato DROP il pacchetto viene scartato REJECT stesso effetto di DROP, ma viene inviato in risposta un messaggio di errore ICMP di tipo port unreachable Catena creata dall utente

Itarget(2) RETURN termina la catena; se è una catena predefinita, viene eseguita la tattica, se è definita dall utente, esegue la regola successiva sulla catena precedente QUEUE accoda i pacchetti per elaborazioni userspace Esempi Internet eth0 1.2.3.4 FIREWALL eth1 192.168.1.1 LAN 192.168.1.* #iptables A FORWARD i eth1 j DROP Tutte le opzioni di match possono essere negate attraverso il simbolo!

Esempi Internet eth0 1.2.3.4 FIREWALL eth1 192.168.1.1 LAN 192.168.1.* #iptables A FORWARD i eth1 s 192.168.1.0/24 d 0/0 j DROP Esempi Internet eth0 1.2.3.4 FIREWALL eth1 192.168.1.1 LAN 192.168.1.* #iptables A INPUT p tcp s 1.2.3.5 d 1.2.3.4 -dport 22 j ACCEPT #iptables A INPUT p tcp s 0/0 d 1.2.3.4 -- dport 22 j DROP

Esempi Internet eth0 1.2.3.4 FIREWALL eth1 192.168.1.1 LAN 192.168.1.* #iptables A FORWARD mac-source 00:60.08:91:CC:B7 s 192.168.1.5 d 0/0 j ACCEPT I frammenti IP (1) A volte il pacchetto generato dall host mittente è troppo grande per attraversare alcune reti, viene quindi frammentato Il frammento contiene un sottoinsieme dell header, non è quindi possibile verificare le intestazioni TCP, UDP e regole come p tcp, - -sport non possono essere verificate

I frammenti IP (2) C è la possibilità di dare una regola specifica per i frammenti, attraverso l opzione f Esempio: #iptables A OUTPUT f d 192.168.1.69 j DROP I flag TCP Si possono filtrare i pacchetti attraverso i flag specifici di TCP --tcp-flags seguita da 2 stringhe di flag: la prima stringa è la maschera:lista di flag che si vogliono esaminare la seconda indica quali flag devono essere impostati

I flag TCP (esempio) Voglio fare il log di tutte le connessioni TCP che passano dal firewall #iptables A FORWARD p tcp tcp-flags ALL SYN,FIN j LOG --syn è un abbreviazione di tcp-flags SYN,RST,ACK SYN Connection tracking (1) Capacità per un firewall di mantenere memoria dello stato delle connessioni. Si usa l opzione --state seguita da una lista di stati da confrontare.

Connection tracking (2) Questi stati sono: NEW un pacchetto che crea una nuova connessione ESTABLISHED un pacchetto che appartiene a una connessione esistente Connection tracking (3) RELATED pacchetto relativo a una connessione esistente di cui non fa parte (es. errore ICMP, FTP data) INVALID pacchetto che non può essere identificato (in genere va scartato)

Connection tracking (esempi) #iptables A FORWARD d 192.168.0.0/16 m state -state ESTABLISHED, RELATED j ACCEPT Consente il transito verso 192.168.* per connessioni già realizzate o correlate a connessioni precedenti #iptables A FORWARD d 192.168.0.0/16 m state -state INVALID j DROP Elimina i pacchetti non identificabili Network Address Translation (NAT) Tecnica descritta nell RFC 1631, con la quale un nodo di rete speciale acquista funzionalità simili a quelle di un router, allo scopo di sostituire indirizzi IP reali con altri indirizzi più convenienti E possibile riutilizzare dinamicamente gli indirizzi IP privati, permettendo a tali reti di accedere all esterno, pur non essendo questi univoci a livello globale

NAT Internet eth0 1.2.3.4 NAT eth0 192.168.1.1 192.168.1.* LAN Host Host Normalmente gli indirizzi IP 192.168.1.* non hanno la possibilità di essere riconosciuti univocamente all interno della rete globale, pertanto non è possibile accedere all esterno. Si può ottenere attraverso il NAT NAT Souce NAT (SNAT) si ha quando si altera l indirizzo sorgente del pacchetto. E effettuata in fase di post-routing Destination NAT (DNAT) si ha quando si altera l indirizzo di destinazione, ossia si cambia dove la connessione è diretta. Si effettua in fase di pre-routing

SNAT 192.168.1.* eth0 1.2.3.4 eth1 192.168.1.1 Internet NAT LAN Host Host #iptable t nat A POSTROUTING o eth0 j SNAT to-source 1.2.3.4 SNAT (mascheramento) Internet Indirizzamento IP dinamico NAT eth0 192.168.1.1 192.168.1.* LAN Host Host #iptables t nat A POSTROUTING o ppp0 j MASQUERADE

DNAT Internet 1.2.3.4:80 NAT 192.168.1.2:80 Rete locale Server HTTP reale #iptables t nat A PREROUTING p tcp - dport 80 i eth0 j DNAT todestination 192.168.1.2 DNAT (redirect) Internet eth0 1.2.3.4 Proxy trasparente eth1 192.168.1.1 LAN 192.168.1.* Si vuole che tutte le richieste di servizi HTTP, da parte della rete locale, siano dirottati verso il proxy, sullo stesso computer che ospita il NAT, alla porta 8080 #iptables t nat A PREROUTING p tcp dport 80 i eth1 j REDIRECT to-port 8080

Bibliografia Rusty Russel, Linux 2.4 Packet filtering HOWTO http://www.netfilter.org/documentation/howto/packet-filtering- HOWTO.html Rusty Russel, Linux 2.4 NAT HOWTO http://www.netfilter.org/documentation/howto/nat- HOWTO.html Oskar Andreasson, Iptables tutorial http://iptables-tutorial.frozentux.net/ Manpage di iptables