So sehen Sie ausgehende ESP-Pakete in tcpdump, bevor sie verschlüsselt werden

8

Ich habe ein Setup mit Ipsec Tunnel zwischen zwei Endsystemen. Wenn ich Pakete auf der ausgehenden Schnittstelle, z. B. eth0, feststelle, kann ich nur verschlüsselte ESP-Pakete sehen, die aus meinem System herauskommen. Ich muss gehen und auf das Empfangsende schauen, um zu sehen, was tatsächlich übertragen wurde, d. H. Auf der Empfängerseite kann ich Pakete nach der Entschlüsselung sehen. ähnlich für die Bestätigung durch den Empfänger. Wie funktioniert es eigentlich im Linux Kernel? Gibt es eine Möglichkeit, die Pakete auf der Senderseite in tcpdump zu sehen, bevor sie verschlüsselt werden?

    
user3336687 21.02.2014, 10:24
quelle

2 Antworten

9

Sie haben drei Fragen in Ihrer Frage:

  1. Wie sieht man ausgehende ESP-Pakete in tcpdump, bevor sie verschlüsselt werden?
  2. Wie funktioniert es eigentlich im Linux-Kernel?
  3. Gibt es eine Möglichkeit, die Pakete auf der Senderseite in tcpdump zu sehen, bevor sie verschlüsselt werden?

Die Antwort auf die dritte Frage lautet

Es hängt von Ihrem Kernel und von welcher Implementierung Sie ab. Wenn Sie KLIPS in 2.4 Kernel als Teil einer * Swan-Lösung verwenden, dann Ja.

Andernfalls, wenn Sie den Kernel 2.6 verwenden, der das KAME / * BSD-Modell verwendet, dann

Nein, es sei denn, Sie ändern Ihre Ipssec- oder iptables-Konfiguration, sodass Sie die Pakete unverschlüsselt an eine andere Schnittstelle senden und dann die unverschlüsselten Pakete an eine Schnittstelle weiterleiten, an der sie verschlüsselt werden.

Die Antwort auf die erste Frage ist, ändern Sie Ihre iptables-Konfiguration und IPSec-Konfiguration.

  1. Senden der Daten von einer Schnittstelle an eine andere Schnittstelle auf demselben Host.
  2. Um die Weiterleitung von Daten von dieser zweiten Schnittstelle an Ihr Ziel einzurichten
  3. Konfigurieren Sie die IP-Adresse der zweiten Schnittstelle in der Sicherheitsrichtlinie, um den Tunnel auf der zweiten Schnittstelle zu erstellen.

Auf diese Weise kann tcpdump auf der verschlüsselten Schnittstelle durchgeführt werden, ohne etwas zu ändern und bevor die Daten verschlüsselt werden.

Für den KLIPS und 2.4 Kernel ist es genauso einfach wie spezifisch die Schnittstelle in tcpdump als ipsec0 mit dem -i Schalter.

Andere Optionen, um die Daten unverschlüsselt zu sehen, sind die Verwendung von tcpdump mit -E-Flag und relevanten Parametern ( siehe man Seite ), die die Daten nach der Verschlüsselung entschlüsselt oder tcpdump verwendet, um die verschlüsselten Daten zu erfassen und anschließend in Wireshark zu entschlüsseln (mehr Informationen zur ESP-Entschlüsselung von IPSec in Wireshark finden Sie hier ).

Alternativ können Sie Instrumente mit printk oder printk_times im Quellcode auch in xfrm oder esp_input .

Bezüglich der zweiten Frage gibt es mehrere Bilder, die erklären, wie es auf einer hohen Ebene funktioniert, einschließlich derjenigen, die die Solaris-Implementierung als Teil von Oracle-Systemverwaltungshandbuch: IP-Dienste und Linux Foundation Network Flow durch das Kernel-Diagramm .

Siehe auch die folgende Referenz . Grundsätzlich leitet entweder die manuelle Konfiguration mittels setkey oder die automatische Konfiguration mit einem IKE-Daemon im Userspace die Informationen an den XFRM weiter, der das Paket dann transformiert, bevor es netfilter prerouting erreicht.

Siehe hier für weitere Informationen zum Thema Geschichte von KLIPS und KAME.

    
Appleman1234 28.02.2014 03:14
quelle
0

Angenommen, Sie sind unter Linux:

Mein Ansatz besteht darin, die iptables-Regel mit dem NFQUEUE -Target an der richtigen Stelle in der Verarbeitungspipeline zu platzieren. Dann verwenden Sie tshark mit -i nfqueue , um Pakete zu erfassen.

    
mighq 26.05.2016 14:21
quelle

Tags und Links