Sophos Firewall Cookbook: tcpdump

Unter dem Titel “Sophos Firewall Cookbook” stellen wir Euch Tipps, Tricks und HowTo’s bereit die die Anwendung der Sophos Firewall im täglichen Umgang leichter machen können. Das heutige Thema im Sophos Firewall Cookbook: tcpdump.

Einleitung

tcpdump ist ein CLI Tool mit dem man ein- und/oder ausgehende Daten auf Netzwerkebene erfassen kann. Gerne nennen man solche Tools auch Paket-Sniffer. Wer in die Textausgabe tiefer einsteigen möchte, kann die Ausgabe auch in eine .pcap Datei umleiten. Diese lässt sich dann zum Beispiel in Wireshark öffnen.

Eine etwas abgespeckte aber auch nicht zu vernachlässigende Variante von tcpdump findet Ihr auch in der Firewall WebUI unter dem Punkt “Paket Capture”. Oft reicht auch diese Variante. In einigen Analysefällen kommt man aber nicht um das “echte” tcpdump herum.

Nicht nur TCP!

Der Name von tcpdump ist irreführend. Das Tool kann nicht nur TCP, sondern auch UDP und ICMP Pakete mitschneiden!

Im Folgenden liste ich einige tcpdump Kommandos und Optionen auf, welche ich in der Vergangenheit häufiger benutzt habe. Ergänzungen sind gerne gesehen!

Basics in tcpdump

Zunächst ein paar Basic Zeilen die in den meisten Fällen ausreichend sind. Die Bedingungen lassen sich mit and/or beliebig verknüpfen. Host und Port Filter dürfen mehrfach vorkommen.

Alles auf Port3 (Quelle oder Ziel), Host 192.168.1.2 (Quelle oder Ziel) und Port 443 (Quelle oder Ziel)
tcpdump -envi Port3 host 192.168.1.2 and port 443
Alles auf Port3 (Quelle oder Ziel), Quell-Host 192.168.1.2 und Ziel-Port 443
tcpdump -envi Port3 src host 192.168.1.2 and dst port 443
Alles auf Port3, Host 192.168.1.2 und ICMP/Ping
tcpdump -envi Port3 host 192.168.1.2 and icmp
DHCP Traffic auf Port3
tcpdump -envi Port3 port 67 or port 68
Filter auf eine Portrange
tcpdump -envi Port3 host 192.168.1.2 and portrange 21-23
Filter auf ein Subnetz statt nur einen Host
tcpdump -envi Port3 net 192.168.1.0/24
tcpdump -envi Port3 dst net 192.168.1.0/24
Filter auf MAC Adresse anstatt IP
tcpdump -envi Port3 ether src aa:aa:aa:aa:aa:aa
tcpdump -envi Port3 ether host bb:bb:bb:bb:bb:bb
LACP Pakete anzeigen
tcpdump -ni Port3 -e ether proto 0x8809

Verkettung von and/or Bedingungen in tcpdump

Manchmal reichen die Basic-Kommandos nicht aus. Es wird einfach zu viel ausgebeben und die Ausgabe ist nicht wirklich lesbar. Mit “and/or und Klammern” lassen sich ganz einfach Verkettungen in den Filter einfügen. Wichtig ist hier, dass der Filter String in einfache Anführungszeichen (‘) gesetzt wird. Ansonsten ist die Ausgabe falsch oder das Kommando wird nicht akzeptiert.

Einer der DHCP Server (192.168.1.1 oder 192.168.1.2) UND (einer der DHCP Ports)
tcpdump -envi Port3 '(host 192.168.1.2 or host 192.168.1.1) and (port 67 or port 68)'
Ein Quell Netz und (Zielnetz1 oder Zielnetz2)
tcpdump -envi Port3 'src net 1.1.1.0/24 and (dst net 1.1.2.0/24 or dst net 1.1.3.0/24)'

Ausgabe tcpdump in eine pcap Datei

Soll die Ausgabe von tcpdump später analysiert werden wie zum Beispiel in Tools wie Wireshark, dann muss die Ausgabe in eine Datei umgelenkt werden.

Ausgabe in eine Datei “/tmp/data/tcpdump_Port3.pcap” (STRG+C zum Abbrechen nötig)
tcpdump -envi Port3 -b -w /tmp/data/tcpdump_Port3.pcap net 192.168.119.0/24 and dst port 443

Achtung

Der folgende Befehl läuft im Hintergrund auch bei geschlossener SSH Sitzung bis zum manuellen Abbruch!
Dadurch kann die Festplatte voll laufen. Je nach Anwendungsfall bitte das übernächste Bespiel nutzen!
Es können mehrere Dump parallel laufen.

tcpdump im Hintergrund laufen lassen bis zum Abbruch
# Dump läuft auch bei geschlossener SSH Sitzung weiter
tcpdump -envi Port3 -b -w /tmp/data/tcpdump_Port3.pcap net 192.168.119.0/24 and dst port 443 &
# tcpdump beenden. Dies beendet ALLE laufenden tcpdump Sitzungen
killall tcpdump

Bessere Variante

Besser ist es eine Umlaufprotokollierung zu nutzen. So wird nur eine definierte Mende Daten geschrieben und beim Erreichen wieder überschrieben.
Im folgenden Beippiel werden 30 Dateien á 30 Megabyte geschrieben (30 * 30 MB = 900 MB). Der freie Platz sollte dennoch auch hier vorher geprüft werden!

-C = Dateigröße
-W = Anzahl der Dateien

Es können mehrere Dump parallel laufen.

Bash
# Dump mit Umlaufprotokollierung laufen lassen
nohup tcpdump -C 30 -W 30 -w /tmp/data/tcpdump_Port3.pcap -envi Port3 host 155.56.210.164 -s0 -b &
# tcpdump beenden. Dies beendet ALLE laufenden tcpdump Sitzungen
killall tcpdump

Download der pcap Dateien

Download über HTTPS

Vorsicht

Der Download über HTTPS ist mit Vorsicht durchzuführen. Linux Kenntnisse wären wünschenswert da bei falscher Verwendung ggf. ein Schaden am System entstehen könnte!

Wir übernehmen keinerlei Haftung für möglich Schäden!

  1. Verzeichnis “/” schreibend mounten
    mount -w -o remount /
  2. Dump in WebUI Pfad kopieren (Speicherplatz beachten!)
    cp /tmp/data/tcpdump.pcap /usr/share/userportal/tcpdump.pcap
  3. Dump über Browser laden (Management über TCP 4444 muss erreichbar sein)
    https://<XG Firewall IP:4444>/tcpdump.pcap
  4. Datei von Firewall löschen
    rm -rf /usr/share/userportal/tcpdump.pcap
  5. Verzeichnis “/” lesend mounten
    mount -r -o remount /

Download über WinSCP

Einfach über ein SFTP Programm (z.B. WinSCP) auf die Firewall verbinden. Dazu den Benutzer “admin” und das zugehörige Passwort nutzen. Der SSH Zugriff muss dazu erlaubt sein.
Die Datei aus dem Verzeichnis /tmp herunterladen

Upload von Firewall auf externen FTP Server

Habt ihr einen externen FTP Server, kann der Dump auch direkt von der CLI hochgeladen werden.

FTP Upload (Hier eine Liste von Dateien)
curl --ftp-ssl ftp://FTP-SERVER -u username:password -v -T {/tmp/capture_out.pcap,/tmp/capture_in.pcap}

Weitere tcpdump Parameter

Hier liste ich noch ein paar weitere Parameter oder ihre Bedeutung auf. Eine vollständige Liste lässt sich hier einsehen. Möglichweise sind nicht alle Parameter die auf de Webseite gelistet sind in der Sophos Shell verfügbar da Sophos seine Shell-Kommandos teilweise eingeschränkt hat.

  • -c count
    Exit after receiving count packets
  • -n
    Don’t convert addresses (i.e., host addresses, port numbers, etc.) to names.
  • -v / -vv / -vvv
    Detaillevel of content
  • -tttt
    Zeitstempel in den Ausgaben. Bei Ausgabe in Dateien ist dieser bereits enthalten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


WordPress Cookie Plugin von Real Cookie Banner