
Ich habe einige Probleme (Fragen) im Zusammenhang mit der Implementierung von IPsec im Linux-Kernel und seiner Benutzerschnittstelle.
- Die größte Frage ist, welches das eigentliche offizielle Projekt für die Linux-Kernel-IPsec-Implementierung ist. Soweit ich verstanden habe, handelt es sich bei der Implementierung um einen Fork des Kame-Projekts, aber ein Freund meinte, das sei nicht wahr. Welches sind ihre offizielle Website und ihr offizielles Repo?
- Wo in der Kernel-Dokumentationsquelle finde ich entsprechende Hinweise?
- Welches User-Space-Frontend wird am häufigsten verwendet? ip-tools oder das iproute2-Paket? Verfolgen diese beiden den gleichen Ansatz oder hat eines von beiden einen größeren Overhead?
- Soweit ich gesehen habe, beziehen sich die Tutorials für den IPsec-Transportmodus von iproute2 auf das Dienstprogramm „setkey“ zum Laden der Konfigurationsdatei. Wird „setkey“ tatsächlich für das iproute2-Paket verwendet, oder wurde ich irregeführt? Ist „setkey“ an „racoon“ von ip-tools angehängt, oder ist es eine allgemeine Anwendung zum Laden von Konfigurationen? Was macht „setkey“ eigentlich (das verwirrt mich sehr)?
Antwort1
- Der seit 2.6 im Linux-Kernel integrierte IPsec-Stack (NETKEY) basierte ursprünglich auf dem KAME-Stack (zumindest in Bezug auf die API). Der Quellcode ist Teil desKernel-Repository, in dem die Hauptkomponenten im
net/xfrm
Ordner zu finden sind, einschließlich der Implementierung der Netlink/XFRM-Konfigurationsschnittstelle. Die alternative undstandardisiertDie (aber etwas erweiterte) Implementierung der PF_KEYv2-Schnittstelle befindet sich imnet/key
Ordner. - Es gibt nicht viel Dokumentation. Aber sehen Sie sich den
Documentation/networking
Ordner an. - Wenn Sie die manuelle Konfiguration von IPsec SAs und Richtlinien (manuelles Keying) durchführen, empfehle ichiproute2. Es verwendet die leistungsfähigere Netlink/XFRM-Schnittstelle und das Paket wird von den meisten Distributionen standardmäßig installiert. Normalerweise verwendet man jedoch die automatische Verschlüsselung, die von einem Userland bereitgestellt wird.IKEDaemon wie strongSwan, Open/libreswan oder racoon (ipsec-tools), so dass Sie SAs und Richtlinien nicht manuell installieren müssen und während des IKE über Diffie-Hellman erstellte temporäre Verschlüsselungs-/Integritätsschlüssel erhalten. Auch eine regelmäßige automatische Aushandlung neuer Schlüssel, die als Rekeying bezeichnet wird, ist möglich.
setkey
wird bereitgestellt durch dieIPSec-ToolsPaket für manuelle Eingabe, es besteht kein Bezug zumiproute2Paket. Mitiproute2Sie würden den Befehl verwenden,ip xfrm
um SAs und Richtlinien manuell zu konfigurieren. Beide Befehle interagieren direkt mit SAD und SPD (sieheRFC 4301) im Kernel, um IPsec-SAs und -Richtlinien manuell zu verwalten. verwendetsetkey
wieracoon
und andere BSD-basierte Tools die Schnittstelle PF_KEYv2 und ist daher weniger leistungsfähig als derip xfrm
Befehl. Beispielsweise können erweiterte Sequenznummern oder Markierungen unter Linux nicht mit PF_KEYv2 konfiguriert werden.