|
|
Virtual Private Network unter Linux: FreeS/WAN, IPsec Diese Texte wurden im Rahmen der "AK4 der technischen Informatik: Entwurf, Errichtung und Betrieb von Datennetzen" am Institut für Informationssysteme der Technischen Universität Wien im Sommersemester 1999 verfaßt. FreeS/WAN für Linux Markus Mazanec Was ist FreeS/WAN? FreeS/WAN ist eine Softwarelösung, welche die Installation von Virtual Private Networks mit Hilfe von Linux-Rechnern als Gateways erlaubt. Wie der Großteil der für Linux geschriebenen Software, unterliegt FreeS/WAN der GNU Public License und kann somit kostenlos verwendet werden. Die Sourcen können über das Internet bezogen werden (tar.gz-Datei). FreeS/WAN ist eine (noch unvollständige ) IPSEC-Implementierung, wobei die krypthographischen Teile der Software außerhalb der USA programmiert wurden und damit nicht den US-Exportrestriktionen unterliegen. Schlüsselverwaltung Zurzeit werden die manuelle Schlüsselverwaltung (dabei werden die Schlüssel direkt in der Konfigurationsdatei gespeichert) und der automatische Schlüsselaustausch über Pluto, einer Implementierung des Internet Key Exchange (IKE)-Protokolls, unterstützt. Nicht unterstützt werden die in IPSEC vorgesehen Methoden Public Key Infrastructure (PKI) oder secure DNS. Verschlüsselung Neben den von IPSEC geforderten (aber unsicheren) Algorithmen null encryption transform und DES implementiert FreeS/WAN TripleDES. Authentifizierung Die Authentifizierung erfolgt mit den Message Digest Algorithmen Message Digest 5 (MD5) oder Secure Hashing Algorithmus (SHA). Installation/Integration Teile des Programms sind Ergänzungen des Kernels, von dem eine eigene Version für FreeS/WAN kompiliert werden muss. Leider arbeitet FreeS/WAN nicht mit den 2.2.x-Versionen des Linux-Kernels zusammen, unabhängig davon, ob die (experimentelle) IPv6-Unterstützung aktiviert wird oder nicht. Man ist gezwungen. auf die Version 2.0.36 zurückzugreifen. Diese Einschränkung lässt sich allerdings verschmerzen, da es sich dabei um eine ausgesprochen stabile und sichere Kernelversion handelt. FreeS/WAN wird entpackt und installiert. Nach dem Starten der Kernelkonfiguration findet man folgende Merkmale ausgewählt vor: IP: forwarding/gatewayingZusätzlich kann man noch IP: optimize as router not host aktivieren, falls der Rechner hauptsächlich als Router eingesetzt werden soll. Als neuer Punkt (verglichen mit einer 2.0.36 Standardauswahl) in der Auswahl erscheint IP Security Protocol (IPSEC), das natürlich aktiviert wird. Daraufhin wird die Konfiguration gespeichert und ein neuer Kernel übersetzt. Nach einem Neustart stehen die hinzugefügten Merkmale zur Verfügung. Bevor eine sichere Übertragung erfolgen kann, müssen allerdings noch in der Datei /etc/ipsec.conf die Einstellungen für den zu errichtenden Tunnel konfiguriert werden. Die für die Authentifizierung beim Schlüsselaustausch maßgeblichen Informationen ("shared secrets") werden in der Datei /etc/ipsec.secrets abgelegt. ipsec.conf Ein typischer Eintrag der Konfigurationsdatei sieht wie folgt aus: conn demo type=tunnelMit conn kann der konfigurierten Verbindung ein Name zugewiesen werden. Die meisten Verbindungsparameter sind paarweise (für jedes Ende des Tunnels) anzugeben. left gibt das Interface des Gateways an, über das die Verbindung mit dem anderen Gateway hergestellt wird. leftnexthop gibt an, über welchen Router right erreicht werden kann. Bei einer direkten Verbindung von left mit right entfällt dieser Parameter. leftsubnet spezifiziert die IP-Adressen, die von left geschützt werden. leftfirewall=yes aktiviert die Maskierungsfunktionen des Gateways, für den Fall, dass ein Subnet mit nicht routbaren IP-Adressen angeschlossen ist). right... analog zu left.... spibase definiert die Basis für die Nummerierung des Security Parameter Index, ohne den mehrere Verbindungen zwischen left und right nicht unterschieden werden könnten. esp gibt an, welcher Verschlüsselungsalgorithmus verwendet werden soll. espenckey bestimmt die Länge des Schlüssels zur Verschlüsselung. espauthkey bestimmt die Länge des Schlüssels zur Authentifizierung. Über keyexchange kann der Algorithmus ausgewählt werden, der für den Schlüsselaustausch herangezogen wird. keylife ist die Lebensdauer eines Schlüssels. Anstelle der IP-Adressen können auch Namen verwendet werden. Das verringert allerdings die Sicherheit, da ein Angriff über eine feindliche DNS-Auflösung möglich wird. ipsec.secrets In dieser Datei werden die "shared secrets" für die Authentifizierung beim Diffie-Hellman Schlüsselaustausch des IKE Protokolls abgelegt. Jede Zeile enthält dabei eine Gateway-IP-Adresse und das zugehörige "secret". FreeS/WAN enthält ein Tool, mit dessen Hilfe "secrets" erstellt werden können. Diffie-Hellman Schlüsselaustausch: Beide Dateien, ipsec.conf und ipsec.secrets, müssen auf den betroffenen Gateways abgelegt werden (zumindest die Abschnitte der für das jeweilige Gateway relevanten Verbindungen). Es ist darauf zu achten, dass der Transfer dieser Dateien gesichert erfolgt (outband oder verschlüsselt). Kompatibilität Linux-FreeS/WAN-Gateways kooperieren nicht nur mit anderen Linux-FreeS/WAN-Gateways, sondern wurden auch mit folgenden Systemen erfolgreich getestet: OpenBSD, Cisco Router, Raptor Firewall/WinNT, Xedia Access Point/QVPN, PGP 6.5 Mac/Windows IPSEC Client Literatur [1] Gilmore, J., et al., "FreeS/WAN", http://www.xs4all.nl/~freeswan [2] Murhammer, M., T. Bourne, T. Gaidosch, Ch. Kunzinger, L. Rademacher, A. Weinfurter, "A Comprehensive Guide to Virtual Private Networks, Volume I: IBM Firewall, Server and Client Solutions", http://www.redbooks.ibm.com/ IPSEC Markus Mazanec Leistungen IPSEC stellt Sicherheitsfunktionen auf dem Internet Protocol (IP)-Niveau zur Verfügung. Es übernimmt die Authentifizierung und/oder Verschlüsselung übertragener Pakete. In IPv6 ist IPSEC fester Bestandteil, zu IPv4 kann es optional ergänzt werden. Struktur Die Security-Gateways agieren als Kommunikationsgateways, die vertrauenswürdige Netze über unsichere Strecken verbinden und den Rechnern in diesen Netzen die sichere Datenübertragung ermöglichen. Da IPSEC auf IP-Niveau arbeitet, geschieht diese Sicherung völlig transparent für die beteiligten Arbeitsstationen und Server. Alle Security-Gateways besitzen für die Security-Gateways mit denen sie in Verbindung stehen so genannte "Security Associations", welche die Parameter für die gesicherte Verbindung enthalten. Security Associations Security Associations bilden das fundamentale Konzept von IPSEC. Sie definieren, wie ein Security-Gateway eine Verbindung zu einem anderen Gateway aufbauen und halten soll. Eine Kombination aus der Zieladresse und dem Security Paramter Index (SPI) identifizieren eine Security Association (SA). Über die Zieladresse ermittelt das sendende Security Gateway die passende Zieladresse und den zugehörigen SPI. Das empfangende Gateway ermittelt ebenfalls über diese Daten die zugehörige SA. Es ist zu beachten, dass SAs für eine Richtung definiert werden, d.h. für eine bidirektionale Verbindung zwei SAs erforderlich sind (für jede Richtung ein eigener SPI). Jede SA enthält folgende Daten:
Die Authentifizierung über den Authentication Header (AH) stellt die Integrität und den Ursprung der Daten sicher und schützt vor Replay-Attacken. Bei der Authentifizierung werden zwei Modi unterschieden: der Transport Mode und der Tunnel Mode. Im Transport Mode entspricht der physische Empfänger dem inhaltlichen Adressaten, im Tunnel Mode wird das Paket vom physischen Empfänger (Gateway) an den inhaltlichen Adressaten weitergeleitet. Transport Mode: Tunnel Mode: In beiden Varianten werden alle Felder authentifiziert. Am häufigsten kommt Message Digest 5 (MD5) als Algorithmus zum Einsatz. Aufbau des Authentication Headers: Verschlüsselung Encapsulating Security Payload (ESP) stellt die Vertrauenswürdigkeit, Integrität und den Ursprung der übertragenen Daten sicher. Zusätzlich schützt es vor Replay-Attacken und verhindert im Tunnel Mode die Verkehrsanalyse. Mittels Padding lässt sich die tatsächliche Menge übertragenen Nutzinformationen verschleiern. Auch bei der Verschlüsselung wird zwischen einem Transport und Tunnel Mode unterschieden. Transport Mode: Tunnel Mode: Aufbau des ESP Headers: Digital Encryption Standard (DES) im Cipher Block Chaining (CBC) Mode: Aufbau des ESP Trailers: Aufbau des ESP Authentication Teils: Über die Kombination von AH mit ESP kann eine verschlüsselte Übertragung bei gleichzeitiger Authentifizierung jedes gesamten Pakets erreicht werden. Literatur [1] Atkinson, R., "Security Architecture for the Internet Protocol", RFC 1825, http://www.rfc.net/rfc1825.txt [2] Atkinson, R., "IP Authentication Header", RFC 1826, http://www.rfc.net/rfc1825.txt [3] Atkinson, R., "IP Encapsulating Security Payload", RFC 1827, http://www.rfc.net/rfc1827.txt [4] Schneier, B., "Applied Cryptography", Wiley, 1996 [5] Gruska, J., "Foundations of Computing", International Thomson Computer Press, 1997 [6] Salomaa, A., "Public-key cryptography", Springer-Verlag, 1991 |
||||||||||||