Linux Packet Filtering. Εισαγωγή Netfilter / iptables ADOLF

Σχετικά έγγραφα
13 Ιουνίου 2013

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Διαδίκτυα και το Διαδίκτυο (Internetworking and the Internet)

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Εργαστήριο Δικτύων Υπολογιστών

Στρατηγικές Ασφάλειας

ιαδίκτυα και το ιαδίκτυο (Internetworking and the Internet)

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

Draytek Vigor 2700VG Annex A

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

ΔΡΟΜΟΛΟΓΗΣΗ ΠΑΚΕΤΩΝ. Η δρομολόγηση των πακέτων μπορεί να γίνει είτε κάνοντας χρήση ασυνδεσμικής υπηρεσίας είτε συνδεσμοστρεφούς υπηρεσίας.

Επίπεδο δικτύου IP Forwading κτλ

Δίκτυα Υπολογιστών Ενότητα 3: Domain Name System - DNS

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Κεφάλαιο 13. Έλεγχος πρόσβασης με Firewall

Network Address Translation (NAT)

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Δίκτυα Επικοινωνιών ΙΙ: Network Programming Εισαγωγή, TCP, UDP, Ports

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

Οδηγός ιαχείρισης Λειτουργίας Σχολικού Εργαστηρίου Windows 2000 Server

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές Firewalls Anomaly & Intrusion Detection Systems (IDS)

2η Προγραµµατιστική Εργασία

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Cryptography and Network Security Chapter 22. Fifth Edition by William Stallings

Σχήμα 4.1. Δίκτυο μη συγκεκριμένης τοπολογίας (mesh topology)

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

ΤΕΙ ΗΠΕΙΡΟΥ. ΜΑΘΗΜΑ: Πρωτόκολλα Επικοινωνίας ιαδικτύου. Εξάµηνο: 3ον. Κεφάλαιο 8 ον : ΕπίπεδοΕφαρµογής (Application Layer) Στεργίου Ελευθέριος

IPv6. Ιατρέλλης Όμηρος Καθηγητής Εφαρμογών

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

OSI και TCP/IP. Εισαγωγή στα Δίκτυα υπολογιστών και τεχνολογίες διαδικτύου

Επίπεδο δικτύου IP διευθυνσιοδότηση

1. Εισαγωγή. Περιγραφή Μαθήματος. Ιστορική Αναδρομή. Ορισμοί Ηλεκτρονικού Εμπορίου

MusicOnCloud: Μια cloud-based υπηρεσία online streaming μουσικής

Ενεργοποίηση του πρωτοκόλλου IPv6

ΠΑΡΑΡΤΗΜΑ Β - ΠΛΗΡΟΦΟΡΙΑ & ΤΕΧΝΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ

AODV - SD ΕΠΕΚΤΑΣΗ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ ΔΡΟΜΟΛΟΓΗΣΗΣ AODV ΓΙΑ ΑΝΑΚΑΛΥΨΗ ΥΠΗΡΕΣΙΩΝ ΣΕ ΚΙΝΗΤΑ AD HOC ΔΙΚΤΥΑ SIMULATION WITH J-SIM

ΔΙΚΤΥΑ Η/Υ ΙΙ. Πρωτόκολλο Διαδικτύου (IP)

Εργαστήριο Δικτύων Υπολογιστών

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

Παραδείγµατα δικτυακών τεχνολογιών. Ethernet Internet ATM

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 4: Επίπεδο 3 το πρωτόκολλο IP

Β. Μάγκλαρης.

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

HY335 4ο Φροντιστήριο

Αντικείμενο της πρόσκλησης είναι η συλλογή προσφορών για προμήθεια router τύπου Peplink balance 580 με τα παρακάτω τεχνικά χαρακτηριστικά: Software

Επαναληπτικό µάθηµα επί των αρχών λειτουργίας του ιαδικτύου. ρ. Κωνσταντίνος Σ. Χειλάς. Ethernet

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Δίκτυα και Διαδίκτυο

ιαδικτυακές Εφαρµογές

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Ηλεκτρονικού Ταχυδρομείου - SMTP

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

HY-335a Project: microtcp, μία lightweight TCP βιβλιοθήκη. Deadline πρώτης ϕάσης : 19/11/ :59

Winnie. Ένα πειραματικό window system. Ελένη Μαρία Στέα FOSSComm

Υποστήριξη Κινητικότητας στο Internet. Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

Η επιλογή του αναδόχου θα γίνει βάσει της χαμηλότερης τιμής χωρίς Φ.Π.Α..

Πρωτόκολλα Διαδικτύου. Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Λειτουργικά Συστήματα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Εισαγωγή Πρότυπο τριών Διαστάσεων Λειτουργίας Μοντέλο Διαχείρισης FCAPS Το Δίκτυο του Ε.Μ.Π. Περιβάλλον Εργαστηριακών Ασκήσεων

Σκήκα Δπηζηήκεο Τπνινγηζηώλ ΠΣΤΥΗΑΚΖ ΔΡΓΑΗΑ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ

Β. Μάγκλαρης.

Πρωτόκολλα Διαδικτύου

Ειδικά Θέματα Προγραμματισμού

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Οι Διαδικτυακές ανάγκες μιας εταιρείας σε διευθύνσεις IPv4, έχουν ως εξής: Τμήμα Διοίκησης Προσωπικού & Οικονομικών Σύνολο απαιτούμενων διευθύνσεων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ

Δίκτυα Υπολογιστών Το επίπεδο δικτύου (network layer)

Οόρος«thin» 13η Συνάντηση Εκπαιδευτικών Πληροφορικής. Thinclients 2/4. Υπολογιστικό μοντέλο Thinclients 1/4. Τεχνολογία Τhinclient Edubuntu LTSP

Internet protocol stack Encapsulation Connection oriented VS connectionless services Circuit Switching Packet Switching Store-and-forward switches

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Σκοπιµότητα των firewalls

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets

ΔΙΚΤΥΑ Η/Υ ΙΙ. Πρωτόκολλα δρομολόγησης

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου

4 η ιάλεξη: Signals UDP Sockets

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

Δίκτυα Υπολογιστών I

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Εργαστήριο ικτύων Υπολογιστών 6η ιάλεξη: Ασφάλεια δικτύων

Υποδοχείς (Sockets) Προγραμματισμός II 1

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Δίκτυα Υπολογιστών Το επίπεδο δικτύου (network layer)

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα δικτύου στο Internet. Δίκτυα Υπολογιστών

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Snort. A multi-mode packet analysis tool 3-1. Ασφάλεια Δικτύων, Τμήμα Πληροφορικής, Ο.Π.Α.,

Small-scale network infrastructure & Free Software

Transcript:

Εισαγωγή Netfilter / iptables ADOLF

Εισαγωγή Firewalls Γιατί τα χρειαζόμαστε; Έλεγχο της δικτυακής δραστηριότητας. Ασφάλεια από εξωτερικές (και εσωτερικές) απειλές. Παρακολούθηση ( με την καλή την έννοια ).

Εισαγωγή Δικτυακή δραστηριότητα Web browser TCP IP Ethernet

Εισαγωγή Δικτυακή δραστηριότητα Web browser Application level TCP Network protocol IP Ethernet link-level protocol

Εισαγωγή IP πακέτo Packet header (20 bytes) Version IHL Type of Service Total Length Identification Flags Fragment Offset Time To Live Protocol Header Checksum Source Address Destination Address

Εισαγωγή IP πακέτo TCP header (+20 bytes) Source Port Destination Port Sequence Number Acknowledgment Number Data offset Reserved Negotiation flags Window Checksum Urgent Pointer Packet body

Εισαγωγή Packet filtering Η λήψη της απόφασης: Αποδοχή (ACCEPT) Απόρριψη (DROP) Δύο κατηγορίες: Stateless Stateful

Εισαγωγή Linux Packet filtering 1994 ipfw, Alan Cox. Port από το BSD. Linux 1.1 199? ipfwadm, Jos Vos and others. Linux 2.0 1998 ipchains, Rusty Russell and Michael Neuling. Linux 2.2 1999 iptables, Rusty Russell. Linux 2.4+

http://www.netfilter.org/

Netfilter Κύρια χαρακτηριστικά stateless packet filtering (IPv4 και IPv6) stateful packet filtering (IPv4 και IPv6) όλα τα είδη network address και port translation, π.χ. NAT/NAPT (μόνο IPv4) ευέλικτη υποδομή πολλαπλά API layers για extensions μεγάλο πλήθος από plugins/modules

Netfilter Χρήσεις stateless και stateful packet filtering based firewalls. NAT και masquerading για διαμοιρασμό μίας σύνδεσης internet. εκτεταμμένες τροποποιήσεις στους headers των πακέτων (mangling).

Netfilter Netfilter Packet mangling framework kernel space. λειτουργεί εξωτερικά του BSD socket interface (INET).

Netfilter iptables iptables user space command line administration program. ip_tables / IP tables generic table structure για τον ορισμό των κανόνων. κάθε κανόνας εντός ενός IP table αποτελείται από ένα πλήθος στοιχείων ελέγχου (iptables matches)...... και την συνδεδεμένη με τον κανόνα δράση

Netfilter Τρόπος λειτουργίας Κάθε πρωτόκολλο ορίζει hook functions. Κομμάτια του πυρήνα κάνουν register σε αυτά τα hooks. NF_DROP NF_ACCEPT NF_STOLEN NF_REPEAT NF_QUEUE Queued packets -> Userspace (ip_queue)

Netfilter IPv4 & IPv6 hooks 1 Route 3 4 Route 2 5 1: NF_IP_PRE_ROUTING 4: NF_IP_POST_ROUTING 2: NF_IP_LOCAL_IN 5: NF_IP_LOCAL_OUT 3: NF_IP_FORWARD

Netfilter Packet Selection: IP tables Κάθε kernel module κάνει register ένα νέο IP table στο iptables framework, μαζί με τα hooks στα οποία θα γίνεται traverse. Κάνει register στα hooks του Netfilter. Το Netfilter αναλαμβάνει να περάσει τα πακέτα από τα hook. To module πρέπει να καλέσει το iptables. To iptables καλεί τα callback functions για κάθε match του κανόνα.

Netfilter Packet filtering: filter 1 Route 3 4 Route 2 5 1: NF_IP_PRE_ROUTING 4: NF_IP_POST_ROUTING 2: NF_IP_LOCAL_IN 5: NF_IP_LOCAL_OUT 3: NF_IP_FORWARD

Netfilter NAT: nat 1 Route 3 4 Route 2 5 1: NF_IP_PRE_ROUTING 4: NF_IP_POST_ROUTING 2: NF_IP_LOCAL_IN 5: NF_IP_LOCAL_OUT 3: NF_IP_FORWARD

Netfilter Packet mangling: mangle 1 Route 3 4 Route 2 5 1: NF_IP_PRE_ROUTING 4: NF_IP_POST_ROUTING 2: NF_IP_LOCAL_IN 5: NF_IP_LOCAL_OUT 3: NF_IP_FORWARD

Netfilter Userspace IP tables management: Shared library: libiptc. iptables command line utility. IP tables userspace handling: Shared library: libnetfilter_queue. Αντικαθιστά το pre-2.6.14 ip_queue/libipq

Netfilter Παράδειγμα static struct nf_hook_ops hook_in; /* prototype is found inside <linux/netfilter> */ unsigned int my_hook(unsigned int hooknum, struct... { return NF_DROP; } int init_module() { hook_in.hook = my_hook; hook_in.pf = PF_INET; hook_in.hooknum = NF_IP_PRE_ROUTING; hook_in.priority = NF_IP_PRI_FIRST; nf_register_hook(&hook_in); return 0; } void cleanup() { nf_unregister_hook(&hook_in); }

A Desktop Oriented Linux Firewall http://rainbow.cs.unipi.gr/projects/adolf

ADOLF Το Concept Προσωπικοί υπολογιστές με Linux. Οι απαιτήσεις και τα interfaces αλλάζουν συνέχεια. Αλλάζει και η άποψη του χρήστη. Ο χρήστης, και διαχειριστής του προσωπικού υπολογιστή, είναι σχεδόν πάντα παρών κατά την διάρκεια θεμιτής δικτυακής δραστηριότητας. Ο απλός χρήστης δεν θέλει να ξέρει τί σημαίνει iptables, match, target, userspace, terminal, configuration GUI wrapper, vi, /etc/init.d/foo κ.α. Ο απλός χρήστης, δεν θα κάτσει να μάθει: Θα

ADOLF Η αποστολή Παροχή φιλικού περιβάλλοντος. Λήψη των αποφάσεων (ετυμηγοριών) σε: Πραγματικό χρόνο Στην επιφάνεια εργασίας (desktop) Διαχείριση κανόνων. Μή διάσπαση της πολιτικής ασφαλείας ενός Linux συστήματος.

ADOLF Screenshots

ADOLF Screenshots

ADOLF Κύρια χαρακτηριστικά Realtime ενημέρωση, καταγραφή και εφαρμογή ετυμηγορίας. Roaming κανονές. Δημιουργία κανόνων αναλόγως του UID του local process. Δημιουργία κανόνων αναλόγως του ονόματος του local process. (!) Connection tracking aware για TCP και UDP.

ADOLF Αντενδείξεις Unattended συστήματα, servers. Heavy load systems (π.χ. peer-to-peer traffic) Realtime συστήματα (π.χ. αγοραπωλησία μετοχών) Συστήματα χωρίς γραφικό περιβάλλον. Window managers χωρίς system tray. Δεν υποστηρίζει IPv6 δίκτυα. Δεν υποστηρίζει UPNP.

ADOLF Αρχιτεκτονική Kernel module Daemon Client applications Command line utilities Desktop applet

ADOLF Αρχιτεκτονική Υπομονάδα πυρήνα Κατάσταση λειτουργίας πυρήνα Κατάσταση λειτουργίας χρήστη Ειδικό αρχείο χαρακτήρων /dev/firewall Δαίμονας Υποδοχή UNIX Πελάτης Πελάτης Πελάτης Πελάτης

ADOLF Kernel module Κάνει register στο Netfilter στα: NF_FORWARD NF_LOCAL_IN NF_LOCAL_OUT Γίνεται ένα misc device root privileged char device /dev/firewall. Επικοινωνία μέσω ioctl, read, write. Δρά σαν διαρροή των πληροφοριών στο userspace. Εφαρμόζει τις υπαγορευόμενες ετυμηγορίες. Μεταφέρει το επίπεδο θεώρησης, από το

ADOLF Daemon Γίνεται attach στο char device. Εμπλουτίζει το περιστατικό με πληροφορίες: ρόλοι των source και destination hosts. πληροφορίες για το local process (UID, command). DNS resolving / netdb. Ελέγχει έναντι των ενεργών κανόνων. Είτε εξάγει ετυμηγορία είτε όχι, κοινοποιεί το περιστατικό στις διεργασίες πελάτες του.

ADOLF Daemon Επικοινωνεί με τους clients μέσω UNIX socket. Thread-safe υλοποίηση. (7 threads + 2/client) Υποστηρίζει σύγχρονη και ασύγχρονη επικοινωνία με τους clients. Η επικοινωνία γίνεται μέσω API που παρέχεται. (C/C++)

ADOLF Command line utilities Παρέχονται για πληρότητα. Βασίζονται στο παρεχόμενο API. Μπορούν να χρησιμοποιηθούν στα πλαίσια ενός shell script: #!/bin/sh firewallstatus if [ $? eq 1 ]; then firewallenable firewallstatus fi

ADOLF Desktop application Γραμμένο με Qt4. Χρησιμοποιεί το C++ παρεχόμενο API. Τοποθετείται στο system tray. Παρέχει interface για παρακολούθηση της δραστηριότητας, για διαχείριση των κανόνων, αποθήκευση εναλλακτικών νομοσχεδίων σε εξωτερικά αρχεία. Παρέχει περιγραφή των κανόνων σε φυσική γλώσσα.

ADOLF Context menu

ADOLF Control Panel (Wizard)

ADOLF

ADOLF Counters

ADOLF Identified roles

ADOLF Future work Ο δαίμονας δεν προστατεύεται από clients με κακή συμπεριφορά. Να καθαριστεί ο κώδικας. Να γραφεί documentation στα Αγγλικά. Το API να γίνει shared library. Να γίνει port το kernel module στο libnetfilter_queue ώστε να εκτιμηθεί εάν είναι καλύτερο από το libipq. Να υποστηριχθεί και dbus για την επικοινωνία του δαίμονα με τους πελάτες. Να εμπλουτιστεί το art του desktop application. Agents για τα time constants. IPv6. Hotplug shell scripts.

ADOLF Credits Toν Σεπτέμβριο του 2005, ο υποψήφιος διδάκτωρ Αντώνης Πετρόπουλος πρότεινε το θέμα σαν πτυχιακή εργασία στον καθηγητή του Παν. Πειραιώς Χρήστο Δουληγέρη. Την εργασία ανέλαβαν οι φοιτητές Δημόπουλος Διονύσιος και Δημοπούλου Μαριάνα υπό την απο κοινού επίβλεψή τους. Μετά από πολλά κύματα, η εργασία περαττώθηκε τον Οκτώβριο του 2007. Σήμερα συνεχίζει υπό το όνομα ADOLF, σαν open source project, συμμορφωμένο των ιδεωδών του φίλου μας Αντώνη.