Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Einführung von Linux basierten Ethernet Capturing Technologien von Simon Kallrath Betreuer: Prof. Dr. Volker Sander Dipl. Ing. Volker Kleinfeld.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Einführung von Linux basierten Ethernet Capturing Technologien von Simon Kallrath Betreuer: Prof. Dr. Volker Sander Dipl. Ing. Volker Kleinfeld."—  Präsentation transkript:

1 1 Einführung von Linux basierten Ethernet Capturing Technologien von Simon Kallrath Betreuer: Prof. Dr. Volker Sander Dipl. Ing. Volker Kleinfeld

2 2 Linux Kernel fast komplett in C verfasst Entwickelt für x86 Architektur Hierarchisches Dateisystem Aufgaben:  Hardware unabhängige Programmschnittstelle  Komplexität vor Benutzer verbergen Speicherverwaltung, Prozessverwaltung u.v.m.

3 3 Die Netzwerkkarte NIC (Network Interface Card) Promiscuous Mode  alle Pakete werden angenommen  wird nicht von allen NIC sowie OS unterstützt  bei W-Lan besser Monitor-Mode  Schnittstelle zum Netzwerk  eindeutig adressiert durch MAC

4 4 Netzwerkprotokolle Kommunikation im Netzwerk verschiedene Referenzmodelle jede Schicht hat eine Aufgabe Protokolle obliegen einer Schicht Das IPv4 – Protokoll  Hardware unabhängige Adressierung  Paketgröße beträgt etwa 1500 Byte  verbindungslos (durch TCP verbindungsorientiert)

5 5 Netzwerkzugriff Shared Ethernet  Hub Switched Ethernet  Same Computer  Monitor Port  Machine in the middle  Tap

6 6 Pakete im Linux-Flow Paket erreicht durch Netzwerk die NIC NIC prüft Zugehörigkeit Ziel MAC = MAC

7 7 Pakete im Linux-Flow Im Kernel  Netzwerktreiber verschiebt Paket in Kernelspace Über Dynamic Memory Access Anlegen eines sk_buff pro Paket Kernelspace Netzwerktreiber sk_buff D M A

8 8 Struct sk_buff  Zeiger für nächstes und vorhergehendes Struct  Zeiger für zugewiesenes Socket wie auch NIC  Zeitstempel Senden-Empfangen Nicht immer notwendig  Zeiger auf verschiedene Header eines Paketes Daten sind immer verfügbar

9 9 sk_buff Pakete im Linux-Flow Im Kernel  sk_buff Strukturen werden in eine Queue eingereiht  Im Netzwerkstack  Überlauf bei Paketflut (Paketverlust) sk_buff Queue (FIFO) Event

10 10 Pakete im Linux-Flow Event  Standard Netzwerkkarte sendet Hardwareinterrupt Interrupthandler verständigt CPU CPU unterbricht Ausführung und startet Thread  NAPI (New Application Programming Interface) Hardwareinterrupt = Registrierung an CPU Deaktivierung des Hardwareinterrupts  Live-Lock wird vermieden CPU prüft auf neue Pakete nach einigen Zyklen erfolgt Freigabe der Ressource Interrupt wird wieder aktiv geschaltet Event

11 11 Pakete im Linux-Flow Nach dem Stack  Pakete werden je nach Protokoll weitergereicht sk_buff IP TCP SMTP STREAM Sockets RAW DGRAM Anwendung Userspace  Die jeweiligen Sockets arbeiten mit Zeigern Anwendung Userspace Anwendung

12 12 Der Berkeley Packet Filter Einbindung im Kernel Interpreter für Stack nahe Sprache auf Ethernetebene werden an Sockets angehangen kann mittels libpcap kompiliert werden Verwendet Hold und Store-Puffer = Hold = Store Userspace FreeBSD Mechanismus

13 13 PF_Packet und PF_Ring PF_Packet  SOCK_DGRAM und SOCK_RAW  verwendet Berkeley Packet Filter PF_Ring  Erweiterung des PF_Packet Vorteile eines Ringbuffer  fest allokierter Speicher  PF_Ring plugins Ergänzung der Funktionen über Module  Statistiken  Filterregeln

14 14 Netfilter und Iptables Netfilter  Framework  Hooks für Iptables  zwischen Netzwerk-Stack und Sockets Iptables  Tabelle Elemente wie Liste mit Methodenaufrufen Sequentielle Abarbeitung  Aufruf oder Sprung Return bei Aufruf Verbindungsüberwachung  durch NAT

15 15 libpcap C/C++ Bibliothek Zugriff auf Sockets Erstellung von pcap Dateien Plattformübergreifend für Tcpdump entwickelt

16 16 Wireshark / Tshark GUI (Gimp Toolkit GTK+2)  in Tshark nicht enthalten Statistiken sowie Filter und Suchfunktionen Live Capturing Vereinfachung der Filtersyntax Import und Export in verschiedenste Formate Dumpcap dient als Interface oder speichert Datenstrom als Datei eigene Bibliothek: Wiretap Epan: Etherreal Packet Analyzer

17 17 Tcpdump & Co Tcpdump  Kommandozeilen-Tool  libpcap  Selektion und Überwachung Interface oder Datei Dumpcap  gehört zu Wireshark  Erzeugen von Pcap Dateien Snort  Sniffer, Packet Logger und Network Intrusion Detection System  Pakete abgreifen über Sniffer und Logger  erweiterbar durch GUI  unterstützt Tcpdump Format  benötigt Libpcap/WinPcap Ngrep  ähnlich Tcpdump  reguläre Ausdrücke können benutzt werden  kann Berkeley Packet Filter verwenden Netcat  Datenversand und Abgriff über Sockets  dient zur Simulation

18 18 Fazit Richtige Hardware Abgriffspunkt im Netzwerk Linux Kernel bietet viele Ansatzpunkte zum Filtern Viele fertige Angebote  + Plattformübergreifend  - Performance dadurch beeinträchtigt Verwendung der Möglichkeiten je nach Anwendungsfall  spezifische Zusammenstellung

19 19 Ende Vielen Dank für Ihre Aufmerksamkeit Fragen ?

20 20 Quellen Rusty Russell (2000) “Linux Networking-concepts HOWTO” http://www.netfilter.org/documentation/HOWTO/de/n etworking-concepts-HOWTO.html Van Jacobson, Craig Leres and Steven McCanne (2009) “TCPDUMP Manual” http://www.tcpdump.org/tcpdump_man.html Gianluca Insolvibile (2001) “The Linux Socket Filter: Sniffing Bytes over the Network” http://www.linuxjournal.com/article/4659 Gianluca Insolvibile (2002) “Inside the Linux Packet Filter” http://www.linuxjournal.com/article/4852 Alan Cox (1996) “Network Buffers and Memory Management” http://www.linuxjournal.com/article/1312 Paul Gortmaker (2000) “Linux Ethernet-Howto“ http://www.faqs.org/docs/ethernet/Ethernet-HOWTO- 7.html Ulf Lamping (2010) “Wireshark Developer’s Guide for Wireshark 1.7“ http://www.wireshark.org/docs/wsdg_html_chunked/ ChWorksOverview.html M. Tim Jones (2007) “Anatomy of the Linux network stack“ http://www.ibm.com/developerworks/linux/library/l- linux-networking-stack/ Ntop.org (2011) “PF_Ring User Guide v.5.1.0” http://www.ntop.org/support/documentation/ Martin Roesch, Chris Green, Sourcfire (2011) “Snort User Manual 2.9.1” http://manual.snort.org/snort_manual.html Jordan Ritter (2006) “ngrep – network grep” http://ngrep.sourceforge.net/ Giovanni Giacobbi (2006) “The GNU Netcat project“ http://netcat.sourceforge.net/ OpenBSD (2011) “The OpenBSD Packet Filter” http://openbsd.org/faq/pf/filter.html A. Shankar (2004) “Linux Networking” http://geocitiessites.com/asimshankar/notes/linux -networking-napi.html#toc Filesystem Hierarchy Standard (2004) http://www.pathname.com/fhs/ (Abruf am 14.12.2011)

21 21 Information MAC = Media Access Control Verschachtelte Header RSS = Receive Side Scaling kann bei einem Multicoresystem ein Thread pro Core anlegen NAT = Network Address Translation Stack = Stapelspeicher; Zugriff mittels Push und Pop User space = Bereich im virtuellen Speicher für sonstige Applikationen Kernel space = Bereich im virtuellen Speicher nur für Kernel eigene Prozesse und Treiber


Herunterladen ppt "1 Einführung von Linux basierten Ethernet Capturing Technologien von Simon Kallrath Betreuer: Prof. Dr. Volker Sander Dipl. Ing. Volker Kleinfeld."

Ähnliche Präsentationen


Google-Anzeigen