pfSense: Windows 7 per OpenVPN anbinden

Windows 7 verwendet bei IPSec-Verbindungen das IKE-Protokoll in der Version 2. pfSense kann bisher nur die Version 1. Deshalb kann man mit Bordmitteln keine IPSec-Verbindung zwischen Windows 7 und einer pfSense Firewall herstellen. Die pfSense Firewall beherrscht neben IPSec aber auch noch OpenVPN und PPTP. Im folgenden eine kleine Anleitung, für die Einrichtung einer OpenVPN-Verbindung zwischen einem Windows 7 und pfSense.

Einrichtung des OpenVPN-Clients

  1. Download und Installation des OpenVPN-Clients unter der URL: http://openvpn.net/download.html
  2. Ein „command prompt“ mit Administrationsrechten starten
  3. In das Verzeichnis “ c:\programfiles\openvpn\easy-rsa“ wechseln
  4. „init-config.bat“ Ausführen
  5. „vars.bat“ editieren und die letzen Zeilen wie folgt anpassen:
    set KEY_COUNTRY=DE
    set KEY_PROVINCE=HH
    set KEY_CITY=Hamburg
    set KEY_ORG=Firmenname
    set KEY_EMAIL=hostmaster@firmendomain.de
  6. „vars.bat“ ausführen
  7. „clean-all.bat“ ausführen
  8. „build-ca.bat“ ausführen
  9. „build-key-server.bat server“ ausführen. Wobei die vorgeschlagenen Werte übernommen werden können. Nur bei „Common Name“ sollte „server“ angegeben werden.
  10. „build-dh.bat“ ausführen
  11. „build-key.bat ovpn_client1“ ausführen. Wobei die vorgeschlagenen Werte übernommen werden können. Nur bei „Common Name“ sollte „ovpn_client1“ angegeben werden.
  12. Kopieren der Dateien ca.crt, ovpn_client1.key und ovpn_client1.crt aus dem Verzeichnis „c:\programfiles\openvpn\easy-rsa\keys“ in das Verzeichnis „c:\programfiles\openvpn\config“
  13. Datei mit dem Namen ovpn_client1.ovpn und dem folgenden Inhalt (die IP-Adresse muss dabei natürlich angepasst werden!) in dem Verzeichnis „c:\programfiles\openvpn\config“ anlegen:
    client
    dev tun
    proto tcp
    remote 123.123.123.123 1194
    ping 10
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt
    cert ovpn_client1.crt
    key ovpn_client1.key
    ns-cert-type server
    comp-lzo
    pull
    verb 3
  14. In der Verknüpfung, mit welcher der OpenVPN-Client gestartet wird solle unbedingt in dem Eigenschaften unter Kompatibilität „Programm als Administrator ausführen“ ausgewählt werden! Ansonsten darf der OpenVPN-Client keine Routen setzen, was für den Zugriff auf das Netzwerk hinter der Firewall meistens nötig ist.

Einrichtung der pfSense Firewall

  1. Aufrufen des Menüpunktes „OpenVPN“ im Menü „VPN“ der Webgui von der pfSense.
  2. Anlegen eines neuen Eintrages mit dem folgenden Inhalt unter dem Reiter „server“
    Protocol: TCP
    Local port: 1194
    Address pool: 192.168.200.0/24 (das Netz darf auf der Firewall noch nicht verwendet werden!)
    Local Network: 192.168.1.0/24 (hier muss das interne Netzwerk stehen!)
    Remote Network: leer
    Cryptography: BF-CBC (128 bit)
    Authentication Method: PKI
    CA certificate: Inhalt der Datei "c:\programfiles\openvpn\easy-rsa\keys\ca.crt"
    Server Certificate: Inhalt der Datei "c:\programfiles\openvpn\easy-rsa\keys\server.crt"
    Server Key: Inhalt der Datei "c:\programfiles\openvpn\easy-rsa\keys\server.key"
    DH parameters: Inhalt der Datei "c:\programfiles\openvpn\easy-rsa\keys\dh1024.pem"
    DHCP-Opt: Disable NetBIOS
    LZO Compression: Ein
  3. Anlegen einer Firewall-Regel für das WAN-Interface, die TCP-Port 1194 für das Internet frei gibt.
  4. Anlegen einer Firewall-Regel für das LAN-Interface, die any (oder was benötigt wird) für den Address pool 192.168.200.0/24 frei gibt.

Älteren Securepoint Firewalls Open-VPN beibringen

Bei Securepoint Firewalls die mit einem älteren Installationsmedium installiert wurden funktioniert die Anleitung für die Einrichtung von Open-VPN von Securepoint nicht, da es keine Zone vpn-openvpn und kein Interface tun0 gibt. Betroffen sind alle Firewalls die mit einem Installationsmedium installiert wurden, das älter als Version 2007r3 ist.

Wenn man Open-VPN auf solchen Firewalls verwenden möchte muss man die Zone und das Interface zuvor anlegen. Dies kann man am einfachsten über die CLI (Comman Line Interface) mit den folgenden Befehlen.

add zone vpn-openvpn
add interface tun0 10.10.14.1/24 0 1500 0 vpn-openvpn 0 10MBIT_HALF_DUPLEX

Danach muss man die Konfiguration mit dem Befehl config save speichern. Wenn man den Konfigurationsname nicht kennt, kann man diesen zuvor mit dem Befehl config list abfragen. Dieser Befehl gibt eine Liste mit allen vorhandenen Konfigurationen aus. In dieser Liste ist die aktuelle Startkonfiguration mit einem * gekennzeichnet.

Zum Schluss muss die Konfiguration dann noch aktiviert werden. Dies geschieht mit dem Befehl update interface. Dabei sollte man jedoch beachten, dass alle Interfaces neu gestartet werden. Das kann natürlich bestehende VPN- oder Netzwerk-Verbindungen kurzzeitig unterbrechen.

VPN-Anbindung eines Ubuntu an eine FRITZ!Box

Einige Fritzboxen können IPSec. Um dies für den Fernzugriff auf das Netzwerk hinter der Fritzbox nutzen zu können bietet AVM sogar einen einfach zu handhabenden IPSec-Client an. Diesen gibt es aber leider bis jetzt nur für Windows. Natürlich kann man auch von Ubuntu eine IPSec Verbindung zu einer Fritzbox aufbauen. Dazu benötigt man aber einen IPSec-Client. Am einfachsten ist es, wenn man hierzu den „Shrew Soft VPN Client“ verwendet, da dieser bei Ubuntu bereits als Paket im universe-Netzwerk bereit steht und einfach mit apt-get install ike installiert werden kann.

Eine sehr genaue Anleitung für die Konfiguration der Fritzbox und die Konfiguration des Clients findet man auf der Webseite von AVM.

Bei mir funktionierte die VPN-Verbindung allerdings erst, nachdem ich den rp-filter ausgeschaltet hatte. Dies erreicht man bei Ubuntu, indem man in den Dateien /etc/sysctl.conf und /etc/sysctl.d/10-network-security.conf die Zeilen rp_filter=1 in rp_filter=0 ändert und das System neu startet.

Weitere Informationen findet man im Wiki der Ubuntu-User unter: http://wiki.ubuntuusers.de/FritzBox_VPN