IPSEC VPN zwischen pfSense 2.0 und AVM Routern

IPSEC stellt den Standard für sichere Verbindungen zwischen getrennten Netzwerken da. Hier wird gezeigt wie man eine Verbindung zwischen AVM Routern und pfSense herstellen kann. So das man Transparent auf die einzelnen Netzwerke zugreifen kann.

Weiterlesen

IPSEC VPN pfSense 2.0 -> Draytek 2910i

Heute zeige ich euch wie man ein VPN zwischen einer pfSense Firewall und einem Draytekrouter, bei mir der 2910i, herstellen kann. Ich konnte es auch erfolgreich durch einen Speedport 723 Router durchleiten um meine VDSL Verbindung dafür zu nutzen.

Zum Aufbau des ganzen. Ich habe auf der einen Seite einen redundanten pfSense Cluster mit festen IP Adressen. Der Cluster wird durch CARP gebildet und ist damit auch ausfallsicher. Auf der anderen Seite habe ich mehrere VDSl Anschlüsse mit Speedports als Modem bzw. Router. Diese haben nur dynamische IP’s und benötigen für dieses Setup zwingend einen Dyndns-Account… Ein anderer Anbieter geht selbstverständlich auch, jedoch arbeite ich nur mit dyndns.

pfSense Seite…

Als erstes konfigurieren wir mal die pfSense. Damit alles sauber läuft müssen wir unter

System -> Advanced -> Miscellaneous: IP Security:  Prefer older IPsec SAs

einen Hacken setzen…

Phase1 auf pfSense Seite…

Als nächstes gehen wir zu VPN -> IPSEC und setzen einen Hacken bei enable IPSec. Nun fügen wir einen neuen phase 1 Eintrag hinzu. Als Interface setzen wir das WAN Interface ein. Bei einem CARP Setup jedoch das CARP Interface. 😉 Bei Remote Gateway tragen wir den DYNDNS Namen unseres Routers ein. Als Beschreibung solltet ihr einen aussagekräftigen Namen wählen um ihn später in den Logs besser lokalisieren zu können.

Konfiguration der ersten Phase ( IKE )

Jetzt kommen wir zur Phase1. Diese lässt sich mit einem Draytek nur im Aggressive Modus herstellen. Es ist mir trotz fester IP’s nicht gelungen den Mainmode ( welcher etwas sicherer ist ) zum laufen zu bekommen. Als Auth method setzen wir Mutual PSK ein. Da wir die Verbindung mit einem PresharedKey absichern wollen. Wie bereits erwähnt ist der Negotiation Mode auf agressive zu belassen. Als Identifier nutze ich die My IP address. Als Peer identifier klappte am besten der User distinguished name welcher auf dem Draytek Local ID heisst.Hier trägt man am besten auf beiden Seiten eine eindeutige Emailadresse ein. Damit wird die Verbindung später bestimmt.  Der Preshared Key ist das Passwort womit die Verbindung verschlüsselt wird. Der Key sollte nicht zu kurz und auch etwas komplexer sein. Die Policy Generation und das Proposal Checking lassen wir auf default. Den Encryption algorithm stellen wir auf   3DES da hier die Performance zwischen den Routern noch ok ist. Bei AES kann der Draytek etwas einknicken. Der HASH algorithm ist bei uns auf SHA1 gestellt. Dies lief am besten. Die DH key Group stellen wir auf 1, also 768 bit wenn wir auf dem Draytek den IKE phase 1 proposal auf DES_MD5_G1 auswählen. Stellen wir diesen auf DES_MD5_G2 so müssen wir die DH key Group auf 2 stellen!!! Die Lifetime lassen wir auf 28800 und sollte nur geändert werden wenn ihr wisst was ihr da macht.

Phase 1 proposal

Phase 1 proposal

Jetzt kommen wir zu den Advanced Options der phase1. NAT Travensal sollte eingeschaltet werden wenn ihr hinter einem Router mit Firewall den Draytek aufstellt. Solltet ihr ihn direkt mit dem Netz verbinden so kann man dies austellen. DEAD PEER Detection schalte ich stets ein. Jedoch kann dies bei überlasteten Routern dazu führen das die Verbindung ohne Grund unterbrochen wird, da der PFSENSE Router glaubt den anderen Router nicht zu erreichen. Daher sollte man die retries nicht unter 5 stellen!!! Und den delay nicht zu niedrig.

Phase1 advanced

Phase 2 auf pfSense Seite…

Jetzt kommen wir zur Phase2, womit wir die Tunnel einrichten. Man kann mehrere Tunnel aufbauen lassen. Dies kann man z.B. machen wenn man mehrere Subnetze auf beiden Seiten miteinander Verbinden möchte.

Als Mode nehmen wir tunnel damit wir unsere beiden Netzwerke direkt miteinander verbinden. Local Network steht für das Netzwerk des pfSense Routers. Solltet ihr vlans oder mehrere Netzwerkkarten mit unterschiedlichen Subnetzen einsetzen so muss hier das Netzwerk ausgewählt werden mit welchem die Gegenseite interagieren darf. Das Remote Network stellt das entfernte auf den Drayteks eingerichtete Netzwerk da. Bitte achtet hier darauf das auch die selbe Subnetmaske wie auf dem Draytek eingestellt ist, da sonst keine Verbindung zustande kommt!!!

Phase2 proposal…

Hier müssen wir nun die Verschlüsselungen für die Phase2 einrichten. Unter Protocol nehmen wir ESP da hier die Daten auch verschlüsselt werden. Bei AH passiert dies nicht. Bei Encryption algorithm wählen wir 3DES aus. Den Hash lassen wir so wie er ist und bei PFS Key Group wählen wir wieder 1 für einen 768 Schlüssel. Die Lifetime kann auf 3600 gelassen werden.

Bei den Advanced Einstellungen, kann man eine IP des Remotenetzwerkes angeben. Damit wird der Tunnel getestet und bei nicht erreichen neu initialisiert. Ich pinge immer die IP Adresse des Draytekrouters an. Sprich die vom internen Netz dort.

Damit ist das Setup auf der pfSense Seite fertig und nun können wir uns um den Draytek kümmern. Wichtig ist das hier die selben Daten wie auf der pfSense Seite eingegeben werden.

Draytek Seite…

Auf der Draytek Seite gehen wir

VPN and Remote Access -> LAN to LAN 

und erstellen dort eine neue Verbindung. Der Pfofile Name sollte wie immer aussagekräftig sein. Der Hacken bei Enable this Profile muss gesetzt werden. Wird halt gerne übersehen. Die Verbindung soll durch den Draytek initiiert werden, da hier ja die dynamische IP ist. Dadurch wird es leichter. Daher setzten wir bei Call Direction den hacken bei Dial Out. Always on ist zu empfehlen wenn man ständig auf diesen Tunnel zugreifen will. Dann muss man den Wert auf -1 setzen. So wird der Tunnel immer aufrecht gehalten. Bei Enable Ping to keep alive kann man eine IP des internen Netzes der Gegenseite einrichten welche in abständen von ca. 30 Sekunden angepingt wird. Wird der Ping 3 mal nicht beantwortet so baut der Draytek den Tunnel neu auf. Ich trage hier gerne eine Server IP ein von der Gegenseite ein.

Nun kommen wir zu den Dialout Settings.

Bei Type nehmen wir einen IPSEC Tunnel und die anderen Hacken entfernen wir. Bei Dial Number tragen wir die WAN IP des pfSense Routers ein. DNS Namen sind auch möglich, haben aber bei uns des öfteren zu Problemen geführt. Vorallem dürfen diese nicht zu lang sein. Bei Preshared Key muss der selbe Key wie oben bzw. auf der pfSense Seite eingegeben werden. Bei IPSEC Security Method wählt man High ESP und 3DES with Authentification. 

Die meisten Fehler passieren bei der Einstellung welche wir jetzt vornehmen. Wir klicken bei IPSEC Security Method auf advanced und geben damit die Phase 1 Daten an. IKE Phase 1 mode stellen wir auf aggressive. Die Proposal bleibt bei DES_MD5_G1, da wir ja auf dem pfSense System ein DH Group von 1 angegeben haben. Der IKE PHase2 proposal wird auf 3DES_SHA1 / 3DES_MD5 belassen. Die lifetimes können so gelassen werden. Das Perfect Forwarding Secret  lassen wir ausgeschaltet. Und bei Local ID müssen wir den Peer Identifier der pfSense eingeben. Damit wird dann dieser Tunnel identifiziert.

Dann müsst ihr auf der Draytekseite unten in den TCP/IP Netzwerkeinstellungen die Daten für das Remote Network mit der Subnetmask angeben. Und eure Locale IP mit der richtigen Subnetmask. Hier kann man auch angeben das der komplette Netzwerkverkehr, also auch Internetverndungen usw. über diesen Tunnel geschickt werden soll.

Wichtig ist jetzt das der Draytek auch im dyndns registriert wird. Bitte achtet darauf, da sonst kein Tunnel aufgebaut wird. Es muss der selbe DynDnS Name verwendet werden  den ihr auf der pfSense Seite benutzt habt.

Sind alle Daten richtig eingetragen sollte jetzt der Tunnel aufgebaut werden. Ich werde in den nächsten Tagen noch einen Eintrag mit den meisten Fehlermeldungen machen und wie man sie beheben kann. Bis dahin viel Erfolg…