IPsec Verbindung zwischen pfSense und mobilen Client

Zielsetzung

Dieses Dokument beschreibt die Einrichtung einer IPsec-Verbindung zwischen einer pfSense Firewall und einem mobilen Client. Als Client Software kommt der frei verfügbare Client von SHREW SOFT zum Einsatz. Diese Software gibt es als Windows- und Linux-Version.

Freunde von Debian können dieses Paket mit  apt-get install ike installieren.

Grundsätzlich ist die Einrichtung nicht schwer. Wichtig ist jedoch, dass die Konfiguration der IPsec-Parameter zwischen Server und Client zusammen passen und dass später in den Regeln der Firewall der Datenverkehr für den IPsec Client auf der pfSense erlaubt wird (siehe dazu: Firewall -> Rules -> IPSEC )

Konfiguration der pfSense Firewall

IPsec in der pfSense aktivieren

In der Administrationsoberfläche der pfSense wählt man den Punkt VPN -> IPsec.

  • Die Option ☑ Enable IPsec aktivieren
  • Die Änderung mit Save speichern.

Unterstützung für mobile Clients aktivieren

Über den Punkt VPN -> IPsec -> Mobile clients die Einstellungen für die IPSec Client-Verbindung vorgeben.

  • Die Option Allow mobile clients aktivieren

Einstellungen für Phase 1 proposal (Authentication)

Negotiation mode : aggressive
My identifier : My IP address
Encryption algotithm : 3DES
Hash algorithm : SHA1
DH key group : 2
Lifetime : 86400
Authentication method : Pre-shared key

Einstellungen für Phase 2 proposal (SA/Key Exchange)

Protocol : ESP
Encryption algorithm : 3DES, Blowfish, CAST128, Rijndael (AES)
Hash algorithm : SHA1, MD5
PFS key group : off
Lifetime : 3600

Kennwort für die Client Verbindung

Der Client wird sich mit einer Identifikation und dem dazugehörigen Kennwort anmelden. Dazu wird der Punkt VPN -> IPsec -> Pre-shared keys aufgerufen. Über die Schaltfläche [+] kann eine neue Identifikation hinzugefügt werden.

Identifier : <EMail-Adresse des Clients ( z.B. max.mustermann@example.org )>
Pre-shared key : <Zufälliges, langes Kennwort ( z.B. R8w3Ucf3wlj302fGh )>

Konfiguration des IPSec Clients von Shrew Soft

Grundsätzlich sollte die Verbindung mit jedem IPsec Client möglich sein. Ich benutze hier die Software von Shrew Soft, da ich damit gute Erfahrungen gemacht habe. Die jeweiligen Einstellungen sollten in anderen IPsec Client sin ähnlicher Form zu finden sein.

Zuerst wird der Shrew Soft VPN Access Manager gestartet. Danach wird über die Schaltfläche Add eine neue VPN Site Configuration begonnen.

Einstellungen im Register General

Host Name or IP Address : <Public ip address of the pfSense box>
Port : 500
Auto Configuration : disabled
Adapater : Use an existing adapater and current address

Einstellungen im Register Client

Auf dem Register Client werden keine Einstellungen verändert. Wir behalten die dort gewählten Werte.

NAT Traversal : enable
NAT Traversal Port : 4500
Keep-alive packet rate : 15
IDE Fragmentation : enable
Maximum packet size : 540
Aktivieren der Option : ☑ Enable Dead Peer Detection
Aktivieren der Option : ☑ Enable ISAKMP Failure Notification

Einstellungen im Register Name Resolution

Deaktivieren der Option ☐ Enable WINS
Deaktivieren der Option ☐ Enable DNS

Einstellungen im Register Authentication

Authentication Method : Mutual PSK
Local Identity
-> Identitity Type : Key Identifier
-> Key ID String : <Hier die EMail-Adresse von oben eingeben.>
Remote Identity
-> Identification Type : IP Address
-> Aktivieren der Option : ☑ Use a discovered remote host address
Credentials
-> Pre Shared Key : <Den Pre-shared key für diese EMail-Adresse eingeben>

Einstellungen im Register Phase 1

Exchange Type : aggressive
DH Exchange : group 2
Cipher Algorithm : 3des
Hash Algorithm : sha1
Key Life Time limit : 86400

Einstellungen im Register Phase 2

Transform Algorithm : esp-3des
HMAC Algorithm : sha1
PFS Exchange : disabled
Compress algorithm : disabled
Key Life Time limit : 3600

Einstellungen im Register Policy

Deaktivieren der Option ☐ Obtain Topology Automatically or Tunnel All

Auf die Schaltfläche Add klicken und das entfernte Zielnetzwerk (privates Netzwerk hinter der pfSense) eingeben. Damit wird später eine passender Eintrag in der Routingtabelle erzeugt um das Zielnetzwerk zu erreichen.

Type : Include
Address : <Netzwerk hinter der pfSense ( z.B. 192.168.0.0 )
Netmask : <Netzwerkmaske für das entfernte Netzwerk ( z.B. 255.255.255.0 )

Randnotiz

Die Option General -> Use an existing adapter and current address funktioniert solange gut, bis der Client in einem Netzwerk steht, dessen IP-Adressen sich mit dem privaten Netzwerk hinter der pfSense überschneiden. Dann funktioniert das Routen zum Ziel nicht mehr..

Eine Abhilfe schafft hier die Option Use a virtual adapter and assigned address.
Hierbei verwendet der IPsec Client eine eigene, virtuelle Netzwerkkarte und dort läßt sich eine IP-Adresse angeben, die sich weder mit dem lokalen Netzwerk des Clients ( z.B Cafe, Flughafen ) noch mit dem entfernten Netzwerk der pfSense überdeckt.

Leider habe ich mit meinem Windows 7 oder mit meiner Debian squeeze es nicht geschafft mit dieser Option Daten zwischen dem Client und der pfSense zu bewegen. Der Tunnel war aufgebaut, aber es flossen keine Daten.

Tips zur Fehlersuche

Sollte es mit der Verbindung auf Anhieb nicht klappen, dann kann das verschiedenen Ursachen haben.

  • Der Client sitzt hinter einer Firewall die kein IPsec Passthru erlaubt
  • Es liegt ein Fehler bei den Einstellungen zwischen pfSense und IPsec Client vor

Hilfreich bei der Fehlersuche sind die Protokolle der pfSense, die man unter Status -> System logs -> IPSEC VPN einsehen kann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.