IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Server/Internet/Netzwerk - IPsec-VPN mit OpenSWAN einrichten



IPsec-VPN mit OpenSWAN einrichten

In diesem Artikel wird auf die IPsec Implementierung OpenSWAN eingegangen. An einem Beispiel wird gezeigt wie damit ein VPN eingerichtet werden kann.


Autor: ()
Datum: 09-09-2007, 15:07:32
Referenzen: www.openswan.org
Schwierigkeit: Fortgeschrittene
Ansichten: 18914x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



IPsec ist eine Standardisierung von Protokollen für VPN. Dieser Standard wird plattformübergreifend unterstützt. Ein Linux Implementierung ist OpenSWAN.

Es folgt nun eine Anleitung zum Einrichten einer VPN mit zwei Debian Etch Rechnern (aktueller 2.6er Kernel). Es sollen die lokalen Netze, die sich hinter den beiden Rechner befinden verbunden werden. So sieht der Netzplan der Ausgangssituation aus:

                      --------                   --------       
172.16.0.0/16--(eth0)|gateway1|(eth1)--X--(eth1)|gateway2|(eth0)--192.168.2.0/24
                      --------                   -------- 
Zunächst soll dafür gesorgt werden, dass die Protokolle ISAKMP (UDP Port 500) und ESP (Protokollnummer 50) ein- und ausgehend erlaubt werden. Natürlich soll auch die Kommunikation zwischen den lokalen Netzen freigeschaltet werden. Konkret sie das auf gateway1 so aus:

$ iptables -A INPUT -j ACCEPT -i eth1 -p udp -s gateway2 --sport 500 --dport 500
$ iptables -A OUTPUT -j ACCEPT -o eth1 -p udp -d gateway2 --sport 500 --dport 500
$ iptables -A INPUT -j ACCEPT -i eth1 -p udp -s gateway2 --sport 500 --dport 500
$ iptables -A OUTPUT -j ACCEPT -o eth1 -p udp -d gateway2 --sport 500 --dport 500
$ iptables -A FORWARD -j ACCEPT -i eth0 -o eth1 -s 172.16.0.0/16 -d 192.168.2.0/24
$ iptables -A FORWARD -j ACCEPT -i eth1 -o eth0 -s 192.168.2.0/24 -d 172.16.0.0/16
Und auf gateway2 so:

$ iptables -A INPUT -j ACCEPT -i eth1 -p udp -s gateway1 --sport 500 --dport 500
$ iptables -A OUTPUT -j ACCEPT -o eth1 -p udp -d gateway1 --sport 500 --dport 500
$ iptables -A INPUT -j ACCEPT -i eth1 -p udp -s gateway1 --sport 500 --dport 500
$ iptables -A OUTPUT -j ACCEPT -o eth1 -p udp -d gateway1 --sport 500 --dport 500
$ iptables -A FORWARD -j ACCEPT -i eth0 -o eth1 -s 192.168.2.0/24 -d 172.16.0.0/16
$ iptables -A FORWARD -j ACCEPT -i eth1 -o eth0 -s 172.16.0.0/16 -d 192.168.2.0/24
ISAKMP wird benutzt um einen Schlüssel zum Chiffrieren auszuhandeln. Über ESP werden die Daten chiffriert und transportiert.
Jetzt auf beiden Rechner das Routing einschaltet:

$ echo 1 > /proc/sys/net/ipv4/ip_forward
Dann muss OpenSWAN installiert werden:

$ apt-get install openswan
Diesen Abschnitt in die Datei /etc/ipsec.conf der beiden Rechner eintragen:

conn testvpn
        left=gateway1
        leftsubnet=172.16.0.0/16
        right=gateway2
        rightsubnet=192.168.2.0/24
Der Abschnitt beinhaltet die wichtigsten Parameter zur Definition der VPN. Weiter Optionen finden sich auf der Webseite http://www.openswan.org oder in der Manpage ipsec.conf(5).
Danach wird das Preshared Secret in die Datei /etc/ipsec.secrets beider Rechner eintragen:

gateway1 gateway2: PSK "9sOaDFgC309W90vASjDVP0qu9FAfgdDLJbG0fVDwIck="
Das Preshared Secret wird dabei nicht direkt zum Chiffrieren der übertragenen Daten benutzt. Es dient vielmehr dazu einen sicheren Kommunikationskanal aufzubauen. Über diesen Kanal wird dann ein Schlüssel ausgehandelt mit welchem die übertragenen Daten verschlüsselt werden (aus Leistungsgründen wird symmetrisch Verschlüsselt). Eine Alternative zum Preshared Secret stellt das Zertifikat dar. Das Preshared Secret wurde in diesem Beispiel auf diese Weise erzeugt:

$ openssl rand base64 32
Zum Schluss noch OpenSWAN auf beiden Rechnern neustarten und die VPN ist bereit:

$ ipsec setup --restart
Nun folgen noch ein Paar hilfreiche Kommandos zur Administration. Loggen der Struktur von eingehenden Nachrichten:

$ ipsec whack --debug-parsing
Loggen der Struktur von ausgehenden Nachrichten:

$ ipsec whack --debug-emitting
Loggen aller verfügbaren Informationen:

$ ipsec whack --debug-all
Alle Logmeldungen abstellen:

$ ipsec whack --debug-none
Neueinlesen von ipsec.secrets

$ ipsec auto --rereadsecrets
Kontrollieren der benutzten Zertifikate

$ ipsec auto --listcerts


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0