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.

Centos 7 – firewalld Kommandozeilen-Referenz

,

Firewalld ist unter Centos 7 und RHEL 7 die Nachfolge von iptables. Es erlaubt Linux-Administratoren, neue Sicherheitsregeln zu setzen und sie zur Laufzeit zu aktivieren, ohne bestehende Verbindungen zu trennen.Wir haben im ausführlichen Tutorial zu firewalld schon einmal die unterschiedlichen Konzepte von firewalld unter Centos 7 beleuchtet. Hier sind die wichtigsten Kommandozeilen und Optionen von firewalld:

Firewalld

# firewall-cmd –state                                            gibt an, ob firewalld läuft

# systemctl status firewalld                                 im wesentlichen das Gleiche

# systemctl restart firewall-cmd                         firewalld-Dienst neu starten

# firewall-cmd –reload                                         firewalld-Regel neu laden ohne die bestehenden Verbindungen zu unterbrechen

 

Service firewalld starten / stoppen / aktivieren

# systemctl start firewalld.service

# systemctl stop firewalld.service

# systemctl status firewalld.service

Firewalld beim Systemstart (Boot) aktivieren und starten

Um den Firewall-Dienst zu aktivieren:

# systemctl enable firewalld

Um den Firewall-Dienst zu de-aktivieren:

systemctl disable firewalld

Zonen in firewalld anzeigen lassen:

# firewall-cmd –get-default-zone

# firewall-cmd –get-active-zones

# firewall-cmd –list-all

Schnittstellen / Interfaces zu Zonen zuordnen

Um das Netzwerk-Interface eth1 zu Zone „public“ hinzu zu fügen:

# firewall-cmd –zone=public –change-interface=eth1

Services in Zonen anzeigen

Alle verfügbaren Services anzeigen

# firewall-cmd –get-services

Um etwa “samba” und “samba-client” als Dienst einer bestimmten Zone hinzuzufügen. Hinweis: Der Zusatz „–permanent” hinter dem firewall-cmd Befehl macht die Änderungen dauerhaft (persistente Speicherung), so daß die Regeländerung auch nach dem Neustart des Dienstes oder dem Re-Boot greift.

# firewall-cmd –zone=public –add-service=samba –add-service=samba-client –permanent

Um die Services einer bestimmten Zone anzuzeigen:

# firewall-cmd –zone=public –list-service

Ports in einer Zone

# firewall-cmd –list-ports

# firewall-cmd –zone=public –add-port=5000/tcp

Durchstarten von Netzwerk und firewalld-Dienst

# systemctl restart network.service

# systemctl restart firewalld.service

 

Wie Sie firewalld unter Centos 7 nutzen

, ,
Passwort-Manager

firewalld ist eine komplette Firewall-Lösung, die standardmäßig auf CentOS 7 Servern verfügbar ist. Während unter Centos 6 noch iptables zum Einsatz kam, wird unter Centos 7 mit dem Dienst-Programm firewalld gearbeitet. In diesem Tutorial erklären wir, wie Sie als Linux-Administrator eine Firewall für Ihren Centos 7 Server mit firewalld einrichten und Ihnen die Grundlagen der Verwaltung der Firewall mit der firewall-cmd-Befehlszeile erklären.

Grundkonzepte in firewalld

Bevor wir anfangen, wie man das Firewall-cmd-Dienstprogramm zur Verwaltung Ihrer Firewall-Konfiguration verwendet, sollten wir uns mit einigen grundlegenden Konzepten von firewalld vertraut machen.

Zonen in firewalld

Der firewalld Dienst schützt ihren Centos 7 Server

Der firewalld Dienst schützt ihren Centos 7 Server

Der firewalld-Daemon verwaltet Gruppen von Regeln mit Elementen (bzw. Entitäten), die „Zonen“ genannt werden. Zonen sind im Wesentlichen Mengen von Regeln, die definieren, welchen Verkehr je nach dem Vertrauensniveau erlaubt werden soll, das Sie in den Netzwerken haben, mit denen Ihr Computer gerade verbunden ist. Netzwerkschnittstellen werden einer Zone zugeordnet, um das Verhalten zu bestimmen, das die Firewall zulassen soll.

Für Computer, die sich häufig zwischen Netzwerken (WLAN, Arbeit, Zuhause, …) bewegen können (wie Laptops), bietet diese Art von Flexibilität eine gute Methode, um Ihre Regeln abhängig von Ihrer aktuellen Netzwerk-Umgebung zu ändern. Sie können strenge Regeln an Orten verbieten die meisten Verkehr beim Betrieb auf einem öffentlichen WiFi-Netzwerk, während ermöglicht mehr entspannte Einschränkungen, wenn mit Ihrem Heimnetzwerk verbunden. Für einen Server sind diese Zonen nicht so wichtig, da sich die Netzwerkumgebung nur selten ändert.

Unabhängig davon, wie dynamisch Ihre Netzwerkumgebung sein mag, ist es immer noch sinnvoll, mit der allgemeinen Idee hinter jeder der vordefinierten Zonen für firewalld vertraut zu sein. Nachfolgend finden Sie die Zonen die standardmässig in firewalld vorhanden sind, In der Reihenfolge von den wenigsten vertrauenswürdigen zu den meisten vertrauenswürdigen:

  • drop: das niedrigste Vertrauensniveau. Alle eingehenden Verbindungen werden ohne Antwort abgelegt und nur ausgehende Verbindungen (vom Laptop oder Server) sind möglich.
  • block: Ähnlich wie „drop“, aber anstatt einfach nur Verbindungen zu verschieben, werden eingehende Anfragen mit einer icmp-host-deny oder icmp6-adm-deny Nachricht abgelehnt. Im Gegensatz zu oben erhält der Absender also wenigstens eine Antwort
  • public: Repräsentiert öffentliche, nicht vertrauenswürdige Netzwerke. Sie vertrauen anderen Computern nicht, sondern können ausgewählte eingehende Verbindungen von Fall zu Fall zulassen.
  • external: Externe Netzwerke für den Fall, dass Sie die Firewall als Gateway verwenden. Hier ist firewalld für NAT-Masquerading konfiguriert, so dass etwa Ihr internes Netzwerk privat aber erreichbar ist.
  • internal: Die andere Seite der externen Zone, die für den internen Teil eines Gateways verwendet wird. Die Computer sind ziemlich vertrauenswürdig und einige zusätzliche Dienste sind verfügbar.
  • dmz: Wird für Computer verwendet, die sich in einer DMZ befinden (DMZ = demilitarisierte Zone, in der Regel innerhalb eines Rechenzentrums und zwischen zwei Firewalls). Es sind nur bestimmte eingehende Verbindungen erlaubt.
  • work: Wird für PCs & Workstation verwendet. Vertraut den meisten Computer im Netzwerk. Ein paar weitere Dienste sind erlaubt.
  • home: Eine häusliche Umgebung. Es bedeutet im Allgemeinen, dass Sie die meisten anderen Computer vertrauen und dass weitere Dienste akzeptiert werden.
  • trusted: Vertraut allen Maschinen im Netzwerk. Diese offenste der verfügbaren Optionen von firewalld sollte sparsam verwendet werden.

Um die Firewall nutzen zu können, können wir Regeln erstellen und die Eigenschaften der verwendeten Zonen verändern und anschließend unsere Netzwerkschnittstellen den Zonen zuordnen.

Regelbeständigkeit von firewalld

In firewalld können Regeln als permanent oder „immediate“ (im Sinne von „sofort“) bezeichnet werden. Wenn eine Regel hinzugefügt oder geändert wird, wird standardmäßig das Verhalten der aktuell laufenden Firewall geändert und der –immediate Zusatz verwendet. Beim nächsten Stiefel werden die alten Regeln zurückgesetzt – d.h. Änderungen mit „—immediate“ sind nach einem Neustart des firewalld-Dienstes verloren

Bei den meisten Firewall-cmd-Operationen können Sie den –permanent-Zusatz nutzen, um anzugeben, dass nicht die aktuell kaufende Konfiguration gemeint ist, sondern die langfristig gespeicherte. Dies wirkt sich auf den Regelsatz aus, der beim Start von firewalld neu geladen wird. Diese Trennung bedeutet, dass Sie Regeln in Ihrer aktiven Firewall-Instanz testen und dann neu laden können, wenn es Probleme gibt. Sie können auch die –permanent-Flagge verwenden, um einen ganzen Satz von Regeln über die Zeit aufzubauen, die alle sofort angewendet werden, wenn der Reload-Befehl ausgegeben wird.

Starten von firewalld

Bevor Sie anfangen können, Firewall-Regeln mit firewalld zu erstellen, müssen wir den eigentlichen Dienst unter Centos 7 starten. Die Systemdatendatei dazu heißt firewalld.service. Wir können den Dämon für diese Sitzung starten, indem wir folgendes eingeben:

sudo systemctl start firewalld.service

 

Sie können überprüfen, ob der Service läuft und erreichbar ist:

firewall-cmd – State

Sie sehen nun, daß ihr Firewall unter Centos 7 mit der Standardkonfiguration läuft und läuft.

An diesem Punkt werden wir den Service (noch) nicht aktivieren. Die Aktivierung des Dienstes würde dazu führen, dass die Firewall beim Booten gestartet wird. Sie sollten warten, bis Sie ihre Firewall-Regeln fertig erstellt haben und außerdem Gelegenheit hatten, sie zu testen, bevor wir den Dienst beim Starten konfigurieren. So vermeiden Sie , vom Host geblockt zu werden, für den Fall dass etwas schief geht.

firewalld – Basics

Die meisten Kommandos für den firewall-Dienst werden auf der Kommando-Zeile eingegeben

Die meisten Kommandos für den firewall-Dienst werden auf der Kommando-Zeile eingegeben

Bevor wir anfangen, Änderungen vorzunehmen, sollten wir uns mit der Standardumgebung und den Regeln des Dämons vertraut machen.

Standard-Einstellungen von firewalld

Wir können sehen, welche Zone derzeit als Voreinstellung ausgewählt ist, indem Sie Folgendes eingeben:

firewall-cmd –get-default-zone

Ausgabe

public

Da wir Firewall bisher keine konkreten Befehle gegeben haben, die von der Standardzone abzuweichen, und keine unserer Schnittstellen konfiguriert ist, um Sie etwa an eine andere Zone zu binden, ist diese Zone auch die einzige „aktive“ Zone (die Zone, die den Verkehr für unsere kontrolliert Schnittstellen). Sie können das überprüfen, in den Sie folgendes eingeben:

firewall-cmd –get-active-zone

 

Ausgabe:

Public

Interfaces: eth0 eth1

Hier sehen wir, dass wir zwei Netzwerkschnittstellen (eth0 und eth1) haben, die von der Firewall  gesteuert werden. Sie werden beide derzeit nach den für die öffentliche Zone festgelegten Regeln verwaltet.

Wie können Sie nun heraus finden, welche Regeln mit der öffentlichen Zone verbunden sind? Wir können die Konfiguration der Standardzone anzeigen lassen, indem wir Folgendes eingeben:

firewall-cmd –list-all

Ausgabe

Public (Standard, aktiv)

Interfaces: eth0 eth1

sources:

services: dhcpv6-client ssh

ports:

Wir können aus der Ausgabe ableiten, dass diese Zone sowohl die Vorgabe als auch die aktive ist und dass die eth0- und eth1-Schnittstellen mit dieser Zone verbunden sind. Allerdings können wir auch sehen, dass diese Zone die normalen Operationen mit einem DHCP-Client (für IP-Adresszuweisung) und SSH (für Remote-Administration) ermöglicht.

Erforschung alternativer Zonen

Jetzt haben wir eine gute Vorstellung von der Konfiguration für die Standard- und Aktivzone. Wir können auch Informationen über andere Zonen herausfinden.

Um eine Liste der verfügbaren Zonen zu erhalten, geben Sie Folgendes ein:

firewall-cmd -get-zonen

Ausgabe

block dmz drop external home internal public trusted work

Sie können sich die spezifische Konfiguration, die mit einer Zone verbunden ist, anschauen, indem sie den Parameter –zone = in den –list-all-Befehl einfügen:

firewall-cmd – zone = home –list-all

 

Ausgabe

home

Schnittstellen:

sources:

services: dhcpv6-client ipp-client mdns samba-client ssh

ports:

Sie können alle Zonendefinitionen mit der Option –list-all-zones ausgeben. Zur besseren Lesbarkeit sollten Sie den Befehl dann mit „|less“ oder „|more“ kombinieren

firewall-cmd –list-all-zonen | less

 

Auswählen von Zonen für Ihre Netzwerk-Schnittstellen

Sofern Sie nicht Ihre Netzwerkschnittstellen anders konfiguriert haben, wird jedes Interface (also die  Schnittstelle) in die Standardzone gesetzt, wenn die Firewall gebootet wird.

Ändern der Zone einer Schnittstelle für die aktuelle Sitzung

Sie können eine Schnittstelle zwischen den Zonen während einer Sitzung übergeben, indem Sie den Parameter –zone = in Verbindung mit dem Parameter –change-interface = verwenden. Wie bei allen Befehlen, die die Firewall ändern, müssen Sie sudo verwenden.

Zum Beispiel können wir unsere eth0-Schnittstelle in die „home“ -Zone übergehen, indem wir folgendes eingeben:

sudo firewall-cmd – zone = home – change-interface = eth0

Immer wenn Sie eine Schnittstelle zu einer neuen Zone übergeben, sollten Sie sich darüber bewusst sein, dass Sie wahrscheinlich die Dienste ändern, die in Betrieb sein werden. Zum Beispiel bewegen wir uns hier in die „home“ Zone, die SSH zur Verfügung stellt. Das bedeutet, dass unsere Verbindung nicht unterbrochen werden sollten. Einige andere Zonen sind standardmäßig nicht SSH aktiviert und wenn Ihre Verbindung unter Verwendung einer dieser Zonen gekappt wird, können Sie sich nicht wieder anmelden.

Sie überprüfen, dass dies erfolgreich war, indem wir wieder nach den aktiven Zonen fragen:

firewall-cmd –get-active-zonen

 

Wenn die Firewall komplett neu gestartet wird, wechselt die Schnittstelle zur Standardzone:

sudo systemctl restart firewalld.service

firewall-cmd –get-active-zonen

Ausgabe

public

interfaces: eth0 eth1

Zone Ihrer Schnittstelle dauerhaft ändern

Mehr Sicherheit mit der richten Firewalld-Konfiguration unter Centos 7

Mehr Sicherheit mit der richten Firewalld-Konfiguration unter Centos 7

Schnittstellen werden immer auf die Standardzone zurückgesetzt, wenn sie keine alternative Zone haben, die in ihrer Centos  Konfiguration abgespeichert ist. Bei CentOS 7 sind diese Konfigurationen im Verzeichnis /etc/sysconfig/network-scripts mit Dateien des Formats ifcfg-<interface-name> definiert.

Um eine Zone für das Interface zu ändern, öffnen Sie die Datei, die mit der Schnittstelle verknüpft ist, die Sie ändern möchten. Bsp mit eth0 (erste Netzwerkkarte):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Am unteren Rand der Datei setzen Sie die ZONE = Variable auf die Zone, die Sie mit der Schnittstelle verknüpfen möchten. In unserem Fall wäre das die „home“ -Schnittstelle:

/ etc/sysconfig/network-scripts/ifcfg-eth0

ZONE = home

Speichern und schließen Sie die Datei. (:wq in vi)

Um Ihre Änderungen zu übernehmen, müssen Sie den Netzwerkdienst neu starten – anschließend das Gleiche mit dem firewalld -Dienst:

sudo systemctl restart network.service

sudo systemctl restart firewalld.service

Nachdem Ihre Firewall neu gestartet wurde, können Sie sehen, dass Ihre eth0-Schnittstelle automatisch in die „home“ gesetzt wird:

firewall-cmd –get-active-zones

Ausgabe

home

interfaces: eth0

public

interfaces: eth1

Falls dies nicht die tatsächliche Zone ist, die Sie für diese Schnittstelle verwenden möchten, so machen Sie diese Einstellung einfach wieder rückgängig und starten die beiden Dienste erneut

Einstellen der Standardzone

Wenn Sie alle Ihre Schnittstellen  in einer einzigen Zone verwalten können, ist es wahrscheinlich einfacher, die für Ihren Einsatzzweck passendste Standardzone auszuwählen und diese dann diese für Ihre Konfiguration zu verwenden.

Sie können die Standardzone mit dem Parameter –set-default-zone = jederzeit ändern. Dadurch wird sofort eine beliebige Schnittstelle geändert, die auf die Voreinstellung der neuen Zone zurückgefallen ist:

sudo firewall-cmd –set-default-zone = home

Ausgabe

home

interfaces: eth0 eth1

Festlegung von Regeln für Ihre Dienste & Anwendungen

Die grundsätzlich Art und Weise, Firewall-Ausnahmen für die Dienste zu definieren, die Sie zur Verfügung stellen möchten, ist einfach

Hinzufügen eines Dienstes zu Ihren Zonen

Die einfachste Methode ist es, die Dienste oder Ports, die Sie benötigen, den Zonen zuzuweisen, die Sie hauptsächlich verwenden. Auch hier können Sie mit der Option –get-services eine Liste der verfügbaren Dienste abrufen:

firewall-cmd -get-services

output

dhcp dhcpv6 dhcpv6-client dns ftp … (gekürzt) samba-client smtp ssh telnet tftp tftp-client vnc-server

Hinweis

Sie können weitere Einzelheiten zu jedem dieser Dienste erhalten, indem Sie ihre zugehörige XML-Datei im Verzeichnis/usr/lib/firewalld/services betrachten. Zum Beispiel ist der SSH-Service wie folgt definiert:

/usr/lib/firewalld/services/ssh.xml

<? Xml version = „1.0“ encoding = „utf-8“?>

<Service>

<Short> SSH </ short>

<Description> Secure Shell (SSH) ist ein Protokoll für die Anmeldung und Ausführung von Befehlen auf entfernten Rechnern. Es bietet sichere verschlüsselte Kommunikation. Wenn Sie planen, auf Ihre Maschine remote über SSH über eine Firewall-Schnittstelle zuzugreifen, aktivieren Sie diese Option. Sie benötigen das für diese Option installierte openssh-Serverpaket. </ Description>

<Port protocol = „tcp“ port = „22“ />

</ Service>

Sie können einen Dienst einer Zone mit dem Parameter –add-service = hinzufügen. Die Operation wirkt sich auf die Standardzone oder die Zone, die durch den Parameter –zone = angegeben wird aus. Standardmäßig wird nur die aktuelle Firewall-Sitzung angepasst. Sie können die permanente Firewall-Konfiguration anpassen, indem Sie das –permanent-Flag hinzu fügen..

Wenn wir zum Beispiel einen Webserver mit konventionellem HTTP-Verkehr betreiben, können wir diesen Datenverkehr für Schnittstellen in unserer „öffentlichen“ Zone für diese Sitzung zulassen, indem Sie Folgendes eingeben:

sudo firewall-cmd –zone = public –add-service = http

Sie können den Zusatz „–zone =“ weglassen, wenn Sie die Standardzone ändern möchten. Sie können überprüfen, ob die Operation erfolgreich war, indem Sie die –list-all- oder –list-services-Operationen verwenden:

firewall-cmd – zone = public –list-services

Ausgabe

dhcpv6-client http ssh

Sobald Sie getestet haben, dass alles so funktioniert, wie es sollte, werden Sie wahrscheinlich die permanenten Firewall-Regeln ändern, damit Ihr Service nach einem Neustart weiterhin verfügbar ist. Wir können Zonenänderung der „public“-Zone durch Eingabe durchführen:

sudo firewall-cmd –zone = public –permanent –add-service = http

Sie können überprüfen, ob dies erfolgreich war, indem Sie das –permanent-Flag zum –list-services-Vorgang hinzufügen. Sie müssen sudo für – permanent Abfragen verwenden:

sudo firewall-cmd –zone = public –permanent –list-services

Ihre „public“ Zone erlaubt nun den HTTP-Webverkehr auf Port 80. Wenn Ihr Webserver für die Verwendung von SSL/TLS konfiguriert ist, möchten Sie auch den https-Dienst hinzufügen. Wir können das in der aktuellen Session hinzufügen und die permanente Regel aktivieren bzw. speichern durch Eingabe von:

sudo firewall-cmd – zone = public –add-service = https

sudo firewall-cmd –zone = public –permanent –add-service = https

Wenn kein entsprechender Service vorhanden ist?

Die Firewall-Services, die in der firewalld-Installation enthalten sind, stellen viele der häufigsten Anforderungen für Anwendungen dar, auf die Sie Zugriff haben können. Allerdings kann es Anwendungsfälle geben, in denen diese Dienste nicht Ihren Anforderungen entsprechen.

In dieser Situation haben Sie zwei Möglichkeiten.

Öffnen eines Ports für ihre Zonen

Der einfachste Weg, um Unterstützung für Ihre spezifische Anwendung hinzuzufügen, ist, die Ports zu öffnen, die es in der entsprechenden Zone (n) verwendet. Dies ist so einfach wie die Angabe der Port- oder Port-Bereich und das zugehörige Protokoll für die Ports, die Sie öffnen müssen.

Zum Beispiel, wenn unsere Anwendung auf Port 5000 läuft und TCP verwendet, könnten wir dies in der „public“ Zone für diese Sitzung mit dem Parameter –add-port = hinzufügen. Protokolle können dabei entweder tcp oder udp sein:

sudo firewall-cmd – zone = public –add-port = 5000/tcp

Sie können überprüfen, dass dies mit der Anwendung –list-ports erfolgreich war:

firewall-cmd –list-Ports

Ausgabe

5000/tcp

Es ist auch möglich, einen sequentiellen Bereich von Ports zu spezifizieren, indem der Anfangs- und End-Port im Bereich mit einem Bindestrich getrennt wird. Zum Beispiel, wenn unsere Anwendung UDP-Ports 4990 bis 4999 verwendet, könnten wir diese auf „public“ durch die folgende Eingabe einstellen:

sudo firewall-cmd – zone = public –add-port = 4990-4999/udp

Nach dem Testen würden wir diese wahrscheinlich der permanenten Firewall hinzufügen wollen. Sie können das tun, indem Sie folgendes eingeben:

sudo firewall-cmd – zone = public –permanent –add-port = 5000/tcp

sudo firewall-cmd – zone = public –permanent –add-port = 4990-4999/udp

sudo firewall-cmd –zone = public –permanent –list-ports

Ausgabe:

4990-4999/udp 5000/tcp

 

Einen Dienst definieren

Blog kein Loch in die Centos Firewall "bohren" ...

Blog kein Loch in die Centos Firewall „bohren“ …

Bestimmte Ports für eine Zone zu öffnen ist einfach. Es kann auf Dauer aber schwierig sein, den Überblick zu behalten, welcher Port-Wert zu welchem Dienst gehört. Wenn Sie jemals einen „Service“ auf Ihrem Server ausschalten, können Sie sich vielleicht nur schwer daran erinnern, welche Ports, die geöffnet wurden, noch erforderlich sind. Um diese Situation zu entschärfen, ist es möglich, eigene Services zu definieren.

Services sind einfach Sammlungen von Ports mit einem zugehörigen Namen und einer Beschreibung. Die Verwendung von Diensten ist einfacher zu verwalten als Ports, erfordert aber etwas Vorarbeit in der Konfiguration von Centos 7. Der einfachste Weg ist das Kopieren eines vorhandenen Skripts (zu finden in/usr/lib/firewalld/services) in das Verzeichnis/etc/firewalld/services, in dem die Firewall nach Nicht-Standarddefinitionen für firewalld sucht.

Zum Beispiel könnten wir die SSH-Service-Definition kopieren, um für unsere „Beispiel“ Service-Definition wie diese zu verwenden. Der Dateiname abzüglich des .xml-Suffixes bestimmt den Namen des Dienstes in der Liste der Firewall-Dienste:

cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/beispiel.xml

Nun können Sie die Definition in der Datei, die Sie kopiert haben, anpassen:

Sudo nano /etc/firewalld/services/beispiel.xml

Zum Starten enthält die Datei die SSH-Definition, die Sie kopiert haben:

/etc/firewalld/services/beispiel.xml

<? Xml version = „1.0“ encoding = „utf-8“?>

<Service>

<Short> SSH </ short>

<Description> Secure Shell (SSH) ist ein Protokoll für die Anmeldung und Ausführung von Befehlen auf entfernten Rechnern. Es bietet sichere verschlüsselte Kommunikation. Wenn Sie planen, auf Ihre Maschine remote über SSH über eine Firewall-Schnittstelle zuzugreifen, aktivieren Sie diese Option. Sie benötigen das für diese Option installierte openssh-Serverpaket. </ Description>

<Port protocol = „tcp“ port = „22“ />

</ Service>

Der Großteil dieser Definition sind eigentlich Metadaten. Sie werden vermutlich am besten den Kurznamen für den Dienst innerhalb der <short> -Tags ändern. Dies ist ein besser lesbarer Name für Ihren Service. Sie sollten ebenfalls eine Beschreibung hinzufügen, so dass Sie mehr Informationen haben, wenn Sie den Service prüfen (und vorher nicht mehr wissen, wofür er gedacht ist).

Die einzige Ändreug, die Sie machen müssen, die tatsächlich die Funktionalität des Dienstes beeinflusst, wird wahrscheinlich die Port-Definition sein, wo Sie die Portnummer und das Protokoll identifizieren, die Sie öffnen möchten. Dies kann mehrfach angegeben werden.

Für unseren „Beispiel“ -Dienst stellen Sie sich vor, dass wir Port 7777 für TCP und 8888 für UDP öffnen müssen. Wir könnten die bestehende Definition etwas folgendermaßen  ändern:

/etc/firewalld/services/beispiel.xml

<? Xml version = „1.0“ encoding = „utf-8“?>

<Service>

<Short> Beispiel Service </ short>

<Description> Dies ist nur ein Beispiel Service. Es sollte wohl nicht auf einem realen System verwendet werden. </ Description>

<Port protocol = „tcp“ port = „7777“ />

<Portprotokoll = „udp“ Port = „8888“ />

</ Service>

Speichern und schließen Sie die Datei. Laden Sie Ihre Firewall neu, um Zugang zu Ihrem neuen Service zu erhalten:

sudo firewall-cmd – reload

Sie können sehen, dass es jetzt unter der Liste der verfügbaren Dienste ist:

firewall-cmd -get-services

Ausgabe

RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns Beispiel ftp hochverfügbarkeit http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy Pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client übertragung-client vnc-server wbem-https

Sie können diesen Service jetzt in all Ihren Zonen verwenden.

Eigene Zonen in firewalld erstellen

Während die vordefinierten Zonen für die meisten Benutzer wahrscheinlich mehr als ausreichend sind, kann es hilfreich sein, eigene Zonen zu definieren, die etwa eine andere Benennung oder Beschreibung haben.

Zum Beispiel möchten Sie vielleicht eine Zone für Ihren Webserver mit dem Namen „publicweb“ erstellen. Allerdings möchten Sie vielleicht eine andere Zone für den DNS-Dienst konfigurieren, den Sie in Ihrem privaten Netzwerk bereitstellen. Vielleicht möchten Sie eine Zone namens „privateDNS“ dafür.

Beim Hinzufügen einer Zone müssen Sie diese der permanenten Firewall-Konfiguration hinzufügen. Sie können die Definition dann erneut laden, um die Konfiguration in Ihrer laufenden Sitzung zu verwenden. Zum Beispiel könnten wir die beiden Zonen, die wir oben besprochen haben, wie folgt erzeugen:

sudo firewall-cmd –permanent –new-zone = publicweb

udo firewall-cmd –permanent –new-zone = privateDNS

Sie können überprüfen, ob diese in Ihrer permanenten Konfiguration vorhanden sind, indem Sie Folgendes eingeben:

sudo firewall-cmd –permanent –get-zonen

Ausgabe

block dmz drop external home internal privateDNS public publicweb trusted work

Wie bereits erwähnt, sind diese in der aktuellen Instanz der Firewall noch nicht verfügbar:

firewall-cmd -get-zonen

Ausgabe

block dmz drop external home internal public trusted work

Laden Sie die Firewall neu, um diese neuen Zonen zu aktivieren:

sudo firewall-cmd – reload

firewall-cmd -get-zonen

Ausgabe

block dmz drop external home internal privateDNS public publicweb trusted work

Jetzt können Sie anfangen, die entsprechenden Dienste und Ports zu Ihren Zonen zuzuordnen. Es ist normalerweise eine gute Idee, die aktive Instanz anzupassen und diese Änderungen nach dem Testen in die permanente Konfiguration zu übertragen. Zum Beispiel können Sie für die „publicweb“ -Zone die SSH-, HTTP- und HTTPS-Dienste hinzufügen:

sudo firewall-cmd – zone = publicweb –add-service = ssh

sudo firewall-cmd –zone = publicweb –add-service = http

sudo firewall-cmd –zone = publicweb –add-service = https

firewall-cmd –zone = publicweb –list-all

Ausgabe

Publicweb

(…)

Ebenso können wir den DNS-Service in unsere Zone „privateDNS“ hinzufügen:

sudo firewall-cmd – zone = privateDNS –add-service = dns

firewall-cmd –zone = privateDNS –list-all

Ausgabe

PrivateDNS

Wir könnten dann unsere Interfaces (z.B. eth0) zu diesen neuen Zonen ändern, um sie auszuprobieren:

sudo firewall-cmd – zone = publicweb – change-interface = eth0

sudo firewall-cmd – zone = privateDNS – change-interface = eth1

An dieser Stelle haben Sie die Möglichkeit, Ihre Konfiguration zu testen. Wenn diese Werte für Sie zufriedenstellen funktionieren, wollen Sie die gleichen Regeln der permanenten Konfiguration hinzufügen. Sie können das tun, indem Sie die Regeln mit dem –permanent-Flag erneut anwenden:

sudo firewall-cmd –zone = publicweb –permanent –add-service = ssh

sudo firewall-cmd –zone = publicweb –permanent –add-service = http

sudo firewall-cmd –zone = publicweb –permanent –add-service = https

sudo firewall-cmd –zone = privateDNS –permanent –add-service = dns

Sie können anschließend Ihre Netzwerkschnittstellen ändern, um automatisch die richtigen Zonen auszuwählen. Wir können etwa die eth0-Schnittstelle mit der „publicweb“ -Zone verbinden:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth0

ZONE =publicWeb

Und Sie können die eth1-Schnittstelle mit „privateDNS“ verknüpfen:

vi/etc/sysconfig/network-scripts/ifcfg-eth1

/etc/sysconfig/network-scripts/ifcfg-eth1

ZONE = privateDNS

Anschließend können Sie Ihre Netzwerk- und Firewall-Services neu starten:

sudo systemctl restart Netzwerk

sudo systemctl restart firewalld

 

Überprüfen der korrekten Zuweisung  der Zone(n)

firewall-cmd –get-active-zonen

Ausgabe

PrivateDNS

interfaces: eth1

Publicweb

interfaces: eth0

So prüfen Sie, dass die entsprechenden Dienste für beide Zonen zur Verfügung stehen:

firewall-cmd –zone = publicweb –list-services

Ausgabe

Http htpps ssh

firewall-cmd –zone = privateDNS –list-services

Ausgabe

Dns

Sie haben Ihre eigenen Zonen erfolgreich eingerichtet. Wenn Sie eine dieser Zonen als Standard für andere Schnittstellen machen möchten, denken Sie daran, dieses Verhalten mit dem Parameter –set-default-zone = <ZONE> zu konfigurieren:

Sudo firewall-cmd –set-default-zone = publicweb

Aktivieren des firewalld Dienstes beim Booten

Am Anfang des Tutorials haben wir unseren Firewall-Service gestartet, aber ihn (noch) nicht aktiviert. Wenn Sie jetzt mit Ihrer aktuellen Konfiguration für den firewalld-Dienst zufrieden sind und ihn getestet haben, können Sie den Service aktivieren damit er beim nächsten Reboot des Centos 7 Servers startet.

Das erledigen Sie mit dem Kommando:

sudo systemctl enable firewalld

Wenn der Server neu gestartet wird, sollte ihre Firewall gestartet werden, deine Netzwerkschnittstellen sollten in den  von Ihnen konfigurierten Zonen gelegt werden (oder auf die konfigurierte Standardzone zurückgreifen), und die Regeln, die mit der Zone (n) verknüpft sind, werden auf die zugehörigen Schnittstellen angewendet.

Fazit zu firewalld unter Centos 7

Sie sollten nun ein gutes Verständnis dafür haben, wie Sie den firewalld-Service auf Ihrem CentOS-7-System für den täglichen Gebrauch verwalten können.

Mit dem firewalld-Dienst können Sie Wartungsregeln und Regelsätze konfigurieren, die Ihre konkrete Netzwerkumgebung berücksichtigen. Es ermöglicht Ihnen, nahtlos zwischen verschiedenen Firewall-Richtlinien durch die Verwendung von Zonen zu wechseln und gibt Ihnen bzw. Administratoren die Möglichkeit, das Port-Management in „freundlichere“ Service-Definitionen zu abstrahieren.

Sollten Sie konkrete Fragen zum Einsatz von Centos 7 oder firewalld in der Praxis haben, so stehen Ihnen die IT-Experten vom IT-Dienstleister Biteno GmbH gerne zur Verfügung.

 

Hinweis: Dieser Artikel ist eine sinngemäße Übersetzung von https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7

 

Netzwerksicherheit für Ihr Unternehmen

, ,
Netzwerksicherheit für Ihr Unternehmen

Netzwerksicherheit bzw. Netzsicherheit gilt in der IT-Branche als kein fest definierter Begriff. Er beschreibt vielmehr alle notwendigen Maßnahmen zu Planung von Netzwerken, deren Überwachung sowie Sicherheit. Da sich ein Großteil der hierbei anfallenden Tätigkeiten nicht auf technische Gegebenheiten, sondern auf die jeweilige Organisation selbst stützt, wird der modernen Netzwerksicherheit einschließlich all ihrer Facetten eine hohe Komplexität zugeschrieben.

Netzwerksicherheit: Potentielle Gefahrenquellen für ein Unternehmen

„Der Feind im eigenen Netzwerk“ ist eine durchaus gängige Aussage unter Spezialisten für Netzwerksicherheit. Besonders beliebte Angriffsziele sind in diesem Zusammenhang Netzwerkprotokolle. Diese dienen dem Austausch von Daten jedweder Art.

Darüber hinaus verständigen sich eine Vielzahl unterschiedlicher Prozesse über derartige Kommunikationsströme. Populäre Netzwerkprotokolle, wie zum Beispiel TCP/IP sind sowohl nicht geschützt als auch eines der ersten Angriffspunkte potentieller Netzwerkattacken.

Gefahrenquellen für die NetzwerksicherheitEine beliebte Methode ist hierbei die so genannte „Man-in-the-Middle“-Attacke, welche dem Hacker erlaubt, unbemerkt die Kommunikation zweier oder mehrerer Kommunikationspartner zu verfolgen.

Ein großer Unsicherheitsfaktor entsteht derzeit außerdem durch Malware, welche meist ihren Weg über gut formulierte und zugleich unscheinbar wirkende E-Mails findet. Öffnet der betroffene Mitarbeiter in gutem Glauben den Anhang, kann die Netzwerksicherheit erheblich kompromittiert sein. Fatale Auswirkungen hat es, wenn sich der Angestellt aus Angst oder Unwissenheit nicht sofort mit der EDV-Abteilung in Verbindung setzt.

Gleichzeitig genießen Denial-of-Service-Attacken unter kriminellen Hackern eine große Beliebtheit. Diese Angriffe haben das Ziel, einen Server so auszulasten, dass dieser im Internet für andere Anwender nicht mehr zur Verfügung steht. Um das zu erreichen, werden massenhaft große Datenpakete an den jeweiligen Server geschickt, der letztendlich mit diesen vielen Anfragen vollkommen überfordert ist.

Das Unternehmens-Netzwerk richtig schützen

Das Unternehmensnetzwerk richtig schützenBereits der bewusste Umgang mit IT-Technologien reduziert das Schadrisiko laut einer Bitkom-Studie um bis zu 80 Prozent. Hierzu zählt beispielsweise die Schulung bzw. Sensiblisierung der Mitarbeiter sowie das Verschlüsseln von vertrauenswürdigen Daten. Daneben sollten Sie unbedingt ihr Netzwerk permanent und lückenlos überwachen.

Außerdem ist es wichtig, dass sowohl für den Empfang und Versand von E-Mails als auch für die Nutzung sozialer Netzwerke klare Sicherheitsrichtlinien bestehen, welche von allen Mitarbeitern des Unternehmens eingehalten werden müssen.

Die EDV-Abteilung einer Firma ist daher dazu angehalten, alle Maßnahmen einzuleiten, welche eine möglichst hohe Netzwerksicherheit gewährleisten. Diese müssen sich natürlich im Alltag umsetzen lassen und von allen Organisationen gelebt werden.

Der richtige Zeitpunkt für spezialisierte Dienstleister

Insbesondere kleine sowie mittelständische Unternehmen können oftmals nicht die notwendigen Personal-Ressourcen aufbringen, um ihr Netzwerk in vollem Umfang vor Attacken auf dasselbe zu schützen. Handelt es sich darüber hinaus um ein sensibles Arbeitsumfeld mit anspruchsvollen Kunden, sollte die Wahl schnell für einen spezialisierten Dienstleister getroffen sein.

Große Unternehmen mit einer gut bestückten EDV-Abteilung haben oftmals das Problem, dass die Mitarbeiter in derart viele Projekte eingespannt sind, dass keine Zeit mehr für Fort- und Weiterbildungen bleibt. Ein externer Dienstleister kann hierbei eine nützliche Unterstützung sein, um das fehlende Wissen in Form von Workshops zu ergänzen oder der Übernahme bestimmter Aufgaben vorübergehend Personal zu ersetzen.

Pfsense Firewall installieren und konfigurieren

,
Das Dashboard gibt direkt nach der Anmeldung via Web eine Übersicht über den Status der pfsense

Was ist eine pfsense Firewall?

Pfsense ist eine Opensource Firewall-Software. D.h. die Software wird von vielen Entwicklern weltweit „kostenlos“ programmiert und kann von jedem (sowohl Einzelpersonen als auch Firmen) genutzt werden. Pfsense basiert auf FreeBDS – einem Linux Derivat. Im Gegensatz zu den meisten Linux-Systemen auf denen das Programm „iptables“ für Firewall-Regel zum Einsatz kommt, nutzt FreeBSD zur Steuerung von Netzwerk-Verkehr einen Paket-Filter. Das „pf“ von PFsense steht für Paket-Filter.
PFsense kann unter https://www.pfsense.org/download/ herunter geladen werden. Auf der Website von pfsense.org kann auch direkt Firewall-Hardware gekauft werden. Für unsere Zwecke reicht aber bereits ein älterer PC. Dazu gleich mehr.

Neben pfsense gibt es noch eine Anzahl weiterer Firewalls die auf Opensource basieren.
– IPCOP (mittlerweile veraltet),  http://www.ipcop.org/
– M0n0wall: http://m0n0.ch
– Endian http://www.endian.com/de/
– OPNsense: https://opnsense.org/about/about-opnsense/ (Fork von pfsense)

Pfsense ist unter den Opensource Firewalls das zur Zeit (Stand 2017) bekannteste Projekt und hat dabei die größte aktive Anzahl an Entwickler bzw. Supportern.

2 Virtuelle Maschine anlegen / PC vorbereiten

Um eine pfsense zu installieren benötigen Sie meistens wenig echte Hardware-Ressourcen. Wich-tig sind 2 Netzwerk-Karten. Ohne zweite Netzwerk-Karte macht der Firewall wenig Sinn, da er ja nun mal zwei Netze (das interne und das externe) voneinander trennt.

Wenn die pfsense physisch installiert werden soll: 2- Kerne, 2 GB RAM, 10 -15 GB HDD. Oft ge-nügt ein alter PC (auf Celeron Basis), in den eine zweite Netzwerkkarte eingebaut wird. Wichtiger als die Leistung des Geräts ist die Zuverlässigkeit und Stabilität der Firewall. Schließlich soll die pfsense Firewall ja viele Monate bzw. Jahre zuverlässig ihren Dienst tun.

Für die pfsense gibt es fertige Distributionen für so genannte Appliances. Das sind fertige Geräte (meist auf Basis einer kleineren CPU – Atom bspw.) bei denen neben wenig RAM eine Flash-Speicherkarte eingebaut ist. Diese sind oft sehr genügsam was den Stromverbrauch angeht und reichen für kleine Firmen oder Home-Offices meistens aus.

Ebenso genügsam sind die Anforderungen wenn die pfsense z.B. unter VMWare virtualisiert wird. Hierbei wieder wichtig: 2 NICs mit je einem Bein im LAN und einem Bein im WAN.

3 Pfsense einrichten

3.1 Installation

Zur Installation einer pfsense legen Sie die CD ins Laufwerk, booten und folgen anschließend dem Assistenten (engl. Wizard). Auf Geräten, die von USB booten können, reicht oft auch ein bootbarer USB-Stick auf dem Sie vorher das ISO-Image von pfsense entpackt haben.
Download: https://www.pfsense.org/download/

Der Installations-Screen der pfsense

Der Installations-Screen der pfsense

Die Fragen des Installations-Assistenten bestätigen Sie mit „ok“ und lassen die Installation durch-laufen. Der Reihe nach werden nun erst die notwendigen File-Systeme angelegt, anschließend formatiert und danach mit den Bits und Bytes der pfsense-Distribution bestückt.

Bei der Installation werden die Filesysteme neu formatiert - daher vorher Daten sichern!

Bei der Installation werden die Filesysteme neu formatiert – daher vorher Daten sichern!

Der Vorgang ist je nach Geschwindigkeit der Hardware – insb. Der Festplatte – nach einigen, we-nigen Minuten fertig. Danach werden Sie aufgefordert die neu installierte Firewall neu zu booten.

Am Ende der Installation folgt der obligatorische Reboot

Am Ende der Installation folgt der obligatorische Reboot

Bestätigen Sie das, entfernen Sie die CD-ROM (egal ob physisch oder virtuelle) und rebooten die Firewall.

3.2 Konfiguration

Nach dem Reboot meldet sich die pfsense Firewall mit dem Einrichtungs-Bildschirm. Hier müssen Sie zunächst die Zuweisung der Netzwerk-Interfaces durchführen.
Tipp: Sofern Sie eine virtuelle pfsense einrichten: Schauen Sie unter VMWare nach den MAC-Adressen und notieren sich diese (meist reichen die letzten 3-4 Stellen um die Anschlüsse ausei-nander zu halten). Bei physischen Maschinen schauen Sie vorher auf die Interface-Karten oder notieren sich die MAC-Adresse im Bios.

Der wichtigste Punkt der Konfiguration: Zuweisung der Netzwerk-Schnittstellen

Der wichtigste Punkt der Konfiguration: Zuweisung der Netzwerk-Schnittstellen

Wählen Sie im obigen Screen (1) um die Zuordnung des externen (WAN) und internen (LAN) Inter-faces durchzuführen. Mit (2) ändern Sie direkt danach mindestens die LAN-Adresse der Firewall auf ihr Netzwerk ab.

Direkt danach müssen Sie von einem PC/Server im internen LAN die IP-Adresse der Firewall pin-gen können (hier im Beispiel 192.168.1.254). Sofern der Ping auf das LAN-Interface der pfsense erfolgreich isrt, wechseln Sie für alle weiteren Arbeiten auf einen PC/Notebook/Server im internen LAN.

Melden Sie sich dort mit einem Browser an der LAN-Adresse des Firewalls an. URL: https://192.168.1.254
Das initiale Passwort für die erste Anmeldung lautet „pfsense“. Der Username ist „admin“.

3.3 Wizard starten

Starten Sie im Web-Browser anschließend den Wizard, mit dem Sie DNS, Zeitzone und die Zeit-Server einrichten:

Die Einstellungen sind an sich fast selbst erklärend:

Einstellen der korrekten Zeitzone für die pfsense Firewall

Einstellen der korrekten Zeitzone für die pfsense Firewall

 

Zum Schluß ändern Sie die WAN-Adresse des externen Interfaces und ändern das Passwort für den Web-Benutzer „admin“ ab.

Last but not least: Ein sicheres Passwort für die Web-Oberfläche der pfsense

Last but not least: Ein sicheres Passwort für die Web-Oberfläche der pfsense

Damit ist der Wizard abgeschlossen und die Firewall fast betriebsbereit.

Lesetipp: Wie Sie sich selbst schwierige Passwörter gut merken können.

3.4 Minimal-Regeln

Die pfsense Firewall hat in ihrer Grund-Einstellung folgenden Regeln (siehe Screenshot weiter unen). Diese finden Sie unter Firewall => Rules.

Die Standard-Regeln für die Firewall nach der ersten Installation.

Die Standard-Regeln für die Firewall nach der ersten Installation.

Aller Netzwerk-Verkehr aus dem LAN kann von intern nach extern ist erlaubt und wird mit Network Adress Translation (NAT) von internen IP-Adressen auf externe gemappt. (Tab bzw. Rei-ter „LAN“)
Aller Netzwerkverkehr von außen nach innen wird blockiert. (Tab bzw. Reiter „WAN“)

Bitte testen Sie nun von einem Endgerät aus dem LAN heraus ob Sie eine öffentliche Adresse pingen können.
Test: Ping zu 8.8.8.8 geht? Gut. Dann machen Sie weiter

4 Update der pfsense / weitere Anpassungen

4.1 Software-Updates

Jetzt ist ein guter Zeitpunkt, um die pfsense auf den aktuellen Stand der Software zu bringen. Sie erhalten die SW-Updates online aus dem Repository von pfsense:
System -> Updates -> durchlaufen lassen. => Reboot.

Achtung: Beim Reboot werden je nach Update Umfang mehrere Pakete entpackt und installiert.
Das kann ein paar Minuten dauern. Halten Sie durch – bitte nicht die Nerven verlieren. Sofern Sie die pfsense virtuell auf VMWare oder Hyper-V installiert haben, können Sie sich den Fortschritt der Installation direkt auf der System-Konsole anschauen.

4.2 DNS einstellen

Per Default ist auf der pfsense ein DNS-Resolver eingestellt. Das kann man so lassen oder den DNS-Resolver aus machen und DNS-Forward (empfohlen) einstellen.
Ein DNS-Resolver ist dabei der eigentliche DNS-Dienst. Die pfsense übernimmt also normale DNS-Aufgaben.
Beim DNS-Forwarder werden DNS Anfragen von der pfsense direkt an einen erreichbaren DNS-Server weiter geleitet.

4.3 NTP einstellen

Beim NTP-Service binden Sie den NTP-Dienst bitte an das LAN-Interface und setzen zusätzlich zum Eintrag „0.pfsense.pool.ntp.org“ den zweiten „1.pfsense.pool.ntp.org“.

Bindung des NTP-Dienstes an den internen LAN-Port

Bindung des NTP-Dienstes an den internen LAN-Port

4.4 SSH Dienst

Die pfsense sollte nur intern via ssh zu erreichen sein. Dazu müssen Sie den ssh-Dienst aber erst frei schalten: System -> advanced => Ssh erlauben.
In diesem Zusammenhang macht es Sinn, die „System Console“ mit einem Passwort zu schützen.

4.5 Weitere Services auf einer pfsense

Wer mag kann nun noch SNMP ermöglichen. Ebenso hat die pfsense die Möglichkeit einen Wake-On LAN Dienst zu betreiben. Auch ein DHCP Services ist vorhanden.

4.6 Log Einstellungen

Einstellen der Protokollierung auf der pfsense Firewall

Einstellen der Protokollierung auf der pfsense Firewall

Um später in den Auswertungen und Protokollen der pfsense immer die aktuellen Einträge oben zu haben, setzen Sie unter Status => System Logs => Settings den Haken bei „… show log entries in reverse order“.

5 Weitere Setup-Punkte auf der pfsense Firewall

Hier nur der Reihe nach weitere Einstellungen, die auf einer pfsense möglich sind.

5.1 Weitere Interfaces.

Die pfsense kann weitere Interfaces haben. Bspw. eines für eine DMZ (demilitarisierte Zone) oder für ein WLAN. Sobald die pfsense das Interface als solches erkannt hat, können Sie den Anschluss auch konfigurieren. Sofern im verbauten PC ein WLAN-Chip vorhanden ist, mit dem die pfsense bzw. Free-BSD etwas anfangen kann, so aktivieren Sie diesen unter =>Interfaces => „assign“ => Wireless.
Unter => Interfaces => „assign“ können Sie generell die weiteren Interfaces einem physischen Netzwerk-Anschluss zuweisen.

Zuweisung weiterer Interfaces z.B. für eine DMZ oder das WLAN

Zuweisung weiterer Interfaces z.B. für eine DMZ oder das WLAN

Die eigentliche Einrichtung des zusätzlichen Interfaces machen Sie danach unter => Interfaces => „Interface-Name“.

5.2 Weitere IP-Adressen

Für bestimmte Einsatzfälle können weitere externe IP-Adressen interessant sein. Diese werden der pfsense unter => Firewall => Virtual IPs eingetragen und können anschließend genutzt werden.
Einsatzfall: Die Mails an den internen Mail-Server sollen über eine zweite IP-Adresse angenommen werden.

5.3 VLANs

Für den Fall, daß Sie mehr Anschlüsse an der pfsense benötigen als Sie Adapter haben, können Sie VLANs einsetzen. Voraussetzung dafür ist allerdings, daß Sie einen VLAN-fähigen Switch nut-zen und dieser entsprechend konfiguriert ist.

5.4 Carp / pfsync

Sofern man zwei pfsense Firewalls als redundante Lösung einsetzen möchte, so bietet die pfsense auch hier eine entsprechende Funktion an. Dazu benötigen Sie zwei baugleiche Geräte – die in jedem Fall die gleiche Anzahl an Interface-Anschlüssen haben müssen.
Damit pfsync funktioniert, benötigt jede Firewall ein weiteres Interface mit dem es sich mit der Nachbar-Firewall austauschen kann. Über dieses Netzwerk wird dann ein so genannter Heartbeat ausgetauscht über den die Firewalls ermitteln welche Firewall im Moment das „führende“ System ist.

5.5 Dynamic DNS / DynDNS & Co

Nur für den Fall, daß die pfsense keine feste (=statische) IP für das WAN-Interface hat: die pfsense kann mit mehreren Dutzend Anbietern von DynDNS Lösungen umgehen. Diese tragen Sie unter => Services => Dynamic DNS ein.

DynDNS Einstellung in der Konfig der pfsense

DynDNS Einstellung in der Konfig der pfsense

Die pfsense meldet dann jeweils beim Update des WAN-Interfaces die neue externe IP an den Service-Anbieter (z.B. DynDNS).
Wichtig dabei zu wissen: Ein zuverlässiger Betrieb von Inhouse-Servern, die über das Internet erreichbar sein sollen, ist auf diesem Weg nicht zu erreichen.

5.6 Traffic Shaper

Mit dem Traffic Shaper kann Netzwerk-Verkehr priorisiert werden. Dazu gibt es grob gesagt zwei Einsatzfälle:

5.6.1 Internen Netzwerk-Verkehr nach extern priorisieren.

Der Netzwerkverkehr einiger Geräte soll hoch oder runter priorisiert werden.
Bsp.: Der Traffic der Kinder (im LAN) die ständig auf Youtube Videos schauen soll gegenüber dem restlichen Zugriffen aufs Internet runter priorisiert werden, damit die Eltern flüssig arbeiten können.
Oder: VoIP-Verkehr wird gegenüber Daten-Verkehr hoch priorisiert.

5.6.2 Verkehr nach extern über mehrere Leitungen priorisieren.

Für den Fall dass an der pfsense mehrere WAN-Anschlüsse vorhanden sind, kann der ausgehende und eingehende Verkehr über eben diese Anschlüsse intelligent verteilt werden.

Für beide Fälle empfiehlt sich die Nutzung des Wizards, mit dem die ersten Regeln für den Netz-werk-Verkehr erstellt werden.

5.7 Virtual Private Network (VPN)

Die pfsense kann mit anderen Firewalls über die folgenden Protokolle verbunden werden:
– IPSEC
– OpenVPN
– L2TP (Layer 2 Tunnel Protokoll)
Wir verwenden bei der Biteno
– IPSEC um Standorte zwischen zwei Firewalls miteinander zu vernetzen
– OpenVPN für die Einwahl von Benutzern.

In begründeten Ausnahmen kann man auch OpenVPN für die Standort-Vernetzung verwenden oder IPsec für die Einwahl von Benutzern.

Die ausführliche Beschreibung eines VPN für Benutzer auf Basis von OpenVPN auf einer pfsense haben wir im Blog des IT Dienstleisters Biteno GmbH schon einmal hier beschrieben.

6 Status / Log-Files / Was tut die pfsense

Die pfsense gibt über eine Art Dashboard direkt nach der Anmeldung in der Weboberfläche bereits einen guten Überblick über den aktuellen Zustand der Firewall:

Das Dashboard gibt direkt nach der Anmeldung via Web eine Übersicht über den Status der pfsense

Das Dashboard gibt direkt nach der Anmeldung via Web eine Übersicht über den Status der pfsense

Unter (1) erkennen Sie ob ein neues SW-Release vorhanden ist und installiert werden kann.
Unter (2) und (3) erkennen Sie auf einen Blick wie ausgelastet die pfsense ist.
Rechts oben bei (4) haben Sie alle Interfaces im Blick.
Sofern Sie weitere Software wie etwa Snort installiert haben, sehen Sie dessen letzte Meldungen unter (5).

6.1 Aktuellen Netzwerk Verkehr beobachten

Die aktuelle Auslastung der pfsense sehen Sie unter => Status => Traffic Graph. Hier sehen Sie wer in diesem Moment welche Bandbreite nutzt.

Traffic Graph in der pfsense

Traffic Graph in der pfsense

6.2 Historische Verbrauchs / Traffic-Daten

Um die vergangene Auslastung der pfsense einzusehen gab es in der Version 1.x unter => Status => RRD Graphs eine Darstellung des vergangener Auslastung der Interfaces. Seit der Version 2.x der pfsense ist das Tool etwas versteckt. Sie finden es nun unter => Status => Monitoring.

Historische Traffic-Darstellung (ehemals RRD Graph)

Historische Traffic-Darstellung (ehemals RRD Graph)

Dort müssen Sie allerdings oben links „left axis“ zuerst „Traffic“ im Drop-Down Menü auswählen.
Danach können Sie unter „Time Period“ die gewünschte Dauer einstellen.

7 Weitere Regeln für die Firewall

In den meisten Fällen möchten Sie den vorhandenen Regel-Satz für den Netzwerk-Verkehr auf der pfsense abändern.
Egal ob Sie von bestimmten PCs aus nur eingeschränkte Internet-Nutzung erlauben wollen, oder Mails von außen nach innen durchlassen möchten. Sie müssen dazu entweder eine neue Regel anlegen oder eine bestehende Regel verändern.

7.1 Ein gut gemeinter Rat zur Verwaltung von Regeln auf der Firewall

Wiederstehen Sie bitte unbedingt der Versuchung direkt in einzelne Firewall-Regeln direkt IP-Adressen einzutragen. Auf Dauer werden Sie mit wachsender Anzahl von Regeln ihr eigenes Re-gelwerk nicht mehr durchschauen. Nutzen Sie unbedingt Aliases für die Gruppierung von Hosts, Netzen oder einzelnen Ports.

7.2 Alias-Liste anlegen

Bevor Sie Regeln auf einer pfsense erstellen, sollten Sie sich kurz die Sektion Firewall => Aliases anschauen. Hier können Sie beliebige Gruppen (Aliase) bilden. Eine Gruppe kann dabei aus Hosts-Einträgen (in der Regel IP-Adressen), ganzen Netzwerken oder einzelnen TCP-Ports bestehen.
Legen Sie als Beispiel einmal eine neue Gruppe mit dem Namen SMTPSender an.

Einen Alias anlegen auf der Firewall

Einen Alias anlegen auf der Firewall

Sie müssen dazu lediglich einen möglichst sprechenden Namen wählen und die Art (Type) der Liste. Wählen Sie hier „Host(s)“ aus.
Fügen Sie der Liste nun einzelne Server oder Endgeräte zu, die Mails versenden dürfen. Das ist im Zweifel der eigene Exchange-Server – einzelne PCs (die das wirklich brauchen) und etwa der Multifunktions-Scanner der Scan-2-Email beherrscht.
Speichern Sie die Alias-Liste nun ab.

7.3 Ausgehenden SMTP Verkehr einschränken

Eine der größten Gefahren ist nach wie vor der unbemerkte Versand von Mail von infizierten PCs aus. Diese Gefahr kann man mit der pfsense aber sehr einfach eindämmen.
Als erstes Klicken Sie auf Firewall => Rules => Reiter „LAN“ und dann auf „Add“

Unter (1) haben Sie die Möglichkeit Netzwerk-Verkehr zu blockieren oder durchzulassen. Im Bild oben wir der Traffic blockiert. Weiter unten bei (2) stellen Sie das Interface ein, auf das sich die Regel bezieht und bei (3) das Netzwerk-Protokoll.
Weiter unten im Bereich Source können Sie nun einstellen, wer etwas darf oder eben auch nicht.
Im obigen Beispiel unterbinden wir bei (1) zunächst allen Traffic von intern nach extern der als Quelle (Source Port Range) SMTP – also E-Mail – aufweist.
Mit dem Haken bei „invert match“ (4) erlauben wir aber ausgesuchten Hosts, die rechts bei (5) mit SMTPSender angegeben sind, dennoch Mails zu senden.

Mit dieser Regel erlauben wir also nur ausgesuchten Einträgen der Alias-Liste „SMTPSender“ Mails auf Port 25 nach extern zu senden. Mit dieser einfachen Regel können wir sicher stellen, daß ein mit Schadcode oder einem Computer-Virus infizierter PC nicht direkt per SMTP-Protokoll Teil eines Bot-Netzwerks wird.

7.4 Emails ins Netz lassen

In vielen Fällen betreiben Kunden in ihren lokalen Netzen einen Mail-Server. Egal ob das auf einem Small Business-Server oder mit einem MS-Exchange Server realisiert wird: Dieser Server muss Mails senden können und auf spezifischen Ports mit der Außenwelt kommunizieren können.

Um das zu realisieren, benötigen wir zwei Dinge:
– Die Weiterleitung von Netzwerk-Traffic auf die interne IP des Mailservers
– Eine Regel, die diesen Traffic auch erlaubt.

7.4.1 Weiter-Leitung von eingehendem Traffic

Die Weiterleitung von Traffic wird unter => • Firewall => NAT => Port Forward eingerichtet. Klicken Sie auf „Add“.

Eine Weiterleitungs-Regel auf der pfsense einrichten

Eine Weiterleitungs-Regel auf der pfsense einrichten

Unter (1) wählen Sie den Neztwerkanschluss auf dem der Netzwerkverkehr von außen ankommt. Das ist im Zweifel „WAN“. Sofern Sie lediglich eine WAN-IP-Adresse haben steht unter (2) „WAN Address“. Beim Einsatz von mehreren IP-Adressen auf dem WAN Internface müssen Sie hier die richtige IP auswählen.
Unter (3) und (5) legen Sie den Port bzw. den Portbereich fest, dessen Verkehr weiter geleitet werden soll. In unserem Beispiel ist das Port 25 (also SMTP).
Im Feld „redirect target IP“ (4) legen Sie die interne IP-Adresse fest an die der Netzwerk-Verkehr gesendet werden soll.
Tipp: Sie können in jedem Feld in das Sie eine IP-Adresse eintragen können auch einen Alias verwenden, den Sie vorher unter => Firewall => Alias angelegt haben.

Wenn Sie im letzten Feld den Eintrag bei „Filter rule association“ so lassen wie abgebildet, so wird von der pfsense die für das Port-Forwarding notwendige Regel gleich mit erstellt.

7.4.2 Erlauben des Traffic

Wie schon erwähnt, benötigt das Port-Forwarding eine eigene Regel, die den Traffic erlaubt. Das ist insofern „logisch“ da die Standard-Regel für eingehenden Verkehr auf „block“ steht. D.h. nichts kommt rein. Daher müssen Sie entweder die Regel beim Port-Forwarding mit erstellen lassen oder nachher selbst von Hand anlegen.

Die für den SMTP-Verkehr notwendige Regel

Die für den SMTP-Verkehr notwendige Regel

Die für unser Beispiel notwendige Regel zum Weiterleiten von SMTP-Traffic sieht dann z.B. so aus: Unter (1) ist definiert, daß der nachfolgend beschriebene Verkehr durchgelassen wird („pass“).
Unter (2) definieren Sie wieder das Interface, auf dem der Traffic auf die pfsense trifft – hier „WAN“. Unter (3) könnten Sie die Herkunft noch einschränken, was in unserem Fall aber wenig Sinn macht. Bei „destination port range“ (4) wählen wir wieder bewußt nur „SMTP“ also Port 25 aus. Unter (5) „Destination“ muss dann wieder die IP-Adresse oder der Alias des Mail-Servers stehen.

Lesetipp: Wie Sie Microsoft Exchange (Version 2010) auf Windows Server R2 richtig installieren.

8 Software auf der pfsense installieren

Grundsätzlich gilt: Auf einer Firewall sollte nur Software laufen, die zum Betrieb der Firewall not-wendig ist. Sonst nichts.

Auf die pfsense Firewall können unterschiedliche Software-Pakete aus dem Repository von pfsen-se installiert werden. So kann die pfsense etwa um einen Web-Proxy wie squid oder ein Intrusion-Preventions System wie snort erweitert werden.

8.1 Open-VM Tools

Sofern die pfsense virtuell auf VMWare läuft: Open-VM-Tools verbessern die Performance der pfsense unter VMWare und ermöglichen es einen kontrollierten Shutdown der virtuellen pfsense vom vSphere Client aus.

8.2 NRPE

Der Nagios Remote Plugin Executor ist dann hilfreich, wenn im Monitoring der Status der pfsense Firewall abgefragt werden soll. NRPE läßt sich sowohl in Nagios als auch in Icinga(2) Umhgebun-gen nuzten.

Die Installation ist einfach: Paket nrpe suchen und installieren.
Wichtig: Anschließend muss NRPE konfiguriert werden, so daß möglichst nur der Monitoring-Server (namentlich per IP) auf die NRPE Installation auf der pfsense zugreifen kann.
Services => NRPE2

Das NRPE Plugin auf der pfsense richtig konfigurieren

Das NRPE Plugin auf der pfsense richtig konfigurieren

Wichtig hier: Bindung nur an die LAN Adresse und immer (den richtigen) Monitoring Server ange-ben. Das kann Nagios, Icinga oder Icinga2 (Satellit oder Master) sein.

8.3 OpenVPN Client Export

Wer später die pfsense zur Einwahl mit OpenVPN nutzen möchte, wird das Paket „openvpn-Client-export“ installieren wollen. Damit ist es sehr bequem und einfach den Remote-Benutzern ihre VPN Konfiguration und Zugangs-Informationen zukommen zu lassen.

8.4 pfBlockNG

Seit der Version 2.2.x kann die pfsense Firewall um eine Software namens pfBlockNG (NG steht für next generation) erweitert werden. Im Wesentlichen lädt die SW Listen von geographischen IP-Bereichen herunter. Auf Basis dieser alle paar Stunden aktualisierten Listen können dann Regeln erstellt werden, um bspw. bestimmte IP-Adress-Bereiche bestimmter Regionen grundsätzlich aus-zusperren.
Kurzübersicht mit Version 2.2.x https://www.youtube.com/watch?v=6rjbTxKsoBE
Tutorial zur Einrichtung unter 2.3.x https://www.youtube.com/watch?v=M81kFLEhhZQ

8.5 Squid

Squid ist ein Web-Proxy. D.h. er übernimmt die Aufgabe Webseiten aus dem Internet zu cachen und kann als Reverse-Proxy genutzt werden.
Vorteil: Mehrfach-Downloads werden vermieden. Dazu müssen aber alle Benutzer im lokalen Netz den Web-Proxy nutzen.
Aber Achtung: Der Squid speichert viel und oft auf der lokalen Festplatte der pfsense. Den Squid sollte man nur einsetzen, wenn auf der pfsense Firewall echte Platten verbaut wurden.
Nach der Installation muss der Squid Proxy konfiguriert werden. Das ist in 1-2 Minuten erledigt.
Services -> Squid
Schritt 1: Local Cache festlgen , d.h. wo und wie speichert der squid die Dateien
Schritt 2: (Tab General): Squid enablen
In der Regel wird man der Einfachheit halber den transparent mode des Squid einschalten. Dabei schaltet sich der squid zwischen den Browser des Nutzers und den Web-Server der abgefragt wird. Der Benutzer merkt davon nichts.

8.6 SquidGuard

Hier kann ein Inhaltsfilter für den Zugriff auf Webseiten eingebaut werden. Damit können dann bspw. Zugriffe auf nicht erlaubte oder nicht gewollte Inhalte unterbunden werden.

8.7 Snort auf pfsense

Snort ist ein Intrusion Detection bzw. Intrusion Prevention System. Snort ist (wie pfsense und squid auch) Opensource und kann sowohl auf einer pfsense als auch auf anderen Plattformen eingesetzt werden. Zu Snort sind weiter reichende Einstellungen auf der pfsense notwendig, so daß wir dazu eine separate Anleitung erstellen.

9 Pfsense aktualisieren / Upgrade

Die pfsense zu aktualisieren ist innerhalb der 2.3.x Reihe kein Problem. Von 2.3.1 ist der Upgrade auf 2.3.x per Web-GUI möglich. Der Update von einer alten Version 1.2.x auf 2.x sollte vorher ge-testet werden.

10 Downloads / Links

Pfsense Download: https://www.pfsense.org/download/
Pfsense Docu: https://doc.pfsense.org/index.php/Main_Page
Pfsense Forum: https://forum.pfsense.org/

Das Buch zu pfsense ist zwar schon aus dem Jahr 2009 und bezieht sich auf die 1.2er Version. Da die Konzepte darin aber grundsätzlich noch richtig sind, lohnt auch hier ein Blick hinein.
https://www.amazon.de/Pfsense-Definitive-Christopher-M-Buechler/dp/0979034280

Falls Sie bis hierhin noch nicht von der pfsense überzeugt sind, finden Sie auf Wikipedia eine Liste aller bekannten Firewall-Distributionen

https://en.wikipedia.org/wiki/List_of_router_and_firewall_distributions

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.