Linux-IPsec-Software im Interoperabilitätsvergleich

© mtrebbin, 123RF.com

Querbeet

,
Beim Tunnelgraben mit IPsec hat der Admin mit Racoon, Isakmpd, Open- und Strongswan die Wahl aus vier Implementierungen. Der Artikel beleuchtet die Unterschiede und zeigt, wer in puncto Interoperabilität mit Microsofts und Ciscos IPsec-Varianten das Schnäuzchen vorn hat.
Immer größere Datenmassen sicher zu speichern ist eine Herausforderung für jede IT-Infrastruktur. Schon mit Gigabit-Ethernet lassen sich aber ... (mehr)

IPsec ist kompliziert und schwer zu durchschauen, so heißt es. Vor allem in heterogenen Netzen scheitere die Konfiguration schon an den verschiedenen Implementierungen der Hersteller. Wer betriebssystemübergreifend tunneln will, müsse mit Engelsgeduld ausgestattet sein und viele Hindernisse aus dem Weg räumen. Ob dem so ist und welche Konfigurationen funktionieren, haben eine Master Thesis am Technikum Wien und dieser Artikel untersucht.

Seit Kernel 2.6 kommt Linux mit einem eigenen IPsec-Stack daher, im manuellen Verfahren angestoßen vom Programm »setkey« . Optionale Software wie die »ipsec-tools« [1] befüllen die IPsec-Datenbanken Security Association Database (SAD) und Security Policy Database (SPD) mit den notwendigen Daten und sichern anhand dieser Security Policies den Datenverkehr zwischen den definierten Kommunikationspartnern.

Um den Austausch der in der Praxis verwendeten Kennwörter (Pre Shared Keys, PSK), digitalen Signaturen oder Zertifikaten sicher zu automatisieren, gibt es das standardisierte Verfahren des Internet-Key-Exchange-Mechanismus (IKE, [2]), das wegen seiner Komplexität in der Vergangenheit immer wieder für Aufregung und Diskussionen sorgte. Für IPsec mit IKE gibt es unter Linux vier Open-Source-Lösungen, von denen eine, Strongswan, auch die neueste, übersichtlichere Version IKEv2 beherrscht [3].

Der erste Kandidat, Racoon [1], war ursprünglich ein Teil des KAME-Projekts, in dem sich Ende der 90er Jahre sechs japanische Unternehmen verbündeten, um einen freien Stack für IPv6 und IPsec zu entwickeln. Er ist direkt in den IPsec-Tools integriert und stellt einen IKE-Daemon zur Verfügung, der alle gängigen Verschlüsselungs- und Datenintegritätsverfahren wie 3DES, Xauth, AES und MD5 beherrscht. An IKEv2 arbeiten die Entwickler des Forks Racoon2 [4].

Racoon kann auch Verbindungen mit einem so genannten Roadwarrior herstellen und diesem über das Mode-Configuration-Verfahren Einstellungen übermitteln. Roadwarrior sind Netzwerkelemente, deren IP-Adressen den Gateways anfangs unbekannt sind. Er muss dafür auf fremde Clients reagieren können und prüft deren Identität und Rechte nicht anhand der IP, sondern über X.509-Zertifikate und Kennwörter. Der Laptop eines Außendienstlers, der von Kunde zu Kunde fährt und sich aus deren Netzen in die Zentrale einwählt, ist ein typischer Roadwarrior, wie auch der heimische DSL-Anschluss, der täglich eine neue IP-Adresse erhält.

Die Konfiguration von Racoon ähnelt einer C++-Struktur und findet in drei Dateien statt (Listings 1 bis 3). In »racoon.conf« (Listing 1) beschreiben zwei Blöcke zuerst den Kommunikationspartner und dann die zu verwendenden Sicherheitsparameter für die IPsec-Verbindung. Die Security Policies liegen in »setkey.conf« (Listing 2), den Pre-Shared-Key (PSK) speichert in diesem Beispiel die Datei »psk.txt« (Listing 3).

Listing 1

racoon.conf für PSK

 

Listing 2

setkey.conf

 

Listing 3

psk.txt

 

Flexibel

Racoon beherrscht Main, Agressive und Base Mode der IKE-Phase 1, kann Authentifizierung über PSK, X.509-Zertifikate, Kerberos und Xauth einbinden und bietet alle gängigen Verschlüsselungsalgorithmen an (unter anderem DES, 3DES, AES, Blowfish, Twofish, Cast). Für die Integritätsprüfung bringt es MD5, SHA1, SHA2-256, SHA2-385 und SHA2-5 mit, Diffie-Hellman und Perfect Forward Secrecy (PFS) sind auch an Bord.

Racoon funktioniert zwischen Linux-Rechnern einfach und unkompliziert, einen erfolgreichen Verbindungsaufbau mit X.509 und Xauth zeigt Abbildung 1. Mit der Cisco-Implementierung ließ sich allerdings im Test keine Verbindung herstellen, sobald Xauth ins Spiel kam. Darüber hinaus machen Versionen vor 0.7.1 Probleme beim Laden der korrekten Security Associations.

Abbildung 1: Erfolgreiche IPsec-Verbindung von Racoon mit X.509-Zertifikaten.

Keine Schwäne

Nur oberflächlich erweisen sich die Linux-IPsec-Entwickler als tierlieb. Mit Schwänen haben Implementierungen, die aus dem eingestellten Freeswan-Projekt hervorgegangen sind, nichts zu tun. Mit Openswan [5] und Strongswan [6] haben sich zwei sehr ähnliche Varianten entwickelt, wobei die Abkürzung SWAN für Secure Wide Area Network steht.

Wie Racoon bieten beide Implementierungen einen IKE-Daemon mit allen nötigen Verschlüsselungssystemen und Support für Roadwarrior inklusive Xauth und Mode Configuration an.

Die Konfiguration für beide Systeme ähnelt sich sehr stark und unterscheidet sich nur in wenigen Punkten, zum Beispiel bei den Startkommandos und -Parametern des Daemon.

Am bedeutendsten ist noch, dass Openswan derzeit noch kein IKE in Version 2 beherrscht. Strongswan hingegen punktet mit der ersten Open-Source-Implementierung von IKEv2, Openswan dafür mit dem Aggressive Mode, der beim Verbindungsaufbau die Protokolldaten verringert und so den Aufbau beschleunigt. Ein detaillierter Vergleich der Features beider Implementierungen findet sich im Wiki der Openswan-Webseite [6]. Auffällig: Openswan läuft auch auf Windows, diversen BSDs, unterstützt Mac OS X und beherrscht Xauth via PAM.

Listing 4 zeigt eine typische Openswan-Konfiguration mit in der Datei »ipsec.conf« gespeicherten RSA-Keys. Ob Tunnel- oder Transportmodus, PSK oder Zertifikate, der Admin findet alle Informationen an einem Ort. Das Gleiche gilt für Strongswan: Listing 5 zeigt eine X.509-Konfiguration für einen Roadwarrior. Sowohl Racoon als auch beide Swan-Implementierungen glänzten unter Linux durch herausragende Interoperabilität und bescherten den Testern erfolgreiche Verbindungen.

Listing 4

Openswan-Konfiguration mit RSA-Keys in ipsec.conf

 

Listing 5

Strongswan: ipsec.conf für RoadwarriorKeys

 

comments powered by Disqus

Artikel der Woche

Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018