Beiträge

Software Defined Storage mit CEPH

, , ,

Datenwachstum als Herausforderung der IT

Das stetige Wachstum der Datenmengen ist ein Problem, dem sich jede IT-Abteilung früher oder später stellen muss. Nutzen Sie ausschließlich klassische Speicherlösungen wie SAN oder NAS müssen die zur Verfügung stehenden Kapazitäten irgendwann mühsam erweitert werden. Eine solche Maßnahme hat des öfteren auch eine kurze downtime zur Folge, da nicht jede Erweiterung im laufenden Betrieb möglich ist.

Damit stellt sich bereits ein weiteres großes Problem ein. Kunden erwarten heutzutage, dass IT-Services zu 100 % an jedem Tag und zu jeder Stunde verfügbar sind. Downtimes werden immer weniger toleriert, besonders im Bereich von Rechenzentren sowie des Hostings. Eine mögliche Lösung um diese Zeiten zu minimieren oder gar völlig auszuschließen bietet beispielsweise Software Defined Storage oder kurz SDS.

Ceph geht neue Wege

Ceph Architektur

Abbildung 1
Ceph Architektur

Schwierigkeiten bei Software Defined Storage

CEPH ist aber keineswegs perfekt und bringt selbstverständlich auch Nachteile mit sich. Ein Merkmal mit dem man sich vor der Inbetriebnahme auseinandersetzen muss, sind die Latenzen die SDS im Vergleich zu Direct Attached Storage (DAS) mit sich bringt. Die erhöhte Komplexität des Software Stacks in Kombination mit den verwendeten Netzwerkverbindungen erhöhen die Latenz pro IO signifikant.

Es erweist sich als äußerst schwierig die Latenz unter den Wert von einigen Millisekunden für Schreibvorgänge zu senken. Woher diese Latenz kommt lässt sich verdeutlichen, wenn man sich die Arbeitsweise von CEPH bei Schreibvorgängen etwas genauer betrachtet (Abbildung 2).

Ein synchroner IO muss vom Client zur primären OSD gesendet werden. Die primäre OSD schickt anschließend die Anzahl konfigurierter Replikationen zu weiteren OSD’s und deren Journalen. Sobald die Repliken auf den Journalen aller OSD’s vorliegen, wird der Vorgang an die primäre OSD bestätigt. Hat die primäre OSD nun alle Bestätigungen erhalten, wird eine Bestätigung an den Client gesendet und dieser kann den nächsten IO senden. Das verdeutlicht schon weshalb es bereits zu Latenzen innerhalb des Software Stacks kommt.

SDS mit Ceph - Arhcitektur

Abbildung 2

Zusätzlich spielt auch das eingesetzte Netzwerk bei Ceph eine entscheidende Rolle. Es gilt hier zunächst unnötige Hops zu vermeiden, da jeder Hop etwa 200us Latenz mit sich bringt. Ein 10GE Netzwerk gilt hierbei als das absolute Minimum, welches Sie beim Einsatz von Ceph oder einem anderen verteilten Speichersystem verwenden sollten. Das verringert Latenzen und erhöht die Bandbreite. Eine zusätzliche Verbesserung bringt Ihnen selbstverständlich der Einsatz von RDMA, jedoch müssen hier die Kosten beachtet werden. All diese Faktoren spielen eine wichtige Rolle und müssen optimiert werden um Latenzen unter dem 2ms Level zu erhalten und dabei eine Balance zwischen Kosten und Nutzen zu finden, was natürlich nicht immer einfach ist.

 

Anforderungen an eine gute SDS Lösung

Damit Sie nach der Einführung einer SDS Lösung wie Ceph nicht enttäuscht sind, gibt es einige Punkte zu beachten. SSDs oder (Enterprise SSD oder NVME SSD) für die Journale, in denen die Schreibvorgänge gecached werden, sowie ein 10GE Netzwerk sind nach herrschender Meinung innerhalb der Ceph Community und unseren eigenen Erfahrungen ein Muss. Für die OSD’s sollten nach Möglichkeiten SAS3 HDD’s verwendet werden. Es ist auch denkbar bei Bedarf einen Teil der OSD’s rein aus SSDs zu erstellen und gesondert zur Verfügung zu stellen. Wichtig ist zudem keine RAID Arrays zu verwenden. Ceph profitiert stark von vielen unabhängigen Festplatten. Einem schwerwiegenden Datenverlust entgehen Sie zudem indem Sie mehrere Server mit möglichst vielen Festplatten (OSD’s) bereitstellen

Die CPU sollte möglichst viele Prozessor-Kerne haben, und der Arbeitsspeicher mit etwa 1-2 GB pro OSD berechnet werden um hier keinen Flaschenhals zu generieren. Der Einsatz von RDMA muss wohl überlegt sein und kommt auf den speziellen Workload an. Werden extrem niedrige Latenzen und hohe Bandbreite über 10 GE benötigt bietet es sich eventuell eher an auf ein spezielles Storage System wie GPFS, BeeGFS oder Lustre  in Kombination mit Infiniband/Omnipath zu setzen.

Fazit zu Ceph

Zusammenfassend lässt sich sagen, dass Software Defined Storage definitiv eine gute Möglichkeit darstellt, um stetig wachsende Datenbestände einfacher zu verwalten. Jedoch hat Software Defined Storage genau wie jede andere Lösung gewisse Einschränkungen denen man sich bewusst sein muss. Im modernen IT-Betrieb wird man aber nicht auf SDS verzichten können. Die mitgebrachten Vorteile wie Skalierbarkeit, einfache Erweiterung und eine sehr hohe Verfügbarkeit werden zunehmend wichtiger.

Weiterführende Links zum Thema:

Was ist Opensource?

, ,

Open Source Software – auch für Unternehmen eine echte Alternative

Der Einsatz einer neuen Software bietet neben den Chancen, die ein neues Werkzeug mit sich bringt, auch zahlreiche Risiken. Denn neben der Einarbeitungszeit der Mitarbeiter, die in der betriebswirtschaftlichen Rechnung nicht fehlen darf, sind es eben auch die Kosten für die Anschaffung von Lizenzen und die laufende Wartung der Software selbst, die deutlich zu Buche schlagen. Hier kann Opensource Software helfen.

Teile der Kosten einer Software-Einführung lassen sich jedoch bereits im Vorhinein verhindern. Der Einsatz von Open Source Software senkt die Anschaffungskosten bzw. Lizenzkosten für Unternehmens-Software im Vorfeld praktisch auf null und ein Teil der Wartung erledigt durch die Opensource Community bereits von selbst. Doch was ist Opensource Software eigentlich – und worauf lässt sich ein Unternehmen ein, das solche Software verwendet?

Wie die Idee zu Opensource entstand

Das Logo der ersten OpenSource Software: Netscape

Das Logo der ersten OpenSource Software: Netscape

Open Source ist bei Software ein inzwischen gut 20 Jahre altes und sehr bewährtes Konzept. Damals stellte das Unternehmen Netscape sämtlichen Quellcode seines Browsers „Netscape“ öffentlich zur Verfügung. Grund hierfür war, dass der direkte Konkurrent Microsoft diesen inzwischen weitgehend vom Markt verdrängt hatte. Durch die Veröffentlichung gelang eine stetige Weiterentwicklung – der erfolgreiche Browser Mozilla Firefox basiert auf dem Quellcode von Netscape.

Schnell wurde deutlich, dass es sowohl Entwicklern als auch Nutzern enorme Vorteile bringen kann, wenn eine Software nicht nur von einem einzigen Unternehmen erdacht und umgesetzt wird. Waren bis dahin vor allem proprietäre Systeme im Einsatz, gerieten diese doch aufgrund der fortschreitenden Komplexität der IT immer wieder an ihre Grenzen. Die weitere Verbreitung der Idee von Open Source übernahm die Open Source initiative (OSI), die unter anderem vom Gründer des gleichnamigen Fachbuchverlags, Tim O’Reilly übernommen wurde.

Was Open Source Software ausmacht

Unabhängig davon, welchem Zweck eine Open Source Software dient, erfüllt sie immer drei grundsätzliche Standards:

– Der gesamte Quellcode der Software ist frei zugänglich und liegt in einer für Menschen lesbaren Form vor;

– Nutzung, Verbreitung und das Kopieren der Software unterliegen keinen Beschränkungen;

– Eine Veränderung der Software und die Verbreitung der veränderten Version ist ebenfalls gestattet;

Durch diese grundlegenden Gemeinsamkeiten entstehen deutliche Vorteile bei der Verwendung von Open Source Software. Zunächst ist es für zahlreiche Programmierer möglich, sich bis ins Detail mit einer Software zu befassen. Dadurch wird ihnen ermöglicht, die Software nicht nur in vollem Umfang zu verstehen, sondern sie auch um weitere wichtige Funktionen zu erweitern und diese Verbesserungen zu verbreiten. Somit steigt der Nutzwert einer Software deutlich an, ebenso ihre Akzeptanz bei privaten Anwendern und in der Wirtschaft.

 

Wie Open Source Software weiterentwickelt wird

Sowohl der Stand der Technik als auch die Ansprüche der Unternehmen an eine Software ändern sich im Lauf der Zeit. Damit eine kontinuierliche Weiterentwicklung von Open Source Software gewährleistet ist, sind hierfür spezielle Entwicklungsbibliotheken entstanden. Die bekanntesten „Marktplätze“ für Opensource-Software sind etwa Github und Sourceforge.

Diese Websites bieten den organisatorischen Rahmen für Software-Entwickler, um reibungslos an der Weiterentwicklung eines umfangreichen Projekts teilzunehmen. Hier werden Wissen und Ressourcen geteilt, Entwicklungsvorhaben besprochen und koordiniert und die notwendigen Ressourcen mit der Öffentlichkeit geteilt. Selbstverständlich können sich hier auch alle Interessierten über diese Programme informieren und sie herunterladen.

Eine andere Möglichkeit der Weiterentwicklung ist die spezifische Entwicklung von zusätzlichen Komponenten für ein Unternehmen. Dies ergibt immer dann Sinn, wenn die Entwicklungskosten relativ niedrig gehalten werden sollen und deswegen bereits auf ein gut funktionierendes Basis-System zurückgegriffen werden kann.

Da viele Open Source-Programme sowohl eine große Akzeptanz unter Anwendern als auch eine breite Basis von Entwicklern aufweisen können, lassen sich so recht oft problemlos maßgeschneiderte Lösungen für den eigenen (Unternehmens-)Bedarf entwickeln.

Open Source ist nicht immer kostenlos

Auch wenn der grundsätzliche Quellcode einer Open Source Software kostenfrei erhältlich ist, gilt dies selbstverständlich nicht für jede Erweiterung oder gar alle Dienstleistungen, die mit der Open Source Software in Verbindung stehen. Ein Beispiel: Eines der wichtigsten in der Wirtschaft eingesetzten Content Management Systeme ist neben dem populären WordPress das Web-CMS  Typo3. Diese Open Source Software ist mit mehreren Hunderttausend Installationen weltweit auf Webservern im Einsatz. Das Programm dient zur Erstellung und Pflege umfangreicher Websites, sowohl für den Außenauftritt von Unternehmen als auch für zahlreiche Intranets.

Da Typo3 sehr komplex und höchst variabel im Einsatz ist, werden in den nutzenden Unternehmen immer auch Mitarbeiter auf das System geschult. Diese Schulungen finden oftmals durch zertifizierte Drittanbieter statt, die für die Lehrgänge entsprechende Gebühren erheben.

Ebenfalls gibt es für unterschiedliche Anwendungszwecke des Systems zahlreiche kostenpflichtige Plugins, um eine für den eigenen Bedarf maßgeschneiderte Lösung zu erhalten. Lizenzgebühren für den Betrieb von Typo3 selbst fallen jedoch nicht an.

Fertige – wenn auch kostenpflichtige – Module für WordPress oder Typo3 können etwa auf den Markplätzen von envato erworben werden.

Ein weiterer gewichtiger Vorteil von Open Source Software ist die Unabhängigkeit von einem einzelnen Unternehmen. Denn auch wenn der ursprüngliche Anbieter die Weiterentwicklung einstellt, steht der Quellcode dennoch zur Verfügung und kann von Dritten gepflegt und erweitert werden.

Open Source ist (fast) überall

Das Logo der Opensource Software PHP

Neben dem Browser Firefox und bekannten Marktgrößen wie WordPress oder Typo3 gibt es zahlreiche weitere Bereiche in der IT, wo Open Source Software in großem Umfang zum Einsatz kommt:

– Die meisten auf Linux basierenden Betriebssysteme wie Centos, Ubuntu und Debian oder FreeBSD

– Zahlreiche Programmiersprachen wie etwa Java, Java Script, php, Ruby oder Python

– Diverse Software-Bibliotheken wie das ZendFramework (php) oder NodeJS (Javascript)

– Viele Mailserver, beispielsweise postfix, exim oder sendmail

– Viele Firewalls wie etwa pfsense basieren auf Opensource Software

– Der am häufigsten verwendete Webserver Apache ist ebenfalls Open Source

– Mit ClamAV gibt es sogar eine Opensource Antivirus Software.

– Viele Spam-Beseitigungs-Dienste basieren auf OpenSouce Produkten wie etwa SpamAssasin

AngularJS ist ein Jaascript Framework

Firmen wie der Suchmaschinen-Gigant Google setzen schon lange auf OpenSource Software – in dem sie selbst Opensource nutzen oder in dem sie in Opensource Projekten mitarbeiten bzw. diese selbt anstossen (bspw. wie Angular JS – einem Javascript Framework)

Auch der weltweite Marktführer von Betriebssystemen und Desktop-Anwendungen – Microsoft – hat inzwischen festgestellt, dass die Verwendung proprietärer, also geschlossener Software nicht der einzige Weg ist, um erstklassige Software zu produzieren und aktuell zu halten. Zwar geht Microsoft nicht so weit, die wichtigsten Komponenten seines Kerngeschäfts als Open Source zur Verfügung zu stellen – aber auch hier gibt es inzwischen Programme, die als Shared Source veröffentlicht wurden und weiterentwickelt werden können.

 

Mit Quicksteps Outlook effektiver nutzen

,
Email

Wie Sie Outlook noch besser einsetzen und damit produktiver werden.

Die E-Mail, Kalender und Kontaktverwaltungssoftware Outlook für Windows oder Macintosh ist für die allermeisten von uns das am häufigsten und am meisten benutzte Software-Produkt im Berufsalltag. Wir erhalten E-Mails, führen unseren Kalender und verwalten die Kontaktdaten von unseren Ansprechpartnern bzw. Kunden sowie Lieferanten darin. Sofern man regelmäßig mit Outlook arbeitet, kann man damit den Büroalltag gut organisieren.

Leider fallen auch immer wieder die gleichen Routinetätigkeiten an wie etwa das Verschieben von gelesenen E-Mails oder das Verwalten von Terminen in Aufgaben. Für genau diesen Fall hat Microsoft innerhalb von Outlook die so genannten Quicksteps vorgesehen. Hier können Sie mit wenigenHandgriffen kurze Folgen von Aktionen bzw. Befehlen zusammenstellen und anschließend über die Menü-Leiste schnell anwenden.

So erstellen Sie einen Quickstep in Outlook:

Outlook Quickstep einrichten

Outlook Quickstep einrichten

Für unser Beispiel wollen wir eine E-Mail als gelesen markieren und anschließend automatisch in einen vorher festgelegten Ordner verschieben. Markieren Sie für zunächst ein Element in Outlook z.B. eine E-Mail die Sie gerade erhalten haben. Nun klicken Sie oben in der Outlook-Leiste auf „Quickstep neu erstellen“. Anschließend öffnet sich das Dialogfenster, in dem sie aufgefordert werden festzulegen, was jetzt konkret mit dem Element getan werden soll.

Zunächst einmal geben Sie dem Quickstep einen Namen. Hier bietet es sich an, einen „sprechenden Namen“ zu vergeben, damit sie später die unterschiedlichen Quicksteps auch gut voneinander unterscheiden können und nicht versehentlich eine falsche Aktion ausführen. Wir nennen in unserem Beispiel den Quickstep „ins Archiv verschieben“.

Im Anschluss daran legen Sie die eigentliche Reihenfolge der Befehle für Outlook fest. In unserem Fall wählen Sie den Ordner aus, in den die E-Mail verschoben werden soll. Nach dem Klick auf O.K. sind sie auch schon fast fertig.

Sie könnten an dieser Stelle außerdem noch definieren, ob Sie diese E-Mail dann als gelesen markieren möchten oder etwa mit einer bestimmten Farbe innerhalb der Kategorien versehen wollen.

Ebenso ist es möglich eine bestimmte Tastenkombination für diesen Quickstep zu vergeben, so dass sie diese Aktion auch ohne die Bedienung der Maus durchführen können.

So verwenden Sie den Quickstep

Qutlook Quickstep bearbeiten

Qutlook Quickstep bearbeiten

Nachdem sie ihren Quickstep abgespeichert haben, testen sie ihn anschließend. Dazu markieren Sie die E-Mail, die wir gerade im Beispiel verwendet haben und klicken oben links in der Box Quicksteps auf diesen gerade erstellten Quickstep.

Mit Hilfe der festgelegten Abfolge von Befehlen, sollte sich die E-Mail nun still und leise in dem von Ihnen vorgegebenen Ordner verabschieden und aus dem Posteingang verschwunden sein. Diesen Quickstep können Sie nun auf jede andere E-Mail anwenden und sparen entweder mit einer festgelegten Tastenkombination oder einem einzigen Klick ein klein wenig Zeit.

Hinweis: Sie können den Quicksteps die Tastenkombination „Steuerung-Umschalten-Zahl“ verwenden. Dabei entspricht „Zahl“ den Ziffern 1 – 9.

Grundsätzlich sind mit Quicksteps auch längere und komplexere Abläufe darstellbar.Sie können nicht nur Nachrichten sofort löschen, sondern E-Mails direkt kennzeichnen, sie kategorisieren oder mit einer entsprechenden Eintrag im Kalender versehen

Effizienter mit Quicksteps – das bringt es

Auch wenn Sie mit einem einzelne Quickstep in Outlook pro Klick nur eine oder zwei Sekunden Zeit sparen, so summiert sich dies im Laufe ihrer nächsten Arbeitstage, dass sich ein einmal eingerichteter Quickstep meist schon nach wenigen Tagen „amortisiert“. Außerdem hilft er Ihnen sich auf die wirklich wichtigen Aufgaben zu konzentrieren und keine Zeit mit langweiligen Tätigkeiten zu verlieren.

 

Denn mal ehrlich: wer möchte schon gerne immer wieder die gleichen routinemäßigen Aktionen durchführen wie etwa das Verschieben einer gelesenen E-Mails in einen bestimmten Ordner oder das kombinierte Ausdrucken und anschließende Archivieren des Posteingangs.

In diesem Sinne: Werden Sie noch effizienter. Die Quicksteps von Outlook sind dazu ein gut funktionierendes Hilfsmittel. Wenn Sie  Outlook auch auf Ihrem Smartphone mit Android einsetzen wollen, dann ist dieser Beitrag ebenfalls interessant für Sie.

 

Outlook für Android

,

Outlook wird mobil

Seit einigen Monaten gibt es im App-Store von Google für alle Smartphones Outlook für unterwegs. Damit können Sie nicht nur Ihre E-Mails von unterwegs bequem abzurufen und selbst verständlich neue Nachrichten schreiben. Nein: man kann damit auch mittlerweile prima sein Kalender führen.  Aber der Reihe nach. Die App lässt sich schnell und problemlos aus dem App-Store heraus installieren. Das ist wie gewohnt in wenigen Minuten erledigt. Danach hat man das blaue Symbol auf dem Smartphone und kann loslegen.

Beim ersten Aufruf der Anwendung wird man selbstverständlich zunächst nach dem eigenen Namen den Zugangsdaten der jeweiligen Postfach Server gefragt. Hier gilt es am Anfang eine Hürde zu nehmen, sofern man nicht bei Office 365 oder einem anderen E-Mail Provider untergebracht ist. Für alle Eigentümer und Nutzer der eigenen Exchange Installation sei gesagt, dass man auf jeden Fall die voll ausgeschriebene Domäne angeben muss. Ansonsten klappt’s nicht mit der Anmeldung.

Erste Anmeldung noch trickreich

Outlook für Android

Outlook für Android

In unserem Fall mussten wir zwei bzw. drei Versuche unternehmen, bis dann letztlich die Anmeldung funktioniert hat. Wenn das dann allerdings mal geklappt hat, dann funktioniert Outlook einwandfrei und es macht tatsächlich richtig Spaß damit zu arbeiten.

Der Posteingang kommt relativ aufgeräumter daher. Outlook versucht über den sog. Focus einige Nachrichten hervorgehoben anzuzeigen. Mit dem Klick auf den Button daneben hat man dann alle Nachrichten im Blick und hat somit die Gewähr auch unterwegs immer Up-to-date zu sein.

Der Posteingang selber verfügt über alle Dinge die man dort so typischerweise tun muss: Nachrichten weiterleiten oder E-Mails beantworten ist genauso möglich wie das Löschen einer überflüssigen E-Mail. Bei der Benutzbarkeit hat sich Microsoft mit Outlook für Android ein wenig an der Logik von Inbox von Google orientiert.

Wie bei Inbox – Wischen

Wenn man nach rechts wischt, kann man einer Mail einen entsprechenden Termin zuweisen. Nach links gewischt, wird entsprechend archiviert. Vorher muss man natürlich nur für die jeweilige Aktion ein Archivordner festlegen. Aber auch das ist schnell erledigt. Neue Nachrichten können Sie ebenso schnell erstellen, indem Sie auf den Brief mit dem „+“-Symbole oben rechts klicken. Ebenfalls eine Signatur ist leicht und einfach zu hinterlegen.

Der Kalender – etwas anders als gewohnt

Der Kalender kommt in einer etwas anderen Darstellung als auf dem Desktop-PC daher. Er ähnelt eher einer langen Folge von DIN A4 Blättern untereinander. Der eine oder andere mag sich sogar an eine Klopapier Rolle erinnert fühlen. Die sonst übliche Wochen Darstellung von mehreren Tagen nebeneinander oder der Arbeitswoche, sucht man hier vergebens. Diese Darstellung empfanden wir im Test als etwas gewöhnungsbedürftig. Ebenso ist die Art und Weise wie neue Termine angelegt werden anders im Sinne von zunächst mal nicht so intuitiv wie im Outlook für den PC oder auf dem heimischen Arbeitsplatz.

Grundsätzlich gesehen hat man mit Outlook für Android-Geräte Zugriff auf alle E-Mails in allen Verzeichnissen die man jemals in seinem Postfach angelegt hat. Dabei fiel uns aber auf, dass offensichtlich noch eine alphabetische Sortierung fehlt. Die Ordner kamen also munter durcheinander, was für die Orientierung nicht besonders hilfreich war. Hier sollten die kommenden Versionen noch verbessert werden.

 

Für die Funktionen E-Mail schreiben und darauf antworten sowie das Thema Kalender ist Outlook für Android auf dem Smartphone also eigentlich eine gute Wahl. Zumal es aktuell noch nichts kostet und auch keine Pläne von Microsoft bekannt sind, hier zukünftig einen Preis zu erheben.

Leider keine echten Kontakte

Etwas überrascht hat uns die Abwesenheit einer echten Kontaktverwaltung. Natürlich gibt es den Menüeintrag „Personen“. Dahinter verbergen sich aber lediglich die Namen und E-Mail-Adressen aller derer die in irgendeiner Form schon mal E-Mail geschrieben haben. Eine entsprechende Einstellmöglichkeit etwa für Telefonnummern oder Adressen haben wir vergeblich gesucht.

Ausblick für Outlook auf Android

Bleibt zu hoffen, dass Microsoft doch noch versteht, dass Smartphones in aller Regel eine Telefonfunktion integriert haben es schon sehr viel Sinn macht, auch gleich die Kontakte aus dem Outlook Programm heraus mit den Kontakten auf dem Smartphone synchronisieren zu können. Es bleibt also noch etwas Arbeit zu tun, bis Outlook tatsächlich erwachsen geworden ist und auch auf dem persönlichen Smartphone ein vollwertiger Begleiter sein wird.

Während die neue Outlook-App zumindest zur Zeeit kostenfrei ist, ist Outlook für den Desktop nach wie vor kostenpflichtig. Ihre IT-Berater stehen Ihnen hier für eine kurze Demonstration gerne zur Verfügung.

Email

Email

Warum man auch kostenfreie Software updaten sollte

Adobe PDF Logo

Software, die man auf dem eigenen PC oder dem Notebook nutzt, muss man ab und zu updaten. Das leuchtet ein. Schließlich möchte heute niemand mehr mit einem zehn oder zwölf Jahre alten Office-Programme oder eine völlig veralteten Software arbeiten. Dass man aber so selbstverständliche und manchmal kostenfreie Programme wie Adobe-PDF, Flash oder auch MS-Office selbst regelmäßig updaten muss, das mag man nicht gleich sofort verstehen.

Adobe PDF Logo

Adobe PDF Logo

Der Grund dafür, daß in den letzten Monaten immer häufiger die Hersteller selbst Updates für ihre Software herausbringen, die manchmal sogar binnen weniger Stunden oder gar Tage installiert werden muss, ist folgender:
Hacker oder Kriminelle im Internet, die versuchen entweder Kontrolle über Ihren PC oder Notebook zu gelangen um damit anschließend kriminelle Geschäfte zu machen, versuchen selbstverständlich hier den Weg des geringsten Widerstandes zu gehen. Alternativ suchen Sie sich einfach Softwareprodukte heraus, die bei vielen tausenden oder gar Millionen von Anwendern weltweit installiert sind. Im Klartext bedeutet dies, dass diejenigen Softwareprodukte die weltweit am häufigsten installiert sind und damit statistisch gesehen die größte Möglichkeit bieten, das eine Lücke oder ein Fehler in der Software dann eben gleich bei tausenden von Anwendern genutzt werden kann, sind eben viel lukrativer für einen Angreifer als ein selten genutztes Softwareprodukt .

Programme wie Adobe Flash, die Software zum Betrachten von PDF Dokumenten (Adobe PDF Viewer) und eben auch das Office Paket von Microsoft in den Versionen 2013, 2010 oder davor werden deswegen von Kriminellen regelmäßig und intensiv nach möglichen Schwachstellen oder Fehlern durchsucht. Für diese sog. Bugs oder Exploits werdenden speziell zugeschnittene Wege gesucht, mit denen ahnungslose Anwender dann konfrontiert werden. Das kann dann im Wege einer E-Mail passieren, bei der in aller Regel ein Anhang an der E-Mail befindlich ist. Die Datei im E-Mail Anhang öffnet dann häufig durch einen versehentlichen Klick des Anwenders eben jene installierte Software und führt dann diese aus.

Wenn dann eben auf Ihrem PC die besagte Software nicht auf der aktuellsten Version ist, in der eben genannter Fehler nicht mehr vorkommt, so ist leider ihr Gerät dann eben doch anfällig für die Schad-Software (Malware genannt) und kann von einem Hacker missbraucht werden. Die Konsequenzen daraus können sein, dass zum Beispiel von Ihrem PC aus E-Mails verschickt oder ihre Daten ausgespäht werden. Im schlimmsten Fall werden ihre Daten auf dem PC missbräuchlich genutzt oder via Online-Banking Ihr Konto ausgespäht. Von schlimmeren Szenarien ganz zu schweigen.

Dagegen hilft letztlich nur, dass die die Software auf Ihren Computern regelmäßig aktualisiert wird. Dies sollte mindestens aller zwei Wochen passieren – bei Bedarf auch in kürzeren Abständen.
Ebenso selbstverständlich sollte ein aktueller Virenscanner auf Ihrem Rechner aktiv sein (alles zum Thema Virenschutz erfahren Sie hier). Dieser zieht sich in der Regel alleine und selbstständig alle 2-3 Stunden (!) von der Hersteller Seite aus dem Internet die aktuellen Definitionen und Updates zum Erkennen von Schad-Software herunter.

Bei regelmäßigen Updates ihrer Software und dem Prüfen auf versteckte Viren, Malware und andere ungebetene Gäste helfen die IT Experten von Biteno weiter. Am besten lassen Sie es erst gar nicht so weit kommen. Wir beraten Sie selbstverständlich hierzu bei Bedarf gerne ausführlich – nur sollten Sie dieses Gespräch nicht auf die lange Bank schieben.

Übrigens: Wenn Sie regelmäßig IT-Information erhalten möchten, dann abonnieren Sie doch unser Kundenmagazin „IT Inside“. Sie finden es als „klickbares Magazin“ auf Flipboard oder auf der Homepage von Biteno im unteren Bereich. Viel Spaß bei der Lektüre.

Tutorial

Hochverfügbarkeit mit Pacemaker und Corosync

, ,

Einleitung: Hochverfügbarkeit mit Pacemaker und Corosync

Mit Pacemaker und Corosync können mehrere Linux-Hosts eine einfache Form der Hochverfügbarkeit (engl. High availability, kurz HA) erreichen. So können mit Pacemaker IP-Adresse, ganze Webserver oder auch File-Systeme hoch-verfügbar gemacht werden.

Anhand einer so genannten Service-IP-Adresse beschreiben wir nachfolgend das Prinzip von Pacemaker und Corosync. Pacemaker übernimmt dabei die Verwaltung der Cluster-Resourcen. Corosync kümmert sich um die Kommunikation zwischen den Hosts.

Auf diese Weise lassen sich zum Beispiel mit einer Master-Master-Replikation von mariadb/mysql hochverfügbare Datenbank-Lösungen erstellen. Mit der OpenSource-Software glusterfs lassen sich zusammen mit Pacemaker und Corosync ganze Dateisysteme als HA-Lösung konfigurieren.

Alle nachfolgend genutzten Software-Pakete (Centos, Pacemaker und Corosnyc) sind genauso wie maysql und mariadb OpenSource Produkte.

Versuchsaufbau für Corosync und HA

Für unser nachfolgendes Tutorial erstellen wir zwei identische Linux-Hosts mit CentOS die jeweils einen Netzwerkanschluss sowie eine eigene statische IPv4-Adresse im selben IP-Subnetz haben. Die Linux-Rechner sollen anschließend eine dritte IP-Adresse (nachfolgend Service-IP genannt) erhalten, die entweder auf dem einen oder dem anderen Linux-Server „gehostet“ wird.

Ziel ist es, diese Service-IP-Adresse immer erreichbar zu haben und dennoch einen der beiden Hosts für Wartungszwecke herunter fahren zu können. Auf diese Weise kann mit einfachen Mitteln eine einfache Form der Hochverfügbarkeit erreicht werden.

Hinweis: Auch wenn wir Pacemaker und Corosync hier exemplarisch unter Centos 7 einrichten, so geht das natürlich auch auf anderen Linux-Distributionen wie debian, Ubuntu oder Redhat . Hier unterscheiden sich lediglich die Kommandos für die Installation der Pakete (apt-get bei debian).

Unser Setup für das Pacemaker Tutorial:

  • 2 CentOS 7.5 Hosts mit je einer statischen IP-Adresse
  • Host 1: testdb01, 168.0.113
  • Host 2: testdb02, 168.0.114
  • Service-IP-Adresse: 168.0.115

Für alles weitere installieren wir CentOS 7.x (z.B. auf einer Vitualisierungsplattform wie VMWare oder Proxmox). Die Linux-Hosts benötigen im produktiven Betrieb 1-2 CPU-Kerne, 2 GB RAM und 20 -30 GB an Festplatte. Wer einfach nur testen will, kommt auch mit einem CPU-Kern, 1 GB RAM und 3-4 GB HDD aus.

Wir richten pro Host die statische IP-Adresse ein und lassen mit „yum-y update“ alle Updates durchlaufen. Für alles weitere deaktivieren wir den CentOS Firewalld (systemctl disable firewalld) und deaktivieren „selinux“ ( In der Datei /etc/sysconfig/selinux ersetzen Sie das die Zeile, die mit „SELINUX“ beginnt durch SELINUX=disabled )

Installation von Corosync bzw. Pacemaker

Die Softwarepakete pacemaker, pcs und corosync müssen unter Centos auf allen Hosts installiert werden die später Mitglieder des Clusters werden. Die Installation erledigen wir mit:

1
yum -y install pacemaker pcs

In der Standard-Version werden hier gleich ca 25-30 weitere anhängige Pakete mit installiert, die für den Betrieb notwendig sind. Im Anschluss daran aktivieren wir den pcsd Dienst und starten ihn:

1
2
systemctl enable pcsd.service
systemctl start pcsd.service

Damit die unterschiedlichen Hosts bzw. die Dienste auf den Hosts mit einander sprechen können, benötigen Sie einen Benutzer mit Kennwort. Während der Installation wird automatisch ein neuer User namens „hacluster“ angelegt: Diesem geben wir nun noch ein Passwort:

1
passwd hacluster

Achten Sie darauf, daß auf beiden Hosts das Passwort für den benutzer „hacluster“ nach Möglichkeit identisch ist

Cluster Dienst einrichten

Damit die Knoten miteinander kommunizieren können, tauschen wir nun erst einmal die Authentifizierungen aus:

1
2
3
4
5
[root@testdb01 mysql<strong>]# pcs cluster auth testdb01 testdb02</strong>
Username: hacluster
Password:
testdb01: Authorized
testdb02: Authorized

Die Meldung von beiden Knoten muss “Authorized” lauten – dann kommunizieren die Hosts erfolgreich miteinander.

Cluster – alte Pacemaker Konfiguration löschen

Zur Sicherheit „zerstören“ bzw. löschen wir alle bisherigen Konfigurationen auf den beiden Hosts.

Hinweis: Bei einer brandneuen Installation ist dieser Schritt nicht nötig.

1
2
3
4
5
6
[root@testdb01 mysql]# pcs cluster destroy --all
Warning: Unable to load CIB to get guest and remote nodes from it, those nodes will not be deconfigured.
testdb01: Stopping Cluster (pacemaker)...
testdb02: Stopping Cluster (pacemaker)...
testdb02: Successfully destroyed cluster
testdb01: Successfully destroyed cluster

Neues Pacemaker Cluster erstellen.

Nun erstellen wir in neues “Cluster” aus zwei Knoten bzw. Hosts. Die Hosts heißen bei uns „testdb01“ und „testdb02“. Das Cluster selbst nennen wir „testdb. Direkt nach dem Abschicken des Befehls „pcs cluster setup“ werden zuerst die Zertifikate ausgetauscht.

Voraussetzung ist, daß die beiden Hosts sich im vorherigen Schritt (pcs cluster auth) erfolgreich gegenseitig authentifiziert haben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@testdb01 ~]# pcs cluster setup --name testdb testdb01 testdb02
Destroying cluster on nodes: testdb01, testdb02...
testdb02: Stopping Cluster (pacemaker)...
testdb01: Stopping Cluster (pacemaker)...
testdb01: Successfully destroyed cluster
testdb02: Successfully destroyed cluster
Sending 'pacemaker_remote authkey' to 'testdb01', 'testdb02'
testdb01: successful distribution of the file 'pacemaker_remote authkey'
testdb02: successful distribution of the file 'pacemaker_remote authkey'
Sending cluster config files to the nodes...
testdb01: Succeeded
testdb02: Succeeded
Synchronizing pcsd certificates on nodes testdb01, testdb02...
testdb01: Success
testdb02: Success
Restarting pcsd on the nodes in order to reload the certificates...
testdb01: Success
testdb02: Success

Konfiguration von Corosync prüfen:

Zur Sicherheit werfen wir einen Blick in die nun auf beiden Hosts vorhandene Konfig-Datei unter /etc/corosync/. Sie heißt dort „corosync.conf“

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@testdb01 ~]# more /etc/corosync/corosync.conf
totem {
version: 2
cluster_name: filecluster
secauth: off
transport: udpu
}
nodelist {
node {
ring0_addr: testdb01
nodeid: 1
}
node {
ring0_addr: testdb02
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
two_node: 1
}
logging {
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: yes
}

Corosync Cluster starten

Mit dem Befehlt “pcs cluster start –all” starten wir auf einem Knoten corosync auf allen zum Cluster gehörenden Hosts.

Wichtig: Das muss nur an auf einem Host/Knoten erfolgen.

1
2
3
[root@testdb01 ~]# pcs cluster start --all
testdb02: Starting Cluster...
testdb01: Starting Cluster...

Corosync und Pacemaker aktivieren und starten

Damit wir nun etwas Praktisches tun können, müssen sowohl der corosync-Dienst als auch Pacemaker aktiviert und gestartet werden.

Auf testdb01 und testdb02 führen wir also aus

1
2
3
4
systemctl enable corosync.service
systemctl start corosync.service
systemctl enable pacemaker.service
service pacemaker start

Anschließend prüfen wir den Status mit “pcs status“. Nun sollte ‚pcs status‘ etwas sinnvolles ausgeben , auch wenn noch keine Resource vorhanden ist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@testdb01 ~]# pcs status
Cluster name: testdb
Stack: corosync
Current DC: testdb01 (version 1.1.18-11.el7_5.2-2b07d5c5a9) - partition with quorum
Last updated: Wed Jun 13 12:50:58 2018
Last change: Wed Jun 13 12:50:55 2018 by root via cibadmin on testdb01
2 nodes configured
0 resources configured
Online: [ testdb01 testdb02 ]
No resources
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

Wir sehen: Auf dem Knoten testdb01 sind alle drei Dienste (corosync, pacemaker und pcsd) aktiv und gestartet. Der Hinweis „no resources“ bedeutet, daß wir noch keine Resource (etwa eine IP) definiert haben.

Corosync anpassen (2 Host Szenario)

In unserem Fall von 2 Hosts mach weder ein Quorum (die Mehrheit unter den Servern) noch Stonith (Mechanismus zum „Abschiessen“ von schwächelnden Hosts) inhaltlich Sinn. Für ein Quorum bräuchten wir mindestens 3 Hosts. Mit den beiden folgenden Befehlen stellen wir sowohl das Quorum als auch stonith dauerhaft ab.

1
2
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore

Virtuelle Resource / Virtuelle IP anlegen

Wir möchten nun eine einfache IPv4-Adresse als einzige Resource anlegen und auf einem der beiden Hosts verfügbar machen. Mit dem folgenden Befehl wird die Service-IP für das Cluster angelegt:

1
pcs resource create &lt;Resource-Name&gt; ocf:heartbeat:IPaddr2 ip=&lt;IP-Addr&gt; cidr_netmask=&lt;Netmask&gt; op monitor interval=5s

Die Variable <Resource-Name>, <IP-Addresse> und <Netmask> ersetzen wir natürlich durch die tatsächlichen Werte.

Wichtig hierbei: Die IP-Adresse muss zum Netzwerk bzw. IP-Subnetz passen, in dem der Hosts seinen Netzwerkanschluss hat.

Wir legen nun also eine zusätzliche IP-Adresse mit dem Namen „testdb-ip“, der Nummer 192.168.0.115 sowie der Netzmaske 24 (entspricht 255.255.255.0) an, die entweder auf testdb01 oder auf testdb02 gehostet wird. Sie soll außerdem vom Cluster alle 5 Sekunden geprüft werden.

1
[root@testdb01 ~]# pcs resource create testdb-ip ocf:heartbeat:IPaddr2 ip=192.168.0.115 cidr_netmask=24 op monitor interval=5s

Anschließend prüfen wir ob die IP-Adresse auch erfolgreich vom Cluster verwaltet wird:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@testdb01 ~]# pcs status
Cluster name: testdb
Stack: corosync
Current DC: testdb01 (version 1.1.18-11.el7_5.2-2b07d5c5a9) - partition with quorum
Last updated: Wed Jun 13 12:52:35 2018
Last change: Wed Jun 13 12:52:32 2018 by root via cibadmin on testdb01
2 nodes configured
<strong>1 resource configured</strong>
Online: [ testdb01 testdb02 ]
Full list of resources:
 testdb-ip (ocf::heartbeat:IPaddr2): Starting testdb01

Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

Ergebnis: Die Resource “testdb-ip” startet direkt auf dem Host testdb01

 

Nun prüfen wir noch am Adapter nach, ob dort ebenfalls die Service-IP vorhanden ist:

1
2
3
4
5
6
7
8
9
10
[root@testdb01 ~]# ip addr
(..)
2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 76:f3:cc:53:fa:6b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.113/24 brd 192.168.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet <strong>192.168.0.115/24</strong> brd 192.168.0.255 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::3522:f3f3:80cd:7aae/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Ergebnis: Der Netzwerkadapter eth0 hat zusätzlich zu seiner festen IP (192.168.0.113) noch die IP-Adresse 192.168.0.115 die wir vorher als Cluster-Reosurce erstellt haben.

 

Empfehlung: Um im Fehlerfall die Konfiguration von Pacemaker bzw. Corosync schnell wieder anlegen zu können, empfiehlt es sich auf einem der beiden Linux-Hosts die Befehle vom Anlegen des Clusters bis hin zu Einrichtung der Cluster-Resource(n) in einer Bash-Datei abzuspeichern.
Damit kann im Fehlerfall durch einfaches Löschen und neu Anlegen der Konfiguration sowie der Resourcen in 20 bis 30 Sekunden eine Cluster-Einrichtung erfolgen.

 

 

Verwaltung von Corosync / Pacemaker

Cluster-Resourcen manuell verschieben.

In der Praxis wechselt die IP-Adresse nur dann von einem Host, wenn der aktive Host herunter fährt oder der Corosync-Dienst angehalten wird. Möchte man die Cluster-Resource von Hand von einem Host auf den anderen verschieben, so geht das mit:

pcs resource move <resource-name> <nodename>

Beispiel:

1
pcs resource move testdb-ip testdb02

Cluster-Resource entfernen

So wie eine Cluster-Resource angelegt wird, so kann sie natürlich auch gelöscht bzw. entfernt werden:

Syntax: pcs resource delete <Resource-Name>

Bsp.:

1
pcs resource delete testdb-ip

 

Fehler / Troubleshooting von Corosync / Pacemaker /pcsd

Sofern immer ein Host online ist, sind Fehler bei Corosync/Pacemaker eher selten. Wenn doch einmal etwas nicht geht, dann empfiehlt sich folgende Vorgehensweise:

Dienste (Pacemaker/Corosync/pcsd) stoppen und neu starten

Alle relevanten Dienste stoppen:

1
service corosync stop; service pacemaker stop; service pcsd stop;

Alle relevanten Dienste starten:

1
service pcsd start; service pacemaker start; service corosync start;

Danach ermitteln Sie auf beiden Hosts einzeln mit “pcs status” ob die Hosts sich gegenseitig als “online” sehen und ob die Cluster-Resource(n) vorhanden sind.

Die harte Tour: Konfig neu anlegen.

Für den unwahrscheinlichen Fall, dass ein Fehler hartnäckiger ist, kann aus Zeitgründen die Konfiguration auch kurzerhandgelöscht und neu gestartet werden.

Dazu stoppen Sie auf beiden Hosts alle Dienste und löschen anschließend die Konfigurationsdateien auf beiden Hosts. Danach legen Sie die Konfiguration (wie oben beschrieben) neu an.

Das ist in vielen Fällen einfacher und vor allem schneller als eine langwierige Fehlersuche.

Vorgehen:

1
2
3
4
5
6
# Dienste stoppen
service corosync stop; service pacemaker stop; service pcsd stop;
# Konfig Dateien löschen
/etc/corosync/corosync.conf löschen
/etc/pacemaker -&gt; Dateien löschen.
#Ggf. Dienste deaktivieren

Danach noch mal neu aufsetzen wie oben beschrieben. (geht in der Regel schneller als eine lange Fehlersuche)

Weiterführende Infos

 

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.