Open Source im professionellen Einsatz

© mtrebbin,123RF.com

Linux-IPsec-Software im Interoperabilitätsvergleich

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.

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.

Eigener IPsec-Stack

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].

Mobiler Waschbär

Der Waschbär (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«

path pre_shared_key "/home/nad/Desktop/psk.txt";
remote 192.168.1.2
{
 exchange_mode main;
 proposal
 {
    encryption_algorithm 3des;
    hash_algorithm md5;
    authentication_method pre_shared_key;
    dh_group modp1024;
  }
}
sainfo address 192.168.1.1 any address 192.168.1.2 any
{
  pfs_group modp768;
  encryption_algorithm 3des;
  authentication_algorithm hmac_md5;
  compression_algorithm deflate;
}
sainfo address 192.168.1.2 any address 192.168.1.1 any
{
 pfs_group modp768;
 encryption_algorithm 3des;
 authentication_algorithm hmac_md5;
 compression_algorithm deflate;
}

Listing 2:
»setkey.conf«

#!/usr/sbin/setkey -f
# Leeren der SAD und der SPD
flush;
spdflush;
# Policies für racoon
spdadd 192.168.1.1 192.168.1.2 any -P out ipsec
 esp/transport//require
 ah/transport//require;
spdadd 192.168.1.2 192.168.1.1 any -P in ipsec
 esp/transport//require
 ah/transport//require;

Listing 2:
»psk.txt«

# Passwort für Host A
192.168.1.2     1234

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook