IPSec
IPsec via Microsoft IPsec und FreeS/WAN
Nachfolgend wird die Konfiguration eines IPSec-Tunnels zwischen Microsoft Windows (2000/XP/2003) und Linux-Distributionen (in diesem Fall SuSE 9) mit den jeweiligen Bordmitteln (d.h. Microsoft IPsec und FreeS/WAN) beschrieben.
------------------ ------------------
| Windows Host | IPsec | Linux Host |
| | ----------- | |
| 10.16.3.2 | | 10.88.14.8 |
------------------ ------------------
Installation und Konfiguration von FreeS/WAN
Linux FreeS/WAN steht auf den Entwicklerwebseiten zum Download bereit, bzw. ist Bestandteil zahlreicher Linux-Distributionen.
Bei Verwendung der SuSE-Distribution sollte die SuSE eigene FreeS/WAN-Version verwendet werden bzw. IPsec modules and packages for SuSE Linux distributions beachtet werden.
Die Konfiguration von FreeS/WAN (Version 1.99) erfolgt über die Datei /etc/ipsec.conf:
config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
conn %default
keyingtries=1
conn fs-ms
type=tunnel
left=10.16.3.2
right=10.88.14.8
authby=secret
auto=add
Der Preshared Key (PSK) wird in der Datei /etc/ipsec.secrets gespeichert:
10.16.3.2 10.88.14.8 "Beispiel fuer eine mehr oder weniger geheime Passphrase"
Starten von IPsec via /etc/init.d/ipsec start und aktivieren der IPsec-Regeln via “ipsec auto --route fs-ms”.
Konfiguration von Microsoft Windows IPsec
Die Konfiguration von IPsec-Richtlinien erfolgt bei Windows 2000/XP/2003 über die IP Security Policy Mangement Console. Es hat leider den Anschein, dass für einen IPsec-Tunnel mit Preshared Keys im heterogenen Umfeld nicht alle Paramter per Kommandozeile (ipsecpol, ipseccmd, netsh) gesetzt werden können, weshalb wir eine Beschreibung der notwendigen Konfigurationsschritte per GUI wiedergeben:
- Microsoft Management Console (
mmc.exe) öffnen und “IP Security Policy Management” Snap-in hinzufügen - Eine neue “IP Security Policy” erstellen (Namen und ggf. Beschreibung)
- “default reponse rule” deaktivieren
- Edit properties
- Add|Next|“The tunnel endpoint is specified by this IP address:” und Angabe der eigenen IP
- Local area network (LAN) auswaehlen
- Use this string to protect the key echange (preshared key) auswählen und PSK angeben
- Add…
- IP Filter List: Name: from remote to local host|Add…
- Source address|A specific IP Address: Angabe der remote IP
- Destination address|My IP Address|Any protocol type|Finish|Close
- “from remote to local host” auswaehlen und Next
- Require Security
- Add…
- “The tunnel endpoint is specified by this IP address:” und Angabe der IP-Adresse des remote Hosts
- Local area network (LAN) auswaehle
- Use this string to protect the key echange (preshared key) auswählen und PSK angeben
- Add…
- IP Filter List: Name: from local to remote|Add..
- Source address: My IP Address
- Destination address: A specific IP Address: Angabe der remote IP
- Any protocol|Finish|Close
- “from local to remote” auswaehlen
- Require Security auswaehlen|Edit…
- Unter Require Security Policies “Negotiate security”, “Session key Perfect Forward Secrecy” aktivieren. Ferner 3DES/MD5 an oberste Stelle setzen
- Im Reiter “General”|Advanced Master key Perfect Forward Secrecy aktivieren und unter Methods 3DES/MD5 wieder an oberste Stelle anordnen
Nun die eingerichtete IPsec-Regel aktivieren (Rechtsklick auf die Policy und Assign auswählen). Ggf. kann der IP Security Monitor (ipsecmon.exe) Aufschluss über einen erfolgreichen IPsec-Tunnel geben (für Windows 2000/XP fehlen leider brauchbare Werkzeuge/Möglichkeiten um Fehlkonfigurationen zu protokollieren).
OpenVPN
OpenVPN stellt eine mögliche Alternative zu IPsec dar. Quellen und Binaries stehen für zahlreiche Plattformen zur Verfügung (bzw. sind bereits Bestandteil einiger Distributionen).
------------------ ------------------
| Windows Host | OpenVPN | Linux Host |
| | ----------- | |
| 10.16.3.2 | | 10.88.14.8 |
------------------ ------------------
10.3.0.1 ------------ 10.3.0.2
Konfigurationsbeispiel für den Windows Host (die Konfiguration des Linux Host läuft ebenso ab):
remote 10.88.14.8 port 5000 dev tun tun-mtu 1500 ifconfig 10.3.0.1 10.3.0.2 secret key.txt ping 10 verb 4 mute 10
Hierbei spannen die IP-Adressen 10.3.0.1 die locale VPN-IP-Adresse und 10.3.0.2 die remote VPN-IP-Adresse auf. Der Linux-Host ist somit vom Windows-Host per 10.3.0.2 erreichbar.
Auf den Preshared Key (PSK) wird per “secret key.txt” verwiesen. Erzeugt wird der PSK mittels openvpn --genkey --secret key (dieser Key muss auf den zweiten Rechner transferiert werden). Der VPN-Tunnel wird via “openvpn --config config.ovpn” aktiviert.

