Beiträge

Was Sie bei Mitarbeitern im Home-Office beachten müssen

Worauf es bei der Heimarbeit ankommt

Wenn einzelne Mitarbeiter oder der Chef im Home-Office seiner Arbeit nachgeht, dann gilt es nicht nur technische Fallstricke zu beachten. Es kommt dabei auch häufig auch auf kleine Details an. Für uns war das Grund genug einmal hinter die Kulissen einer Kollegin zu schauen, die vier Tage in der Woche von Zuhause aus arbeitet.

Über die Erfahrungen nach zwölf Monaten im Home-Office berichtet die Vertriebskollegin der Biteno GmbH im Interview mit Geschäftsführer Matthias Böhmichen.

Neben den formalen Anforderungen an die Heimarbeit (Ergänzung zum Arbeitsvertrag), sind natürlich auch technische Voraussetzungen und organisatorische Mindeststandards einzuhalten. Der eigentliche Heim-Arbeitsplatz sollte nach Möglichkeit vom restlichen Wohnbereich getrennt sein und sich im Zweifelsfall auch abschließen lassen. Das ist nicht nur aus Datenschutzgründen ein spannendes und vor allem relevantes Thema.
Mitarbeiter zuhause verfügen in der Regel schon über einen Internetanschluss. In jedem Fall sollte dieser mindestens zwei, besser sechs MBit Bandbreite aufweisen. Es lohnt sich hier auch im Vorfeld zu klären, ob der Arbeitgeber einen Teil der Kosten übernehmen muss oder nicht. Das erspart spätere Streitigkeiten.

Der Arbeitsplatz selbst besteht in aller Regel – genauso wie im großen Büro – aus einem PC oder einem Notebook und hat auf jeden Fall eine Tastatur und einen externen Flachbildschirm. Das ist schon aus ergonomischen Gründen Pflicht. Ob Mitarbeiter im Home-Office ein physisches Telefon oder wie in unserem Fall mit einem Softphone arbeiten, entscheidet häufig die eingesetzte Telefonanlage und ist für den praktischen Einsatz in der Regel nicht wirklich relevant.

IT-Technik Zuhause: Remote Desktop

In vielen Fällen wird auf dem PC des betroffenen Mitarbeiters Zuhause kaum noch Software installiert. In den meisten Fällen ist es sowohl praktischer als auch ökonomischer, den Kollegen daheim über eine Remote-Desktop-Lösung (früher: Terminal-Server) auf die wichtigen Programme im täglichen Gebrauch zugreifen zu lassen – das spart nicht nur Bandbreite, sondern es ist häufig auch für die IT-Administratoren die zeitsparende Lösung der Wahl. Damit hat auch hier die ressourcen-schonende Technologie der Virtualisierung Einzug gehalten.

Email und Telefon sind entscheidend

Spam Emails - eine Plage

Emails in Oitl

Letztlich ist es auch im Home-Office häufig so, dass die Nutzung von Outlook als E-Mail-Programm sowie das Telefon zu den Hauptkommunikations-Mitteln gehören. Diese müssen im Home-Office genauso störungsfrei funktionieren wie im eigentlichen Büro. Ein besonderes Augenmerk sollte man dabei auf die Sprachqualität des Telefons legen. Nur wenn die Sprache einwandfrei, ohne Verzögerung und unangenehme Nebengeräusche übertragen werden kann, hat man als Chef auch die Gewähr, dass die Kollegen im Home-Office von Kunden einwandfrei verstanden werden und letztlich ihren Job gut machen können.

Alles in allem hat sich nach unseren Erfahrungen gezeigt, dass die Arbeit im Home-Office für gut eingearbeitete Mitarbeiter wenig problematisch ist. Solange die Zugehörigkeit des Mitarbeiters zum eigentlichen Kernteam und zum Beispiel über die regelmäßige Teilnahme an Meetings gewahrt ist, ist das Arbeiten im Home-Office heute kein Hexenwerk mehr.

Dennoch sollte man als Auftraggeber auch darauf achten, dass die Daten auch Zuhause gesichert werden um sie im Schadensfall schnell wieder herstellen zu können.

Woraus Sie außerdem bei der täglichen Arbeit im Home-Office achten sollten, beschreibt Geschäftsführer Matthias Böhmichen in seinem Blog.

Tutorial

VPN-Tunnel mit IPSec

,

Einleitung zu IPsec

Wer als Linux- oder Windows-Administrator in Firmen Netzwerke verwaltet, der muss meistens unterschiedliche Netzwerke miteinander verbinden. Etwa mehrere Außenstellen oder Filialen an eine Zentrale (der Firma) .  Um dies zu eralisieren, kommt heute sehr oft IPSec als Basis für ein VPN (virtual private network) zum Einsatz. In diesem Tutorial im Rahmen unserer Reihe zur Linux-Administration lernen Sie:

  • Wie Verschlüsselung grundsätzlich funktioniert
  • Wie ein Verbindungsaufbau für ein IPSec-VPN  prinzipiell abläuft
  • Wie IPsec auf der Opensource Firewall pfsense implementiert ist.

IPsec (Internet Protocol Security) ist heute ein de-fakto Standard für die Verschlüsselung von Datenverkehr im Internet. IPSec ist auf allen gängigen Betriebssystem-Plattformen sowie in den allermeisten Firewalls vorhanden. IPsec wird heute vor allem zur Koppelung von unterschiedlichen IP-Netzwerken – etwa hinter Firewalls – verwendet.

Hinweis: Für das Verständnis der Implementierung von IPSec auf einer pfsense-Firewall sollten, Sie die Grundlagen der Netzwerk-Technik verstehen und die Basics der pfsense-Firewall verstanden haben. Über beide Themen haben wir hier im Blog der Biteno GmbH ausführliche Tutorials.

Lesetipps dazu:

Technische Komponenten für ein VPN

Damit ein VPN mit IPsec einwandfrei funktioniert, benötigen wir auf der Firewall mehrere Elemente:

  • Eine Hash-Funktion,
  • Eine Schlüsselverwaltung
  • Einen Verschlüsselungsalgorithmus

Hashes / Prüfwerte

Ein Hash-Wert dient zur Berechnung eines eindeutigen Prüfwerts für beliebige digitale Daten (Nachrichten). Hashes sind außerdem  Grundlage zur Erstellung einer digitalen Signatur.

Der Prüfwert wird verwendet, um die Integrität einer Nachricht bzw. einer beliebigen Zeichenkette zu sichern.

Wenn zwei Nachrichten den gleichen Prüfwert ergeben, soll die Gleichheit der Nachrichten nach normalem Ermessen garantiert sein. Darum fordert man von einer kryptologischen Hashfunktion die Eigenschaft der Kollisionssicherheit: es soll praktisch unmöglich sein, zwei verschiedene Nachrichten mit dem gleichen Prüfwert zu erzeugen.

(Quelle: Wikipedia: https://de.wikipedia.org/wiki/Secure_Hash_Algorithm)

Die Eigenschaften eines Hash-Wertes:

  • Jeder Hashwert einer identischen Zeichenkette muss immer denselben Output (=Hashwert) ergeben.
  • Eine Rückrechnung – also ein Knacken des Hashes soll möglichst unmöglich sein

Anwendung für Prüfsummen:

Hashwerte werden immer dann verwendet, um etwa Passwörter zu vergleichen. So werden in modernen Anwendungen nicht die Passwörter gespeichert, sondern deren Hash-Werte.

Nach der Eingabe eines Passworts durch den Anwender wird der Hash-Wert ermittelt und mit dem gespeicherten Hash-Wert verglichen. Sind beide gleich, dann stimmten die Passwörter überein.

MD5

Der Message-Digest Algorithm 5 (MD5) ist eine weit verbreitete kryptographische Hashfunktion, die aus einer beliebigen Nachricht einen 128-Bit-Hashwert erzeugt. Dies erlaubt beispielsweise die leichte Überprüfung eines Downloads auf Korrektheit. Der MD5 wurde 1991 von entwickelt.

Bsp. Zu MD5

„Hallo mein Name ist Franz“ -> 53fd70b0411e0822625bbb08cd8d941b

MD5 Hash-Wert online erstellen: https://www.md5-generator.de/

Der MD5  gilt heute (2017/2018) als Hash-Wert nicht mehr als wirklich sicher, da es mit überschaubarem Aufwand möglich ist, unterschiedliche Nachrichten zu erzeugen, die den gleichen MD5-Hashwert aufweisen.

Dennoch findet sich der MD5 noch immer in vielen Software-Anwendungen bzw. Firewalls.

Weiterführende Informationen: https://de.wikipedia.org/wiki/Message-Digest_Algorithm_5

SHA-1 und Nachfolger

Der Secure Hash Algorithm (SHA bzw SHA-1) wurde 1993 entwickelt und galt bis Ende der 1990er sicher. Die Funktion ermittelt für jede beliebige Zeichenkette einen eineindeutigen Wert

Bsp. Zu SHA-1:

„Hallo mein Name ist Franz“ -> 9dcd46848cbb177296693eaa3de4f59ff603ae5f

Online selbst ausprobieren: http://www.sha1generator.de/

Da der SHA-1 in zwischen 2000 und 2010 mit sehr viel Aufwand mehrfach gebrochen werden konnte, empfiehlt man heute statt SHA-1 die Weiterentwicklungen der SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512) zu verwenden.

Sie unterscheiden sich von SHA-1 dadurch, daß die Berechnung komplexer und die Bitfolgen länger werden.

Bsp. Zu SHA-3

„Hallo mein Name ist Franz“ -> f83a982bbd010930076555a20dcf311c7cc89737736a3f48a0cd3de3001219b3ca18b721ed58ddd63955818da341ca56cfcb033dbc0b945ad03ca9221842b9b0

SHA-3 unterscheidet sich also sowohl von SHA-1 als auch MD5 von der deutlich längeren Zeichenkette.

Online checken: https://emn178.github.io/online-tools/sha3_512.html

Weitere Informationen zu SHA https://de.wikipedia.org/wiki/Secure_Hash_Algorithm

Schlüsselverwaltung

Damit zwei Gesprächspartner (Firewalls) in einem ungesicherten Raum (Internet) sicher miteinander kommunizieren können, müssen Sie sich zunächst gegeneinander mit Schlüsseln absichern.

Manuelle Schlüsselverwaltung

Prinzipiell können alle Schlüssel zwischen zwei Firewalls vorab über einen gesicherten Weg manuell (!) ausgetauscht werden. In der Praxis ist das aber meist nicht praktikabel.

Automatischer Schlüsselaustausch mit IKE

Das Internet-Key-Exchange-Protokoll (IKE) dient der automatischen Schlüsselverwaltung für IPsec. Es verwendet den Diffie-Hellman-Schlüsselaustausch für einen sicheren Austausch von Schlüsseln über ein unsicheres Netzwerk (z.B. Internet).

IKE definiert, wie Sicherheitsparameter vereinbart und gemeinsame Schlüssel (shared keys) ausgetauscht werden.

Beide Gesprächspartner benötigen also für den Aufbau ein gemeinsam und vorher bekanntes „Shared Secret“.

Weitere Informationen zu IKE: https://en.wikipedia.org/wiki/Internet_Key_Exchange

Diffie Hellmann Schlüsselaustausch

Die beiden Namensgeber Whitfield Diffie und Martin Hellman haben im Jahr 1976 den nach Ihnen bekannten Schlüsselaustausch beschrieben, auf dem heute ein Teil des Algorithmus für den Schlüsselaustausch bei IPsec erfolgt.

Im Wesentlichen beschreiben Sie dabei u.a. eine mathematische Einwegfunktion.

https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch

Verschlüsselungs-Algorithmen

Damit zwei Parteien (Menschen oder Firewalls) geheime Informationen sicher austauschen können, benötigen Sie einen gemeinsamen Ablauf (Algorithmus), um damit Nachrichten zu verschlüsseln. Dieser Algorithmus muss auf beiden Seiten eindeutig sein und gleich ablaufen.

DES & 3DES

Der Data Encryption Standard (DES) ist ein weit verbreiteter symmetrischer Verschlüsselungsalgorithmus.  Der DES-Algorithmus wurde als offizieller Standard für die US-Regierung   im Jahr 1977 bestätigt und wird seither international vielfach eingesetzt.  Heute wird DES aufgrund der verwendeten Schlüssellänge von nur 56 Bits für viele Anwendungen als nicht ausreichend sicher erachtet.

Weiterentwicklungen von DES sind 3DES oder Tripple-DES sowie AES (siehe unten)

AES (Rijndael)

Der Advanced Encryption Standard (AES) ist eine Blockchiffre, die als Nachfolger für DES im Oktober 2000 vom National Institute of Standards and Technology (NIST) als Standard bekanntgegeben wurde. Nach seinen Entwicklern Joan Daemen und Vincent Rijmen wird AES auch Rijndael-Algorithmus genannt.

Es handelt sich um ein symmetrisches Verschlüsselungsverfahren, d. h. der Schlüssel zum Ver- und Entschlüsseln ist identisch. Der Rijndael-Algorithmus besitzt variable, voneinander unabhängige Block- und Schlüssellängen von 128, 160, 192, 224 oder 256 Bit. Rijndael bietet ein sehr hohes Maß an Sicherheit; erst mehr als zehn Jahre nach seiner Standardisierung wurde der erste theoretisch interessante, praktisch aber nicht relevante Angriff gefunden.

Blowfish

Blowfish (deutsch Kugelfisch) ist ein symmetrischer Blockverschlüsselungsalgorithmus, der 1993 von Bruce Schneier entworfen und erstmals im April 1994 publiziert wurde. Er wurde als public domain veröffentlicht und kann frei verwendet werden.  Blowfish hat als Blockchiffre eine feste Blocklänge von 64 Bit, basiert auf einem Feistelnetzwerk, welches die Umkehrbarkeit zwischen Verschlüsselung und Entschlüsselung garantiert.

Mehr dazu. https://de.wikipedia.org/wiki/Blowfish

Weitere Begriffe

Encapsulating Security Payload (ESP) stellt Mechanismen zur Sicherstellung der Authentizität, Integrität und Vertraulichkeit der übertragenen IP-Pakete bereit. Im Unterschied zum AH wird der Kopf des IP-Paketes vom ICV (Integrity check value) nicht berücksichtigt, jedoch werden die Nutzdaten verschlüsselt übertragen. ESP basiert direkt auf IP und verwendet die Internet-Protokoll Nummer 50.

Quelle:  https://de.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload_(ESP)

Funktionsweise von IPsec

IPsec (kurz für Internet Protocol Security) ist eine Protokoll-Suite, die eine gesicherte Kommunikation über potentiell unsichere IP-Netze wie etwa das Internet ermöglichen soll.

IPsec arbeitet direkt auf der Internetschicht (Internet Layer) und ist eine Weiterentwicklung der IP-Protokolle. Das Ziel ist es, eine verschlüsselungsbasierte Sicherheit auf Netzwerkebene bereitzustellen.

IPsec bietet durch die verbindungslose Integrität sowie die Zugangskontrolle und Authentifikation der Daten diese Möglichkeit an. Zudem wird durch IPsec die Vertraulichkeit sowie Authentizität der Paketreihenfolge durch Verschlüsselung gewährleistet.

Weitere Informationen zu IPsec:

 

IPsec verwendet zwei Phasen, um eine VPN-Verbindung sicher aufzubauen. Diese heißen Phase 1 und Phase2.

Phase 1 von IPsec

Der erste Teil (Phase 1) eines IPsec ist der technisch komplexere Teil von IPsec. In der echten Welt ist das in etwa so, also würden sich ein Telefonanrufer und ein Angerufener, die sich beide nicht kennen und die nicht wissen ob der andere die eigene Sprache versteht, versuchen zu verständigen.

Die Phase 1 beginnt mit dem so genannten „Main Mode“. Er wird in der ersten Phase der Verschlüsselungsvereinbarung und Authentisierung (Internet Key Exchange) genutzt.

Im Main Mode handeln der Initiator (derjenige, der die Verbindung aufnehmen will) und der Antwortende (der Responder) miteinander eine ISAKMP-SA (kurz für Internet Security Association and Key Management Protocol – Security Association ; mehr: https://de.wikipedia.org/wiki/Internet_Security_Association_and_Key_Management_Protocol   ) aus.

 

Die Verhandlung geschieht in folgenden Schritten:

  1. Der Initiator sendet einen oder mehrere Vorschläge (engl. Proposal) mit Authentisierungs- und Verschlüsselungsalgorithmen.
  2. Der Responder wählt aus der Schnittmenge der angebotenen und der von ihm unterstützten Algorithmen den sichersten aus und sendet das Auswahlergebnis an den Initiator.
  3. Der Initiator sendet seinen öffentlichen Teil vom Diffie-Hellman-Schlüsselaustausch und einen zufälligen Wert (die Nonce).
  4. Der Responder sendet ebenfalls seinen öffentlichen Teil vom Diffie-Hellman-Schlüsselaustausch und einen zufälligen Wert.
    Dieser Wert dient weiter unten zur Authentisierung.

Da nun beide Firewalls (der Responder und der Initiator) die öffentlichen Bestandteile für den Diffie-Hellman-Schlüsselaustausch kennen, wird dieses Verfahren genutzt, um den geheimen Schlüssel zu berechnen.

Dieser wird dann für die Verschlüsselung nach dem vereinbarten Schlüsselverfahren für die folgenden Schritte verwendet. Der berechnete (Diffie-Hellman-)Schlüssel wird auch für die Erzeugung eines weiteren Schlüssels genutzt, der für die Authentifikation verwendet wird.

Der letzte Schritt hier  ist die Authentisierung. Dabei müssen sich beide Beteiligten als zugriffsberechtigt ausweisen. Hierbei kommen zwei unterschiedliche Verfahren zum Einsatz:

  1. die Authentisierung mittels vereinbartem Geheimnis (im englischen Pre-Shared-Keys, PSK) oder
  2. zertifikatsbasiert.

Phase 2 von IPsec

In der zweiten Phase von IKE wird der Quick Mode verwendet (Schutz durch die IKE SA). Die gesamte Kommunikation in Phase 2 erfolgt dabei bereits verschlüsselt.

Wie in der ersten Phase wird zunächst ein Vorschlag (Proposal) gemacht und zusammen mit einem Hashwert übertragen. Später werden die Schlüssel neu berechnet, und es fließen keinerlei Informationen aus den zuvor generierten SAs ein. Dies stellt sicher, dass niemand von den zuvor generierten Schlüsseln auf die neuen schließen kann (Perfect Forward Secrecy). Dies wird erreicht, indem ein zusätzlicher Diffie-Hellman-Austausch stattfindet. Die Geheimnisse zur Schlüsselbildung werden verworfen, sobald der Austausch abgeschlossen ist.

Mehrere „Quick Modes“ können zur gleichen Zeit stattfinden und durch die gleiche IKE SA geschützt sein. Um die verschiedenen Wechsel unterscheiden zu können, wird das Message-ID-Feld des ISAKMP-Headers herangezogen. Der Status eines solchen Austausches wird durch die Cookies identifiziert.

Quelle: https://de.wikipedia.org/wiki/IPsec

 

Implementierung von IPsec in der pfsense Firewall

Die Implementierung von IPsec lehnt sich an den Standard von IPsec mit Phase1 und Phase2 an. Es gibt je eine Maske für die Phase1 von IPsec und eine weitere für die Phase2.

Hinweis: Ein Ipsec-Tunnel kann mehrere Phase2 Einträge pro Verbindung haben. Das ist dort sinnvoll wo etwa mehrere Netze hinter einer Firewall über ein IPSec VPN gleitet werden.

Übersicht der Verbindungen auf der pfsense

Abbildung: Ein Tunnel mit IPsec auf der pfsense mit zwei Netzen und zwei Phase2 Einträgen

In der obigen Abbildung ist ein VPN-Tunnel (1) mit Phase 1 definiert. Dazu gehören zwei unterschiedliche Phase 2 Einträge (2) für jeweils ein Netzwerk.

Übersicht der Verbindungen mit IPSec auf einer pfsense

Übersicht der Verbindungen mit IPSec auf einer pfsense

Zur Übersicht der VPN-Tunnel auf einer pfsense gelangen Sie über

VPN -> IPsec -> Tunnel.

Um einen neuen VPN-Tunnel zu erstellen klicken Sie unten in der Übersicht auf „Add P1“. Sie beginnen anschließend mit den Einstellungen zu Phase1 von IPsec für ihren neuen Tunnel.

Einstellung von Phase 1 auf der pfsense

Die Einstellungen für die Phase 1 im Detail:

Einstellungen der Phase einer IPSec Verbindung

Einstellungen der Phase einer IPSec Verbindung

Als Authentication Method für die Phase 1 wählen Sie unter (1) entweder „Mutual PSK“ (PSK -> Preshared Key ) oder ein Zertifikat. In der Praxis ist das meistens ein PSK.

Unter (2) wählen Sie den Negatiation Mode. Das ist meistens „Main“. Die seltener verwendete Alternative heißt „Aggressive“.

Sofern Sie bei (1) „Mutual PSK“ gewählt haben, tragen Sie bei (3) ihren geheimen Schlüssel ein. Diesen Schlüssel müssen Sie exakt identisch auf der entfernten Firewall hinterlegen. Außerdem müssen sie sicherstellen, daß dieser Schlüssel niemals in falsche Hände gelangt

Tipp:

Unter https://www.gaijin.at/olspwgen.php können Sie online ein sicheres Passwort wählen. Nutzen Sie dort bitte die Einstellung mit min. 16 Zeichen oder länger.

Im zweiten Abschnitt wählen Sie unter (4) den eigentlichen Verschlüsselungs-Algorithmus (engl. Encryption Algorithm) aus. Dies wird in der Regel AES oder 3DES sein. Sofern Sie AES auswählen, müssen Sie (rechts daneben) die richtige Bit-Länge des Schlüssels auswählen. Auch diese muss auf der entfernten Firewall identisch sein.

Unter (5) wählen Sie den Hash-Algorithmus aus. Dies sollte SHA-1 oder höher (z.B. SHA-256 oder SHA-512) sein.

In der Auswahl bei (6) wählen Sie nun noch die für Sie passende Diffie-Hellman-Gruppe aus (also den Algorithmus für den Schlüsselaustausch).

Ebenso wichtig: Die Ablaufzeit (Lifetime) für die Phase 1 in Sekunden. Nach Ablauf dieser Zeitspanne verhandeln beide Firewalls wieder neu. Auch dieser Wert muss auf beiden Firewalls identisch sein.

Die Auswahl für die DH-Group unter (6) ist relativ groß. Je höher die Gruppe, desto höher die Bitlänge und damit die Stärke der Verschlüsselung. Beginnen Sie im Zweifel eher mit einer niedrigeren Schlüssellänge, bis Sie auf beiden Seiten eine stabile Verbindung haben. Danach können Sie (gemeinsam mit der Gegenstelle) die Schlüssellänge erhöhen.

Abbildung: Diffie Hellmann Gruppen auf der pfsense

Die diffie-hellmann-group Einstellungen in der Phase1 der IPSec VPN Verbindung

Die diffie-hellmann-group Einstellungen in der Phase1 der IPSec VPN Verbindung

 

 

Einstellung von Phase 2 auf der pfsense

In Phase 2 werden zwei wesentliche Einstellungen gemacht:

  • Die Definitionen der unterschiedlichen Netzwerke, die übertragen werden sollen.
  • Der Verschlüsselungs- und Sicherungsmechanismus

 

Phase 2: Netzwerk-Einstellungen

Phase2 IPsec Einstellungen auf der pfsense

Phase2 IPsec Einstellungen auf der pfsense

Unter „Mode“ (1) stellen Sie zunächst ein, on IPV4 oder IPv6 übertragen werden soll.

Unter (2) wählen Sie welches ihrer lokalen Netzwerke auf ihrer Seite des VPN später erreichbar sein wird.

Unter (3) legen Sie das entfernte Netzwerk bzw. eine Adresse fest. Sofern Sie bei (3) ein Netzwerk gewälht haben, definieren Sie bei (4) die Netz-Adresse sowie die Netzmaske.

Hinweis: Sofern Sie mehrere Netzwerke über ein VPN mit einer pfsense übertragen möchten, so müssen Sie mehrere Phase-2 Einträge für ein IPsec Tunnel erstellen. (wohl aber nur einen Eintrag für die Phase1)

 

Phase 2: Verschlüsselungs-Einstellungen

Im unteren Teil der Phase 2 finden Sie alle Einstellungen zum Schlüsselaustausch der Phase 2 sowie die Verschlüsselungs-Algorithmen:

Phase2 bei IPSec auf der pfsense: Verschlüsselungs-Einstellungen

Phase2 bei IPSec auf der pfsense: Verschlüsselungs-Einstellungen

Unter (1) wählen Sie entweder ESP (siehe Einleitung) oder AH (steht für Authentication Header). Am häufigsten wird ESP verwendet.

Unter (2) werden nun die zur Auswahl stehenden Verschlüsselungs-Mechanismen angewählt. Wichtig ist hier: Sie geben der Firewall eine Liste bzw. Auswahl mit. Mit dieser Liste verhandeln die beiden betroffenen Firewalls den passenden Verschlüsselungsmechanismus und dessen Schlüssellänge.

In der Praxis sollten Sie hier mit einem (in Worten: eins) Wert zur Auswahl beginnen, der bei beiden betroffenen Firewalls enthalten ist.

Unter (3) wählen Sie einen Hash-Algorithmus aus, der in Phase 2 zum Einsatz kommt. Vermeiden Sie dabei möglichst MD5. Besser ist ein (hoher) SHA-Algorithmus.

Bei (5) erhalten Sie die Auswahl für die Perfect Forward Secrecy. Das ist nichts anderes als der Schlüsselaustausch-Mechanismus. Sie haben im Wesentlichen die gleiche Auswahl wie bei der Diffie-Hellmann-Gruppe in Phase 1.

Wenn Sie auf Nummer sicher gehen wollen, wählen Sie hier wieder dieselbe Gruppe wie die DH-Group in Phase 1.

Unter (6) legen Sie wieder eine maximale Lebensdauer der verhandelten Schlüssel fest. Dieser Wert muss ebenfalls bei beiden Firewalls identisch sein. Nach Ablauf dieser Zeit in Sekunden fangen die Firewalls wieder neu an zu verhandeln.

Empfehlung für die Praxis:

IPsec VPN-Tunnel funktionieren in der Regel nur dann dauerhaft und vor allem stabil, wenn Sie auf beiden Seiten

  • Für die Einstellungen der relevanten Parameter die gleichen Werte verwenden
  • Kompatible Geräte auf beiden Seiten haben.

Kritik an IPsec

In ihrer Untersuchung über Ipsec von 1999 schrieben Niels Ferguson und Bruce Schneier “IPsec was a great disappointment to us. Given the quality of the people that worked on it and the time that was spent on it, we expected a much better result. We are not alone in this opinion; (…) Even with all the serious critisisms that we have on IPsec, it is probably the best IP security protocol available at the moment.”

An dieser Einschätzung hat sich vermutlich in den vergangenen Jahrzehnten wenig geändert. IPsec ist weiterhin ein sehr komplexer Mechanismus. Er ist aber offenbar selbst fast 20 Jahre nach dieser Kritik immer noch der de-facto Standard, der durch fast alle Hersteller von Security Software  und Hardware durchgängig unterstützt wird.

Verwendete Begriffe

AES: Symmetrischer Verschlüsselungs-Mechanismus mit variabler Bitlänge

DES / 3DES: Symmetrischer Verschlüsselungs-Mechanismus

IKE: Internet Key Exchange – Schlüsselaustausch über ein unsicheres Netz

MD5: Hash-Funktion, die mittlerweile als unsicher gilt

PFS: Perfect Forward Secrecy https://de.wikipedia.org/wiki/Perfect_Forward_Secrecy

SHA: Hash-Funktion, die mit unterschiedlicher Schlüssellänge eindeutige Hash-Werte erzeugt.

Shared Secret: Ein nur zwei Parteien bekannte, geheime Zeichenfolge.

OpenVPN auf einer pfsense Firewall einrichten

,

Tutorial: OpenVPN auf einer pfsense Firewall einrichten

Die Einrichtung von VPN Verbindungen erfordert ein sehr gutes Verständnis, wie ein TCP/IP-Netzwerk und Netzwerk-Sicherheit grundsätzlich funktionieren. Darüber hinaus sollten Sie Grundkenntnisse in Sachen Verschlüsselung und Zertifikaten haben. Sie werden (meiner Erfahrung nach) bei der Einrichtung eines VPN an irgendeiner Stelle auf Schwierigkeiten oder Hindernisse stoßen.

Sowohl pfsense als auch OpenVPN sind Opensource-Produkte. D.h. Software-Entwickler erstellen unentgeltlich „freie“ Software, die Sie ohne Lizenzkosten nutzen dürfen. Sowohl pfsense als auch OpenVPN sind sehr gut dokumentiert und haben eine sehr lebendige Community, in der man auch (wieder ohne Kosten) Hilfe erhält. Weiterführende Links (zur Dokumentation, Tutorials, etc) finden Sie am Ende dieser Anleitung.

Nachfolgend beschreibe ich ausführlich, wie Sie

  • Einen OpenVPN Server unter pfsense grundsätzlich einrichten
  • Einzelne Benutzer mit (bzw. ohne) Benutzer-Zertifikat anlegen
  • Den Zugang für die Benutzer testen
  • Optional: Die Benutzer-Authentifizierung an ein Active-Directory anbinden.

Die Einrichtung eines VPN auf Basis von OpenVPN mit einer pfsense dauert zwischen 30 und 60 Minuten – wenn man weiß wie es geht. Bei der aller-ersten Einrichtung werden Sie (deutlich) länger brauchen und vermutlich auch auf Schwierigkeiten stoßen. Lassen Sie sich davon nicht aus dem Konzept bringen.

Hinweis: Diese Anleitung bezieht sich auf die pfsense in der Version 2.3.1-RELEASE bzw. 2.3.2-RELEASE. Das darunter liegende OpenVPN hat die Versions-Nr. 2.3.14 bzw. 2.4

Lesetipp: Wie Sie eine pfsense Firewall installieren und konfigurieren haben wir im Blog vom IT-Dienstleister Biteno GmbH bereits einmal beschrieben.

CA-Zertifikat erstellen

Der OpenVPN Dienst auf einer pfsense Firewall benötigt für das Funktionieren eine „Certificate Authority“ (kurz CA). Diese muss pro pfsense normalerweise nur einmal erstellt werden. Bitte prüfen Sie, ob die CA nicht schon besteht. Falls nicht, erstellen Sie die Certificate Authority wie folgt:

System -> Certificate Manager -> CAs -> Add

Wie Sie ihre CA nennen, spielt an sich keine Rolle – die Werte die Sie weiter unten eintragen, sind im Prinzip auch „unwichtig“. Sie müssen lediglich vorhanden sein. Wenn Sie eine pfsense Firewall im Produktiv-Einsatz bei Kunden nutzen, sollten Sie auf jeden Fall die korrekten Einstellungen (des Kunden) vornehmen, damit dessen Anwender im Zweifel wissen, mit welcher Firewall und welchen Daten Sie arbeiten.

SSL Zertifikat mit der pfsense erstellen

SSL Zertifikat mit der pfsense erstellen

Wichtig ist, dass Sie bei „Method“ den Eintrag „Create an internal Certificate Authority“ wählen.

Hinweis: Die CA benötigen Sie auf jeden Fall – egal ob die Benutzer auch ein (zusätzliches) Zertifikat erhalten oder nur per Passwort Zugriff haben.

1.2 Server-Zertifikat erstellen

Der OpenVPN Server selbst braucht später ein Server-Zertifikat. Dieses müssen Sie nun erstellen.

Dazu klicken Sie auf System -> Certificate Manager -> Certificates -> Add

Server Zertifikat mit pfsense für OpenVPN erstellen

Server Zertifikat mit pfsense für OpenVPN erstellen

Unter (1) geben Sie an, daß Sie ein internes Zertifikat („create an internal certificate“) erstellen möchten. Bei (2) wählen Sie die CA aus, die Sie schon haben bzw. im vorherigen Schritt erstellt haben. Bei (3) wählen Sie unbedingt „Server Certificate“ aus. Bei (4) tragen Sie die Daten des Kunden ein.

Wichtig ist der Eintrag unter (5): Hier wird der Common Name eingetragen. Das ist ein frei wählbarer Eintrag, der hinterher aber in der Konfiguration auftaucht. Bitte vermeiden Sie hier Umlaute oder Sonderzeichen.

Als Key Length sollten Sie mindestens 2048 bit verwenden und als Digest Algorithm z.B. sha256. Aktuell ist maximal sha512 möglich. Klicken Sie ganz unten auf „save“ und speichern das Sever Zertifikat ab.

OpenVPN Server einrichten

Bevor Sie den eigentlichen OpenVPN Server einrichten können, müssen Sie folgende Informationen beisammen haben:

  • Die CA muss erstellt sein
  • Das Server-Zertifikat muss erstellt sein
  • Sie müssen den internen IP-bereich des Netzes kennen, in dem die PFsense liegt
  • Sie brauchen ggf. einen neuen IP-Bereich für die Einwahl der remote-User
  • Die DNS-Einstellungen & DNS-Domain des Kunden-Netzes müssen Ihnen bekannt sein

Außerdem müssen Sie festlegen, ob aller Netzwerk-Traffic der VPN Nutzer durch den VPN-Tunnel gehen soll oder nicht. Die Einstellungen im Einzelnen und immer schön der Reihe nach:

1.3.1 Neuen OpenVPN Server anlegen

Um einen neuen OpenVPn Server anzulegen, navigieren Sie im Webpanel ihrer pfsense Firewall zu VPN ->OpenVPN -> Servers -> Add

OpenVPN Server auf der pfsense Firewall erstellen

OpenVPN Server auf der pfsense Firewall erstellen

Unter (1) treffen Sie die erste und ggf. auch wichtigste Einstellung: Möchten Sie die Benutzer „nur“ mit Benutzer-Name und Passwort in ihr Netz lassen (Einstellung: „remote Access (User Auth)“?

Oder möchten sie die Sicherheit erhöhen und für jeden Benutzer ein individuelles zertifikat erstellen. Das wäre dann Server Mode: „Remote Access (SSL/TLS + User Auth)“.

Wählen Sie unter (2) ihre Authentifizierungs-methode. Bis das OpenVPN wirklich funktioniert wählen Sie hier zunächst “Local Database”. Damit werden die Usernamen und Passwörter in der lokalen Datenbank der pfsense gesucht. Die weiteren Einstellungen zu Protokoll, Interface und Port lassen Sie so wie sie in den Vorgaben stehen. Sofern Sie möchten, können Sie diese Einstellungen später jederzeit ändern.

Bei (3) geben Sie einen beschreibenden Namen des OpenVPN Servers ein. Auf die Funktion hat die Bezeichnung keine Auswirkung.

Hinweis: In den allermeisten Fällen wird als Interface „WAN“ richtig sein. Ändern Sie das „empfangende“ Interface nur, wenn Sie eine atypische Situation haben – bspw. Die VPN-User in einer DMZ entgegen nehmen.

1.3.2 Cryptographic Settings

Im nun folgenden Schritt werden die Kryptographie-Einstellungen des OpenVPN Servers konfiguriert:

Kryptographische Einstellungen auf der pfsensen für das OpenVPN

Kryptographische Einstellungen auf der pfsensen für das OpenVPN

Unter (1) müssen Sie eine bestehende Peer-Certificate-Authority auswählen. In aller Regel haben Sie dafür auch nur genau eine vorhandene CA auf der pfsense. Unter „Server Certificate“ wählen Sie das vorher erstellte Server-Zertifikat für den OpenVPN Server aus.

Bei den eigentlichen Krypto-Settings ändern Sie unter (3) die Diffie-Hellmann (DH) Einstellungen von 1024 auf mindestens 2048 bits.

Die eigentlichen Verschlüsselungs-Einstellungen ändern Sie bei „Encryption Algorithm“ (4) aus. Wählen Sie hier einen Mechanismus mit mindestens 256-bit aus. Hier gilt: Je höher die Zahl, desto größer der Aufwand den Schlüssel zu knacken. Im Umkehrschluss gilt: Je höher die Zahl, desto mehr hat die Firewall mit der Berechnung zu tun. Alle weiteren Einstellungen lassen Sie auf dem Default.

1.3.3 Tunnel-Einstellungen

Im nun folgenden Teil nehmen Sie Netzwerk-Einstellungen für die VPN-User vor:

Tunnel Einstellungen des OpenVPN auf der pfsense

Tunnel Einstellungen des OpenVPN auf der pfsense

Unter (1) „IPV4 Tunnel Network“ geben Sie das Netzwerk an, aus dem die VPN-Benutzer ihre IP-Adresse bekommen. Das sollte sich vom lokalen Netzwerk (in dem die pfsense Firewall steht) unterscheiden.

Bsp.

Ihr lokales Netzwerk ist 192.168.0.0/24, dann geben Sie unter (1) z.B. 192.168.100.0/24 ein. Damit bekommen die remote User dann IP-Adressen von 192.168.100.1 bis 192.168.100.25x.

Unter (2) tragen Sie das lokale Netzwerk ein, in dem die pfsense steht. In unserem Beispiel wäre das 192.168.0.0/24.

Hinweis: Mit dem Haken bei „redirect Gateway“ bestimmen Sie ob aller traffic vom remote user durch das VPN geht oder nicht. Falls Sie den remote Usern den Zugang zu weiteren Netzwerken ermöglichen möchten oder aus Sicherheitsgründen allen traffic (bspw. Über einen Proxy-Server) überprüfen möchten, so setzen Sie den Haken hier. Rein technisch wird dadurch auf dem PC/Notebook des Anwenders die Default Route durch den Tunnel gesetzt.

1.3.4 Client Settings und advanced client Settings

Einstellungen des Kunden-Netzes in der pfsense für den OpenVPN-Tunnel

Einstellungen des Kunden-Netzes in der pfsense für den OpenVPN-Tunnel

In diesem Teil der Einstellungen tragen Sie die Netzwerk-Vorgaben wie DNS-Default Domain (2) und die zu verwendenden DNS Server (3) ein.

Unter (1) kann man einstellen, ob jeder Client seine eigene IP bekommt oder gleich sein eigenes Subnetz mit einer /30 Maske. Lassen Sie das im Zweifel auf „One IP Address per client“.

1.3.5 Advanced Configuration

Unter „advanced Configuration“ können Sie z.B. weitere Routen definieren. Diese werden mit ‚push „route Netz Netzmaske“ angegeben. Bsp.: push „route 192.168.1.0 255.255.255.0“

Als letzte Einstellungsmöglichkeit können Sie die Ausführlichkeit (verbosity) des Logs von OpenVPN einstellen. Lassen Sie diesen Wert zunächst bei „3“.

Last but not least: Klicken Sie nun noch auf „Save“ und speichern Sie den neuen OpenVPN Tunnel.

1.4 Firewall-Regeln erstellen:

Damit ihre Benutzer sich anmelden können, benötigen Sie nun noch zwei Regel auf der pfsense Firewall: Eine um die Anmeldung zu ermöglichen, eine weitere um den VPN-Verkehr ins Netz zu lassen.

1.4.1 UDP auf das WAN-Interface

1.4.2 VPN Traffic durch die pfsense

1.5 Gruppe für VPN-Benutzer einrichten

Sie benötigen für die korrekte Berechtigung der Benutzer eine Benutzer-Gruppe auf der pfsense. Falls Sie später die Authentifizierung an ihre Microsoft-AD anbinden, muss diese Gruppe unbedingt so heißen wie ihre Berechtigungsgruppe im Active Directory. Legen Sie also zunächst eine neue Gruppe an:

System -> User Manager -> Groups > Add

Erstellen Sie zunächst eine Gruppe mit dem Kontext „local“ – also eine Gruppe auf der pfsense selbst. Bearbeiten Sie die Gruppe anschließend so, dass die Rechte der Gruppe so aussehen:

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

1.6 Benutzer anlegen

Für den ersten Zugriff benötigen Sie einen lokalen Benutzer auf der pfsense. Diesen legen Sie an unter:

System -> User Manager .> Users -> Add
Neben dem Namen müssen sie natürlich ein Passwort vergeben. Außerdem nehmen Sie den Benutzer in die Gruppe für VPN Benutzer auf.

1.7 Zertifikat für Benutzer

Sofern der OpenVPN Server mit Passwort und (!) Zertifikat arbeitet, benötigt der Benutzer sein eigenes, ganz persönliches Zertifikat. Das Benutzer-Zertifikat legen Sie bei (oder nach) der Erstellung des Benutzers an.

Haken Sie dazu das Feld neben „Certificate“ an (“Click to create a user certificate”) und geben dem Zertifikat einen Namen (z.B. Benutzername-vpn-zertifikat). Der Name ist nur für Sie wichtig, damit Sie später die Benutzer-Zertifikate auseinander halten können.

Zertifikat und Einstellungen für Benutzer

Die Software für den remote-Zugang sowie das Benutzer-Zertifikat und die Einstellungen für den Benutzer exportieren Sie bequem unter: VPN -> OpenVPN -> Client Export

Sofern Sie als „Server Mode“ beim OpenVPN-Server „Remote Access(User Auth)“ gewählt haben, gibt es für alle Benutzer eine Konfigurations-Datei. Diese beinhaltet bspw. die IP-Adresse des Servers, die Authentifizierungs-Einstellungen und das Master-Zertifikat des Servers.

Wenn Sie als „Remote Access (SSL/TLS & User Auth)“ eingestellt haben, dann hat jeder Benutzer sein eigenes Installations-Paket. Das beinhaltet dann das individuelle Zertifikat des Benutzers, das bei jedem Anwender ein anderes ist, sowie die Einstellungen für das VPN sowie das Server-Zertifikat.

Tipp: Laden Sie VPN -> OpenVPN -> Client Export immer den Windows-Installer herunter. In ihm ist alles enthalten, was der Benutzer braucht. Lediglich seinen Benutzernamen und das Passwort benötigt der Anwender noch.

Installieren Sie nun das gerade exportierte Software-Paket. Bitte beachten Sie dass Sie die OpenVPN mit Administrator-Rechten auf dem PC/Notebook ausführen müssen. Testen Sie anschließend die Verbindung, in dem Sie auf das Icon von OpenVPN rechts klicken und „Verbinden“ wählen.

Wenn alles funktioniert, dann erscheint das Icon von OpenVPN anschließend in gün:

OpenVPN-Icon in der Taskleiste

OpenVPN-Icon in der Taskleiste

2 OpenVPN mit Active Directory-Integration

Wenn Sie mehr als 4-5 Benutzer haben, die OpenVPN für ihren remote-Zugang verwenden, sollten Sie eine AD-Integration einrichten.

Vorteile:

  • Sie müssen den Benutzern keinen zweiten Login (auf der PFsense) einrichten
  • Der Benutzer kann ich mit seinem AD-Nutzernamen und Passwort anmelden
  • Lediglich die Mitgliedschaft in einer AD-Gruppe definiert, ob ein AD-Benutzer mit OpenVPN arbeiten kann.

Um eine AD-Integration zu erstellen, müssen Sie folgendes tun:

  • Einrichten einer Gruppe im AD für die VPN-Benutzer
  • Erstellen einer LDAP-Verbindung von der pfsense zum AD
  • Einrichten der Authentifizierung zwischen der pfsense Firewall und dem AD für die OpenVPN-Benutzer
  • Erstellen einer lokalen Gruppe auf der pfSense mit dem gleichen Namen wie die AD-Gruppe sowie den Berechtigungen für OpenVPN
  • Anpassung der OpenVPN Installation

Die Einrichtung an sich ist nicht schwierig. Allerdings liegt der Teufel oft im Detail. Wenn Sie die nachfolgende Anleitung Schritt für Schritt durchgehen, sollte es aber klappen.

2.1 Einrichten einer Gruppe im AD für die VPN-Benutzer

Damit später klar erkennbar ist, welcher Benutzer den remote Zugang mit OpenVPN auf der pfsense benutzen darf und wer nicht, legen Sie als erstes eine Gruppe im Active Directory an.

Geben Sie dieser Gruppe einen sprechenden Namen „VPNUsers“ (oder VPNBenutzer“). Vermeiden Sie Leerzeichen oder Sonderzeichen. Fügen Sie diejenigen Benutzer-Accounts zu der Gruppe hinzu, die später das VPN nutzen dürfen.

Notieren Sie den Gruppennamen und beachten Sie welche Buchstaben groß und welche klein geschrieben werden. Die pfsense Firewall basiert auf Linux(bzw. bsd) und ist damit „case-sensitive“, d.h. sie unterscheidet Groß- und Kleinschreibung.

2.2 Ermitteln des LDAP-Kontextes

Um die pfsense später mit dem Active Directory sprechen zu lassen, müssen wir wissen, in welchen „Organizational Units“ die Benutzer liegen, deren Passwort wir prüfen möchten. Org Units sind die Container (bzw. Ordner) in denen die Benutzer angelegt sind.

Wichtig: Jeder Benutzer kann nur in einem Container (bzw. einer OU) auf einmal sein.

Dazu ermitteln Sie zunächst den LDAP-Kontext.

  • Öffnen Sie auf einem Domain Controller den ADSI Editor (Start -> Systemsteuerung >Verwaltung -> ADSI Editor)

Dort finden Sie auf oberster Ebene die Darstellung ihrer AD im LDAP-Format.

Wenn bspw. Die Domain itsc.local heißt, dann entspricht das in LDAP:

„DC=itsc,DC=local“ . Bitte beachten Sie das Komma (kein Semikolon)

LDAP-Einstellungen ermitteln mit dem ADSI Editor

LDAP-Einstellungen ermitteln mit dem ADSI Editor

Erweitern Sie nun auf der linken Seite den Baum, bis Sie den Container ihrer Benutzer gefunden haben:

Um obigen Beispiel haben wir also die Ober-OU „itscBenutzer“ unterhalb des Kontextes „itsc.local“. Unterhalb von „itscBenutzer“ finden Sie weitere OUs, die einzelnen Abteilungen entsprechen. In diesen sind in dieser Domain die Benutzer angelegt.

Bitte prüfen Sie im Benutzer-Manager ob hier tatsächlich Benutzer vorhanden sind.

Hinweis: Anstatt des im Microsoft-Windows Server vorhandenen ADSI Editors können Sie auch jeden anderen LDAP-Browser verwenden.

2.3 Benutzer für die Authentifizierung anlegen

Damit später die pfsense Firewall mit dem AD Informationen austauschen kann, benötigen wir einen lesenden Zugang zur AD. Dazu legen Sie jetzt einen Benutzer im Active-Directory an. Diesen nennen Sie bitte sprechend z.B. „pfsense“.

Vergeben Sie ein Passwort und notieren Sie dieses.

Wichtig: Stellen Sie das Konto so ein, daß das Passwort nie abläuft und nicht geändert werden muss.

2.4 LDAP-Verbindung in der pfsense einrichten

Die pfsense Firewall kann neben der lokalen Authentifizierung mit (beliebig vielen) LDAP- oder Radius-Servern sprechen.

Öffnen Sie dazu nun die Weboberfläche der pfsense. Dort navigieren Sie zu:

System -> User Manager -> Authentication Servers -> Klicken Sie auf „Add“ um eine neue LDAP-Verbindung einzurichten:

Abb. Oberer Teil der Maske „LDAP-Server Settings“

LDAP-Server zur Authentifizierung einrichten

LDAP-Server zur Authentifizierung einrichten

Vergeben Sie unter (1) einen sprechenden Namen. Als Auth-Typ stellen Sie bei (2) LDAP ein.

Hostname: bitte immer die IP unter (3) eintragen. Sonst sind sie auf funktionierendes DNS angewiesen.

Den Transport (4) stellen Sie auf TCP-Standard ein. Bei (5) Search Scope wählen Sie „entire Subtree“. Damit wird sichergestellt, dass Sie weiter unten nur den obersten Container einer OU auswählen müssen.

Bei (6) tragen Sie unter „Base DN“ die Werte ein, die Sie mit dem ADSI-Editor ermittelt haben. Bei Base-DN benötigen wir nur die oberste Domain-Ebene also „DC=itsc,DC=local“ wenn die Domain „itsc.local“ heißt.

Im darunter liegenden Feld (7) Authentication Containers müssen Sie nun die oberste OU für Benutzer eintragen, die Sie vorher mit dem ADSI-Editor ermittelt haben.

LDAP-Einstellungen in der pfsense Firewall

LDAP-Einstellungen in der pfsense Firewall

 

Im unteren Teil der Maske „LDAP Server Settings“ klicken Sie auf „extended query“ und setzen den Haken bei (1). Anschließend fügen Sie bei (2) folgendes ein:

memberOf=CN=<GRUPPENNAME>,DC=itsc,DC=local

Ersetzen Sie <GRUPPENNAME> durch den Namen der Gruppe, die Sie im Active-Directory angelegt haben. Achten Sie bitte auf Groß-Kleinschreibung. Sofern Ihre Domain anders (also itsc.local) heißt, so ändern Sie den hinteren Teil (DC=itsc,DC=local) entsprechend.

Tipp: Beim erstmaligen Einrichten empfehle ich, den Haken bei „extended Query“ zunächst weg zu lassen, bis die grundsätzliche Authentifizierung gegen die AD funktioniert. Das bedeutet, dass erst einmal jeder Benutzer, der ein funktionierendes Passwort hat, sich mittels OpenVPN anmelden kann.

Bei (3) entfernen Sie den Haken und fügen bei „Bind credentials“ (4) den Benutzer in der Form „domain\benutzer“ und bei (5) das Passwort ein. Nutzen Sie dazu den Domain-User, den Sie vorhin gerade angelegt haben.

Bei „initial Template“ (6) wählen Sie bitte „Microsoft AD“ aus. Die nachfolgenden Felder lassen Sie so wie Sie vorausgewählt sind.

LDAP prüfen innerhalb der pfsense

LDAP prüfen innerhalb der pfsense

Wenn Sie nun alles richtig eingetragen haben, klicken Sie (etwa in der Mitte der Maske) auf den blauen Button „Select a container“. Jetzt wird live in der AD folgendes geprüft:

  • Ist eine Anmeldung möglich?
  • Welche Container gibt es (noch)?

Wenn jetzt nichts passiert oder Sie eine Fehlermeldung erhalten, dann überprüfen Sie bitte die Eingaben.

Hinweis: Bitte beachten Sie das im Feld „Authentication Containers“ bereits ein valider Eintrag stehen muss, BEVOR Sie auf den blauen Button klicken.

LDAP-Container bzw. LDAP-OUs

LDAP-Container bzw. LDAP-OUs

Wenn wie im obigen Bild weitere Container (2) erkannt worden sind, funktioniert die Verbindung zum AD. Sie können nun noch weitere Container auswählen – müssen das aber nicht, wenn Sie vorher unter „search scope“ „entire subtree“ ausgewählt haben.

Speichern Sie zum Schluß die neue LDAP-Verbindung ab in dem Sie auf „Save“ klicken.

Gruppe für VPN Benutzer anlegen.

Legen Sie nun unter System-> User Manager -> Groups eine Benutzer-Gruppe an.

Dieser Gruppe geben Sie (1) den exakt gleichen Namen wie in der AD. (Groß/Kleinschreibung beachten).

Benutzer-Gruppe für VPN Benutzer

Benutzer-Gruppe für VPN Benutzer

Bei (2) wählen Sie unter „Scope“ den Eintrag „Remote“ (nicht lokal). peichern Sie die Gruppe ab.

Der gerade erstellten Gruppe geben Sie anschließend folgende Rechte:

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

Hinweis: Die Gruppe braucht keine Mitglieder. Diese werden aufgrund des Scopes (remote) im AD abgefragt.

OpenVPN Server anpassen

Zum Schluss müssen wir dem bestehenden OpenVPN Server noch diese neue Authentifizierungs-Möglichkeit mitteilen. Dazu öffnen Sie unter VPN -> OpenVPN -> Servers ihren Einwahl-Server.

Authentifizierungs-Backend für OpenVPN in der pfsense Firewall ändern

Authentifizierungs-Backend für OpenVPN in der pfsense Firewall ändern

Klicken Sie im Feld „Backend for authentication“ auf die vorher erstellte LDAP-Integration. (muss danach blau hinterlegt sein) und klicken Sie (unten) auf speichern.

Hinweis: Ein OpenVPN kann mehrere Authentifizierungs-Server abfragen. Es schadet also nicht wenn Sie neben dem LDAP auch „Local Database“ anhaken.

Ein sich anmeldender Benutzer wird immer zuerst beim LDAP-Server bzw. ihrer AD abgefragt bevor die lokale Datenbank von pfsense kontaktiert wird

Zugang für Benutzer

Innerhalb von pfsense gibt es eine komfortable Funktion eine fertige Software für Notebooks bzw. PCs pro Benutzer zu erzeugen, in der alle Daten für die Verbindung (außer dem Passwort) enthalten sind.

Um diese zu nutzen, müssen Sie den sog. „OpenVPN Client Export“ zunächst installieren. Gehen Sie zu System -> Package Manager -> Available Packages. Suchen Sie nach „openvpn-client-export“ und installieren das Software-Paket auf der pfsense.

Zugangs-Software aus pfsense exportieren

Sobald das Paket Open-VPN Client Export installiert ist, klicken Sie auf:

VPN -> OpenVPN -> „Client Export“

Export der Einstellungen (Settings) mit oder ohne Software zur Verbindung mit OpenVPN

Export der Einstellungen (Settings) mit oder ohne Software zur Verbindung mit OpenVPN

Dort haben Sie die Möglichkeit, die OpenVPN Software als Installer für einen Benutzer inklusive aller Einstellungen und Zertifikate für unterschiedliche Plattformen herunter zu laden.

Sie können natürlich auch „nur“ die Konfiguration herunter laden.

Laden Sie im Zweifel den Windows-Installer herunter und installieren Sie die OpenVPN-Client Software auf dem Rechner/Notebook mit dem Sie bzw. der Kunde von unterwegs oder zuhause auf das Firmen-Netz zugreifen möchte.

Testen Sie die Einwahl. Funktioniert alles? Falls ja – sehr gut!

Falls nicht: Machen Sie eine Pause und gehen danach die Konfiguration noch mal Schritt für Schritt durch. Wenn das keinen Erfolg bringt, dann gehen Sie die Troubleshooting-Liste (weiter unten im Text) Schritt für Schritt durch. In der Regel sind es beim VPN Kleinigkeiten, die nicht stimmen – und die Einwahl verhindern.

OpenVPN-Client von Securepoint (Windows)

Die Firma Securepoint bietet einen kostenfreien Client für PC/Notebook an, der mit OpenVPN funktioniert.

Vorteil:

  • Sieht professioneller aus als die Software von OpenVPN
  • Läuft und funktioniert ohne lokale Administrator-Rechte auf dem PC/Notebook
  • Der Securepoint-Client kann Benutzername und Passwort speichern > Das ist in der Regel für die Anwender komfortabler und bietet daher mehr Komfort

Sie können die Software unter http://sourceforge.net/projects/securepoint/files/ kostenlos herunter laden. Mit dem Securepoint Client können Sie auch unterschiedliche VPN-Einstellungen bzw. unterschiedliche VPN-Einwahlen abspeichern:

Damit Sie mit dem Securepoint Client arbeiten können, müssen Sie vorher den Client-Export durchgeführt haben. Diese Einstellungen können Sie anschließend im Securepoint Client importieren.

Import-Möglichkeit im kostenlosen Securepoint-Client für OpenVPN

Import-Möglichkeit im kostenlosen Securepoint-Client für OpenVPN

Zugangs-Software für Mac-user

Für Macbook-User, Grafiker und alle andere Style-Iconen gibt es die folgenden Software-Produkte um OpenVPN auf einem Macintosh zu nutzen:

Kostenlose Software: https://tunnelblick.net/

Kostenpflichtige Software https://www.sparklabs.com/viscosity (9 USD pro User)

VPN Troubleshooting

Bei VPNs – egal ob IPSEC oder OpenVPN – kann man beliebig viel falsch machen. Schon klein(st)e Fehler führen oft zur Fehlfunktion bzw. zum Nicht- Funktionieren des VPN.

Bei der Fehlersuche von VPNs ist es deshalb sehr wichtig, dass Sie extrem strukturiert vorgehen. Das bedeutet:

  • Dokumentieren Sie alles!
    • Was funktioniert – schreiben Sie es auf.
    • Was funktioniert nicht – notieren Sie es.
  • Ändern Sie nur einen Parameter / Schalter auf einmal
  • Bringen Sie Zeit mit. Troubleshooting im VPN ist zeitlich gesehen immer „open end“.

Grundsätzlich gilt: Nur eine Änderung auf einmal. Danach testen und Log auswerten. Danach die nächste Änderung und so weiter.

OpenVPN mit AD

Bitte schauen Sie zuerst ins Log von OpenVPN auf der pfsense Firewall. Finden sich hier Einträge? Wenn ja, was sagen Sie aus?

Googlen Sie im Zweifel nach der Fehlermeldung. Die Chancen stehen in der Regel gut, dass schon einmal ein Netzwerk-Administrator vor Ihnen den gleichen Fehler in einem Forum gepostet hat.

4.1.1 OpenVPN

Status -> System Logs -> OpenVPN

Sind hier irgendwelche Einträge vorhanden, die auf Fehler hinweise?

Wenn sie gar keine Einträge finden, dann erhöhen Sie das Debug-Level um eine Ziffer nach oben.

4.1.2 Test mit einem lokalen User

Zu allererst sollten Sie die Authentifizierung mit einem lokalen Benutzer auf der PFsense Firewall testen. Legen Sie einen lokalen Benutzer an, setzen sie das Passwort und weisen sie den Benutzer der Gruppe für VPN Zugang zu.

Anschließend laden Sie sich das Paket (Client Export) herunter und probieren die Anmeldung via OpenVPN an der Pfsense Firewall.

Wenn die Anmeldung nun funktioniert, dann gehen sie (sofern Sie gegen die AD authentifizieren möchten) zum nächsten Punkt. Falls es hier schon „klemmt“, dann prüfen Sie noch mal die Einstellungen des eingerichteten OpenVPN Servers.

4.1.3 Gruppe prüfen.

Sollte mit dem lokalen User keine Anmeldung möglich sein, dann setzen Sie vorübergehend die Rechte der VPN-Benutzer-Gruppe hoch. Weisen Sie – nur vorübergehend – alle verfügbaren Rechte der VPN-User-Gruppe zu.

Versuchen Sie die Anmeldung erneut. Klappt`s jetzt? Falls ja, entfernen Sie die nicht notwendigen Rechte schrittweise wieder, bis Sie die maximal notwendigen Rechte in der Gruppe haben, die für eine Remote-Anmeldung notwendig sind.

4.1.4 Debug Log erhöhen

Schalten Sie im OpenVPN Server das Logging eine Zahl höher (bspw: von 3 auf 4). Bitte nur auf Werte von größer als 5 setzen, wenn Sie diese Einstellung nach 10 Minuten wieder runter stellen. Ein hoher Debug-Wert belastet den Firewall (und dessen Festplatte) durch das Schreiben von extrem vielen Log-Zeilen.

4.1.5 OUs ausweiten

Um überhaupt eine Authentifizierung gegenüber der AD zu erzielen, haken Sie temporär alle OUs in der Maske an:

LDAP-Container bzw. LDAP-OUs

LDAP-Container bzw. LDAP-OUs

Wenn mit allen angehakten Kreuzchen die Einwahl möglich ist, haken Sie Schritt für Schritt die nicht mehr notwendigen OUs ab bis sie diejenigen gefunden haben, die für die Einwahl nötig sind.

4.1.6 LDAP prüfen

Bitte laden Sie sich von https://technet.microsoft.com/de-de/sysinternals/adexplorer.aspx den LDAP Explorer herunter.

Installieren sie ihn und starten Sie die Software (im Netz mit dem Active Directory). Melden Sie sich mit dem Benutzer-Account der pfsense in der Active Directory Struktur am Microsoft-Directory an. Prüfen Sie ob Sie die richtigen Bezeichnungen haben für:

  • Domain: DC=……,DC=local ?? richtig
  • Benutzer-OU:
  • LDAP-Name der Gruppe:

Prüfen Sie ob Sie die „echten“ Werte in den Einstellungen des „LDAP-Authentication Servers“ exakt so eingetragen haben.

Weiterführende Hinweise

Wenn auch diese Anleitung nicht reicht… finden Sie hier weitere Hilfe:

Pfsense Forum: https://forum.pfsense.org/index.php

Pfsense Dokukemtation https://doc.pfsense.org/index.php/Main_Page

Pfsense Howtos: https://doc.pfsense.org/index.php/Category:Howto

Viel Erfolg beim Einsatz von OpenSource-Produkten, OpenVPN und mit der pfsense Firewall.