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).
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;
}
|
#!/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;
|
# Passwort für Host A
192.168.1.2 1234
|
« Zurück
1
2
3
4
5
Weiter »