Intranator VPN mit SuSE 9.3
Einleitung
Dieser Text beschreibt, wie man zwischen einem Intranator und einem Linux-Rechner mit SuSE Linux 9.3 (und vermutlich auch Nachfolger) ein VPN aufbauen kann.
Voraussetzungen
- Intranator Software oder Intranator Appliance als Gegenstelle
- SuSE-Linux 9.3 (SuSE93)
- openswan-2.2.0-12 & Abhängigkeiten (wird auf SuSE 9.3 mitgeliefert)
- openssl-0.9.7e-3.2 & Abhängigkeiten (ebenfalls bei SuSE dabei), falls man noch keinen private X.509-Key bzw. ein entsprechendes Zertifikat hat
1. Schlüsselerzeugung
Wer bereits ein X509-Schlüsselpaar besitzt, kann diesen Abschnitt auch überspringen. Zur Schlüsselerzeugung mittels openssl können Sie auf der openssl-Homepage die entsprechenden HowTos lesen:
1.1. Schlüsselerzeugung
Um einen (RSA) Schlüssel zu erzeugen, gibt man folgendes Kommando ein:
openssl genrsa -out privkey.pem 2048
Das erzeugt einen 2048 Bit langen RSA Key, den man zum Signieren und zum Verschlüsseln verwenden kann und der nicht durch ein Paßwort geschützt ist. Da wir den Schlüssel in einer Serverumgebung einsetzen, ist dies erforderlich, weil bei jedem Zugriff auf den Key ansonsten das Paßwort eingegeben werden müßte.
1.2 Zertifikaterzeugung
Nachdem wir nun den privaten Schlüssel erzeugt haben, können wir ein selbstsigniertes Zertifikat erstellen mittels:
openssl req -new -x509 -key privkey.pem -out cert.pem -days 1095
Dies erstellt ein selbstsigniertes x509 Zertifikat, das 1095 Tage gültig ist.
1.3 Kopieren des RSA-Keys und des zugehörigen Zertifikats
Nachdem nun Schlüssel und Zertifikat erstellt wurden, müssen diese an die richtige Position für unsere spätere Konfiguration kopiert werden, und zwar nach
/etc/ipsec.d/keys/private/
Falls dieses Verzeichnis noch nicht existiert, legen Sie es einfach an.
1.4 Anzeigen des Inhaltes des Zertifikates
openssl x509 -text -noout -in SCHLUESSELNAME
2. Schlüsselaustausch zwischen Intranator und Linux-Rechner
Nachdem man nun die notwendigen lokalen Schlüssel erzeugt hat, kann man die öffentlichen Schlüssel austauschen. Hierzu wählt man auf dem Intranator unter dem Menüpunkt System -> Schlüssel -> Eigene Schlüssel den gewünschten privaten Intranator-Schlüssel aus, klickt auf den Reiter Daten und wählt dann Zertifikat exportieren aus. Diesen Schlüssel speichert man unter /etc/ipsec.d/certs/intranator.pem ab.
Nun muß man dem Intranator den eigenen öffentlichen Schlüssel übermitteln. Hierfür wählt man auf dem Intranator unter System -> Schlüssel -> Fremde Schlüssel den Button Neu, trägt einen noch nicht belegten Namen in das Feld Name ein und fügt das zuvor erstellte Zertifikat via Copy & Paste ein (es ist zu beachten, daß am Ende keine Leerzeile im Textfeld erscheinen darf!).
3. VPN-Konfiguration auf Seite des Intranators
Nun muß man auf der Seite des Intranators das VPN konfigurieren. Hierzu wählt man unter Dienste -> VPN -> Verbindungen den Button Neu, um ein neues VPN-Profil zu erzeugen.
In Namen des Profils trägt man einen noch nicht benutzten Namen ein (im vorliegenden Fall paranoid), wählt den gewünschten Typ des VPN aus (hier im Beispiel Lokales Netz <-> Host (Tunnel-Mode); hierfür ist auch später die ipsec.conf ausgelegt, d.h. bei anderen Typen muß man ggf. mehr in der ipsec.conf anpassen) und wählt dann Einstellungen speichern.
Nun wird die Seite Schritt 1 von 4: Verbindungseigenschaften festlegen geladen. Hier trägt man unter Gegenstelle entweder eine feste IP-Adresse oder einen DNS-Hostnamen (es funktionieren auch DynDNS-Namen) ein. Wer keine feste IP-Adresse besitzt und keinen DynDNS-Namen registriert hat, muß hier Dynamische IP wählen. Die restlichen Einstellungen sollten eigentlich bereits mit sinnvollen Defaults vorbelegt sein. Mit Einstellungen speichern kommt man nun auf die Seite Schritt 2 von 4: Authentifizierungsmethode festlegen.
Hier muß man nun die richtigen Zertifikate auswählen. Unter Eigener Schlüssel muß genau der Schlüssel ausgewählt werden, den man vom Intranator zuvor exportiert hat. Unter Schlüssel Gegenstelle muß man den Schlüssel auswählen, den man zuvor auf den Intranator hochgeladen hat. Einstellungen speichern bringt diesmal die Seite Schritt 3 von 4: Aktivierungsart festlegen.
Hier kann man normalerweise einfach direkt auf „Einstellungen speichern“ klicken, in den wenigsten Fällen muß man hier etwas anderes eintragen. Nun wird die Seite Schritt 4 von 4: Lebensdauer festlegen geladen. Auch hier muß man üblicherweise keine Änderungen vornehmen und kann direkt auf Einstellungen speichern klicken.
4. ipsec.conf auf dem Linux-Rechner
Die ipsec.conf liegt defaultmäßig unter /etc/ipsec.conf. Wem es besser gefällt, der kann diese auch nach /etc/ipsec.d/ verschieben und dann einen Link nach /etc legen, das ist allerdings Geschmackssache.
Die /etc/ipsec.conf Datei sieht in unserem Beispiel wie folgt aus:
# OpenS/WAN IPsec configuration file
# basic configuration
### Converted to version 2.0 ipsec.conf by freeswan %post
version 2.0
config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=all
### Commented out by freeswan %post
#plutoload=%search
#plutostart=%search
uniqueids=yes
conn intranatorhost
auto=add
disablearrivalcheck=no
type=tunnel
auth=esp
authby=rsasig
pfs=yes
keylife=60m
ikelifetime=480m
rekey=yes
keyingtries=1
Soviel zu den allgemeinen Einstellungen der Verbidnung. Nun widmen wir uns den verbindungsspezifischen Einstellungen, wobei left der Linux-Rechner ist und right der Intranator).
#
# right: our side (== SuSE)
right=%defaultroute
rightid="/CN=extranator.artif"
rightrsasigkey=%cert
rightcert=/etc/ipsec.d/keys/private/cert.pem
Der Parameter right= gibt an, über welches Interface die IPSec-Verbindung laufen soll.
%defaultroute nimmt das Interface, über das die Defaultroute geleitet wird.
Der Parameter rightid= gibt die ID des zu verwendenden Zertifikats an, rightcert=/etc/ipsec.d/keys/private/cert.pem gibt an, wo das Zertifikat hinterlegt ist. Nun folgt die Konfiguration für die Gegenstelle (Intranator).
#
# left: peer side (== Intranator)
left=%any
leftid="/C=DE/ST=BW/L=Tuebingen/O=artif orange GmbH u. Co. KG/OU=IT/CN=webmail.artif-orange.de/Email=admin@artif-orange.de"
leftrsasigkey=%cert
leftcert=/etc/ipsec.d/keys/public/1.pem
leftsubnet=192.168.1.0/24
left=%any bedeutet, daß wir Verbindungen von jedem verfügbaren Interface entgegennehmen.
leftid= ist die ID des Zertifikats der Gegenstelle.
leftcert=/etc/ipsec.d/keys/public/1.pem ist der Zugriffspfad auf das Zertifikat der Gegenstelle.
leftsubnet=192.168.1.0/24 ist das Subnet auf der Gegenseite.
Nun noch ein paar Konfigurationszeilen, um Opportunistic Encryption auszuschalten:
### Added by freeswan %post
# Switch off Opportunistic Encryption policies -- BEGIN
conn block
auto=ignore
conn private
auto=ignore
conn private-or-clear
auto=ignore
conn clear-or-private
auto=ignore
conn clear
auto=ignore
conn packetdefault
auto=ignore
#conn OEself
# auto=ignore
# Switch off Opportunistic Encryption – END
5. ipsec.secrets auf dem Linuxrechner
Nun muß man ipsec noch mitteilen, an welcher Stelle der private Schlüssel zu finden ist. Dazu trägt man in die Datei /etc/ipsec.secrets folgende Zeile ein:
: RSA /etc/ipsec.d/private/privkey.pem
Bei Problemen mit dem Verbindungsaufbau kann es sein, daß man den restlichen Inhalt der Datei (also alle Zeilen, die nicht mit : RSA <Pfad> beginnen) löschen muß.
6. Verbindung aufbauen
Jetzt kann man die VPN-Verbindung aufbauen mit
rcipsec stop
rcipsec start
ipsec auto --up intranatorhost
Das rcipsec stop machen wir dabei nur zur Sicherheit, falls ipsec bereits gestartet war.
7. Mögliche Probleme
7.1 Probleme beim Übertragen von Daten
Wenn die MTU des Interfaces, über das die ipsec-Verbindung läuft, zu groß ist, kann es vorkommen, daß Daten nicht übertragen werden können (z.B. wird das Verwenden von rsync damit dann unmöglich). Im Logfile kann man dies an folgenden Fehlermeldungen erkennen:
Mar 8 00:02:45 gateway kernel: pmtu discovery on SA ESP/2272e2ed/54a0c75f
Mar 8 00:02:45 gateway kernel: pmtu discovery on SA ESP/2272e2ed/54a0c75f
Mar 8 00:02:45 gateway kernel: pmtu discovery on SA ESP/2272e2ed/54a0c75f
Mar 8 00:02:46 gateway kernel: pmtu discovery on SA ESP/2272e2ed/54a0c75f
In diesem Fall muß man die MTU des entsprechenden Interfaces herabsetzen. Bei uns hat sich eine MTU von 1492 (anstatt 1500) als ausreichend erwiesen.
Kontakt zu absurd orange und artif in Tübingen
absurd orange GmbH & Co. KG
Gölzstraße 17
72072 Tübingen
Tel. 07071-79527-0
Fax 07071-79527-29
www.absurd-orange.de
info(AT)absurd-orange.de
artif GmbH & Co. KG
Lilli-Zapf-Str. 2
72072 Tübingen
Tel: +49 7071 70491-0
Fax: +49 7071 70491-99
artif.com
info(AT)artif.com

