Benutzer-Werkzeuge

Webseiten-Werkzeuge


computer:ipcop:openvpn_mit_zerina

Verbindungen von außerhalb in das geschützte Netz sind immer mal notwendig - beispielsweise, um ein Backup zurückzuspielen. Diese Verbindung zu verschlüsseln ist in jedem Fall eine gute Idee. Hierbei kann OpenVPN als freie VPN-Variante überzeugen. In Kombination mit IPCop kann man so leicht VPN-Verbindungen ermöglichen.

Vorraussetzungen

Ich setze hier einfach vorraus, dass IPCop sowie alle Hosts im grünen, geschützten Netz korrekt konfiguriert wurden und eine Netzwerk-Konnektivität besteht. Das Implementieren des Heimnetzes, sowie die Konfiguration der Dienste und IPCop sind nicht Bestand dieses Artikels.

Ich setze hier auf IPCop in der Version 1.4.21, die neue Version 1.9.7 hat diese Funktionalität bereits fest integriert. Hier muss nicht mehr „gebastelt“ werden.

Szenario

Netzwerk-Topologie

Ich habe als anschauliches Beispiel einen Teil meines eigenen Netzwerks ausgewählt.

Hinter der IPCop-Firewall liegt ein Backup-Server, welcher gelegentlich auch von außerhalb des internen Netzes benötigt wird. Es ist daher nötig, eine VPN-Verbindung zu implementieren. Mithilfe dieser kann sich ein Administrator über das Internet im Heimnetz einwählen und ist dann mit dem internen Netz verbunden, ohne physikalisch mit selbigen verbunden zu sein.

Die IPCop-Firewall steht mit dem Router, welcher mit dem Internet verbunden ist, in Verbindung und filtert so ein- und ausgehenden Datenverkehr zwischen dem Internet und dem internen geschützten Netzwerk.

Funktionsweise

Netzwerk-Topologie mit implementierter VPN-Funktionalität

Für das VPN wird ein eigenes Subnetz erstellt. In diesem befinden sich die eingewählten Benutzer und die IPCop-Firewall. Wenn sich ein Benutzer einwählt, ist er also mit der Firewall in einem Subnetz, er hat also erstmal keinen Zugriff auf den Backup-Server, da er sich in einem anderem Netz befindet.

Benutzt er allerdings die IPCop-Firewall als Gateway, kann er über den IPCop Zugriff in das andere Netz erlangen und so beispielsweise Zugriff auf den Backup-Server erhalten.

IPCop-Konfiguration

Um fortzufahren, ist es notwendig, die IPCop-Firewall zu erweitern.

ZERINA-Installation

ZERINA ist eine Erweiterung für IPCop - sie erweitert die Firewall um die OpenVPN-Funktionalität. Auf der Seite des Projekts kann die aktuelle Version der Erweiterung bezogen werden: http://zerina.de/?q=download

Diese Datei muss nun auf die IPCop-Firewall übertragen werden - am Besten gelingt dies über SCP, beispielsweise mit dem Programm WinSCP.

Auf der Firewall muss diese Datei nun in einem Ordner entpackt werden:

 # tar xvfz ZERINA-0.9.5b-Installer.tar.gz

Hinweis: Bei der Veröffentlichung dieses Artikels war die Version 0.9.5b aktuell.

Wichtig ist es, dass die aktuellste Version von IPCop verwendet wird, ich habe die Version 1.4.21 verwendet. Die Installation von ZERINA war hier allerdings etwas frickelig, denn das Installationsprogramm muss noch editiert werden. Hierzu wird die Datei install editiert:

 # nano install

Folgende Zeile muss editiert werden:

 if [ ! "`echo $IPCOPVERSION | grep "1.4.18"`" ] ; then

in:

 if [ ! "`echo $IPCOPVERSION | grep "1.4.21"`" ] ; then

Nur dann wird die Installation überhaupt ausgeführt. Andernfalls wird behauptet, IPCop seie zu alt.

Die Installation muss fehlerfrei durchlaufen - treten Fehler auf, müssen die Meldungen beachtet werden. Sie helfen eventuell bei der Lösung des Problems. Andernfalls kann ein Blick in das IPCop- oder OpenVPN-Forum helfen.

OpenVPN-Konfiguration

VPN-Menü nach der Zerina-Installation

Nach der Installation von ZERINA ist im VPN-Menü ein neuer Menüpunkt, OpenVPN, vorhanden.

Konfiguration von OpenVPN

Wenn dort draufgeklickt wird, öffnet sich ein Konfigurationsdialog, welcher noch ausgefüllt werden muss:

Um den Zugriff von außen zu ermöglichen, muss hier unbedingt der Haken „OpenVPN on RED gesetzt werden, es empfiehlt sich auch, die LZO-Kompression zu aktivieren. Das sorgt dafür, dass die Pakete, bevor sie verschickt werden, mit dem LZO-Algorithmus komprimiert werden. Allerdings erfordert dies auch mehr CPU-Leistung - da IPCop-Systeme oftmals auf rechenschwachen eingebettenen oder Thin-Client Systemen betrieben werden, ist es überlegenswert, ob dies aktiviert werden soll. Selbst bei einer geringen Benutzerzahl kann das auf schwachen Systemen zu enormen Performanceeinbußen führen!

Als VPN-Hostname muss ein Netz-Hostname oder die IP des IPCop-Systems angegeben werden, meist wird das hier schon automatisch vorselektiert. Rechts hiervon kann ein anderes VPN-Subnetz vergeben werden. Neben der Netzadresse wird hier noch die Subnetzmaske erwartet.

Bei Bedarf lassen sich noch der VPN-Port (1194 standardmäßig), sowie das Protokoll (UDP oder TCP) und der Typ der Verschlüsselung anpassen. Wichtig - je größer udn dichter der ausgewählte Verschlüsselungsalgorithmus ist, desto höher sind auch die Anforderungen an das System. Bei eingebetteten oder rechenschwachen Systemen ist es am besten, das vorselektierte BF-CBC beizubehalten.

Tipp: Weitere Einstellungen können im „Advanced Server options“-Dialog vorgenommen werden.

Wurden die Einstellungen angepasst, reicht ein Klick auf Speichern, um die Einstellungen zu speichern.

Erstellen eines Root-Zertifikats

Erstellen eines Root-Zertifikats

Angaben für das Root-Zertifikats

Starten des OpenVPN-Servers

Nun ist es notwendig, ein Root-Zertifikat zu generieren. Dieses wird dringend benötigt, um VPN überhaupt zu betreiben. Es wird zur Verschlüsselung der Benutzer-Zertifikate und zum Verbindungsaufbau benötigt.

Unterhalb des Konfigurationsdialog gibt es eine Schaltfläche namens “Erzeuge Root/Host Zertifikate„ - er muss gedrückt werden.

Benötigt werden folgende Angaben:

  • Name der Organisation - hier eine kurze treffende Bezeichnung oder Firmenname angeben
  • IPCop's Hostname - dort am besten die GREEN IP notieren
  • Ihre E-Mail Adresse - Die E-Mail-Adresse des Verantwortlichen/Administrator sollte hier eingesetzt werden
  • Ihre Abteilung - Abteilungsname (in Firmennetzen)
  • Stadt - Name der Stadt
  • Bundestaat - Bundesland
  • Land - Ich denke, das muss nicht erklärt werden

Hinweis: Die mit dem blauen Punkt markierten Felder müssen nicht ausgefüllt werden.

Ein Klick auf den Erzeugen-Button erstellt nun ein Zertifikat - je nach Hardware-Konfiguration kann dieser Prozess einige Zeit in Anspruch nehmen.

Nach dem Erstellen des Zertifikats kann der OpenVPN-Server mit einem Klick auf den entsprechenden Button gestartet werden.

Erstellen eines Benutzer-Zertifikats

Schaltfläche zum Anlegen eines Benutzer-Zertifikats

Nachdem das Root-Zertifikat vorhanden ist und der OpenVPN- Server läuft, fehlen noch die Benutzerzertifikate. Jeder Benutzer, der eine OpenVPN-Verbindung herstellen können soll, benötigt ein solches Zertifikat.

Mit einem Klick auf den entsprechenden Button (siehe Bildschirmfoto links!) wird der passende Dialog aufgerufen.

Als Verbindungstyp muss hier Host-zu-Netz gewählt werden, ein Klick auf den Button unterhalb dieses Feldes öffnet den eigentlichen und wichtigeren Dialog.

Anlegen eines Benutzer-Zertifikats

Erwartet werden hier im wesentlichen folgende Angaben:

  • Name - Kurzer Name, hier dürfen nur Buchstaben und keine Leer- und Sonderzeichen verwendet werden.
  • Anmerkung - optionale Angabe, erhöht ggf. die Übersichtlichkeit bei steigender Benutzerzahl
  • Aktiviert - Soll das Zertifikat gleich aktiviert werden? Wenn ja, dann muss der Haken gesetzt sein.

Erzeuge ein Zertifikat:

  • Voller Name - Name des Benutzers
  • E-Mail-Adresse - E-Mail-Adresse des Benutzers
  • Abteilung - In Firmenen-Netzwerken kann hier die Abteilung angegeben werden
  • Name der Organisation - Name der Firma/Organisation
  • Stadt - Stadt, in der der Benutzer wohnt
  • Bundestaat - Bundesland
  • Land - Ich denke, das muss nicht erklärt werden

Hinweis: Die mit dem blauen Punkt markierten Felder müssen nicht ausgefüllt werden.

Client-Konfiguration

Bevor eine Verbindung vom Client zum entfernten Netzwerk aufgebaut werden kann, müssen noch einige Schritte ausgeführt werden.

OpenVPN-Client

Auf dem Client, welcher eine Verbindung zum Netzwerk herstellen können soll, muss die OpenVPN-Software installiert sein. OpenVPN ist nahezu für jede Plattform erhältlich. So gibt es Clients für BSD, Linux, Mac und Windows. Für letzteres gibt es sogar eine intuitive und einfache grafische Oberfläche, OpenVPN GUIgenannt.

Die Einrichtung dieser Software ist nicht Bestandteil dieses Artikel.

Ich setze vorraus, dass die VPN-Software auf dem Client eingerichtet wurde und funktionsfähig ist. Zu beachten sind die Hinweise zur Software-Installation der jewiligen Distribution/des jeweiligen Betriebssystems.

Beziehen des Zertifikats

Damit ein Client eine Verbindung aufbauen kann, benötigt er das OpenVPN Client-Paket, welches aus dem Zertifikat und einer Konfigurationsdatei besteht. OpenVPN kann dann mit diesen beiden Dateien eine Verbindung zum Netz herstellen.

Download des OpenVPN Client-Pakets

Im Web-Frontend von IPCop kann im OpenVPN-Bereich unterhalb in einer Tabelle aller Benutzer dieses Paket in einem ZIP-Archiv heruntergeladen werden. Der Inhalt dieses Archivs wird benötigt.

Unter Windows muss der Inhalt des Archivs in den Ordner C:\Programme\OpenVPN\config kopiert werden.

Anpassen des Zertifikats

Bevor eine Verbindung hergestellt werden kann, muss die Konfigurationsdatei (name-TO-IPCOP.ovpn) noch angepasst werden. Im Wesentlichen geht es um folgende Zeile:

 remote 192.168.35.129 1194

Diese Zeile definiert die Adresse zum IPCop-Rechner im entfernten Netzwerk. Hier ist allerdings die IP dieses Rechners im geschützten grünen Netz vermerkt - der Client würde, wenn jetzt versuchen wird, eine Verbindung herzustellen, den Rechner nicht finden und mit einem Fehler abbrechen.

Der IPCop-Rechner, bzw. die IP des Rotuers muss also mittels DynDNS an das Internet angebunden werden, im Zweifelsfall erledigt das der vorgeklemmte Router selbst. Hier gilt es, die Bedienungsanleitung des Routers sorgfältig zu konsultieren.

Die Zeile muss angepasst werden, sodass der DynDNS-Hostname statt der IP vermerkt wird - beispielsweise:

 remote blafoo.homelinux.org 1194

WICHTIG: Wenn ein Router vor dem IPCop-Rechner „klemmt“, muss noch der konfigurierte VPN-Port, hier UDP 1194, freigegeben werden.

Konfigurieren von Routen

Der verbundene Client befindet sich später im vorher konfigurierten OpenVPN-Subnetz. Soll allerdings Zugriff auf ein anderes Netz, beispielsweise das GRÜNE Netz ermöglicht werden, muss die Konfigurationsdatei noch um Routen-Definitionen erweitert werden.

Hier im Beispiel soll der Client beispielsweise auf das GRÜNE Netz, in welchem sich der am Anfang erwähnte Backup-Server befindet, erhalten:

 route 192.168.1.0 255.255.255.0 10.56.176.1

Die Regel besagt: Für alle Rechner, die sich im Netz 192.168.1.0 befinden, und die Subnetzmaske 255.255.255.0 haben, wird der Rechner 10.56.176.1 als Gateway benutzt.

10.56.176.1 ist der IPCop-Rechner. Das VPN-Netz lautet, wie vorher konfiguriert, 10.56.176.0 - die erste IP, die sich IPCop sofort schnappt, lautet 10.56.176.1.

Internetverweise

computer/ipcop/openvpn_mit_zerina.txt · Zuletzt geändert: 2012/03/02 13:06 von christian