IPsec im Linux-Kernel

10023
Catalin Vasile

Ich habe einige Probleme (Fragen) in Bezug auf die Linux Kernel-Implementierung von IPsec und dessen Benutzeroberfläche.

  1. Die größte Frage ist, welches das eigentliche offizielle Projekt für die Implementierung von Linux Kernel IPsec ist. Von dem, was ich verstanden habe, ist die Implementierung eine Abzweigung des Kame-Projekts, aber ein Freund sagte, dass dies nicht stimmt. Welches sind ihre offizielle Website und Repo?
  2. Wo finde ich in der Kernel-Dokumentationsquelle verwandte Hinweise?
  3. Welches User-Space-Frontend wird hauptsächlich verwendet? ip-tools oder das iproute2-paket? Haben diese beiden den gleichen Ansatz oder einer von ihnen hat einen größeren Aufwand?
  4. Wie 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 Paket iproute2 verwendet, oder wurde ich irregeführt? Ist "setkey" von ip-tools mit "racoon" verklebt oder handelt es sich um eine allgemeine Anwendung zum Laden von Konfigurationen? Was macht "setkey" eigentlich (ich bin darüber sehr verwirrt)?
7

1 Antwort auf die Frage

15
ecdsa
  1. Der seit 2.6 (NETKEY) im Linux-Kernel integrierte IPsec-Stack basierte ursprünglich auf dem KAME-Stack (zumindest in Bezug auf die API). Der Quellcode ist Teil des Kernel-Repositorys, in dem sich die Hauptkomponenten im net/xfrmOrdner befinden, einschließlich der Implementierung der Netlink / XFRM-Konfigurationsschnittstelle. Die alternative und standardisierte (aber etwas erweiterte) Implementierung der PF_KEYv2-Schnittstelle befindet sich im net/keyOrdner.
  2. Es gibt nicht viele Unterlagen. Aber überprüfe den Documentation/networkingOrdner.
  3. Wenn Sie die IPsec-Sicherheitszuordnungen und Richtlinien manuell konfigurieren (manuelles Keying), würde ich iproute2 empfehlen . Es verwendet die leistungsfähigere Netlink / XFRM-Schnittstelle und das Paket wird standardmäßig von den meisten Distributionen installiert. Normalerweise verwenden Sie jedoch die automatische Schlüsselung, die von einem IKE- Dämon von Benutzern wie strongSwan, Open / libreswan oder racoon (ipsec-tools) bereitgestellt wird. Auf diese Weise müssen Sie keine Sicherheitszuordnungen und Richtlinien manuell installieren, und Sie erhalten ephemere Verschlüsselungs- / Integritätsschlüssel via IKE über Diffie-Hellman gegründet. Eine regelmäßige automatische Aushandlung neuer Schlüssel, die als Umschlüsselung bezeichnet wird, ist ebenfalls möglich.
  4. setkeydurch das zur Verfügung gestellt wird, IPSec-tools Paket für manuelle Eingabe, gibt es keine Beziehung zum iproute2 Paket. Mit iproute2 würden Sie den ip xfrmBefehl verwenden, um SAs und Richtlinien manuell zu konfigurieren. Beide Befehle interagieren direkt mit SAD und SPD (siehe RFC 4301 ) im Kernel, um IPSec-Sicherheitszuordnungen und -Richtlinien manuell zu verwalten. setkeyverwendet, wie auch racoonandere BSD-basierte Tools, die Schnittstelle PF_KEYv2 und ist daher weniger leistungsfähig als der ip xfrmBefehl. Erweiterte Sequenznummern oder -marken können beispielsweise nicht mit PF_KEYv2 unter Linux konfiguriert werden.