OpenVPN einrichten

Auf sicheren Pfaden

Ein VPN-Server sichert Verbindungen in das Netzwerk oder die Cloudumgebung des Unternehmens. Zudem schützt er den Internetverkehr von Laptops und Smartphones, wenn diese in ungesicherten WLANs arbeiten müssen. Mit OpenVPN steht Administratoren eine leicht einzurichtende wie flexible und kostenfreie VPN-Variante zur Verfügung. Wir zeigen, wie das Setup funktioniert.
Kaum ein Monat vergeht, in dem keine Presseberichte von einem größeren Datenleck die Runde machen – zuletzt traf es den Mietwagenanbieter Buchbinder. Die ... (mehr)

Virtual Private Networks (VPNs) stellen einen gesicherten Tunnel zwischen Anwender und Intranet her und schützen Zugriffe auf Intranetdienste. Zudem verbirgt ein VPN-Tunnel die komplette Kommunikation zwischen Client und VPN-Server vor dem umgebenden Transportnetzwerk. Wer viel reist, weiß diese Funktion zu schätzen. Viele öffentliche WLANs in Hotels, Flughäfen, Restaurants oder Firmen-Gastnetzwerken arbeiten nach wie vor ohne Verschlüsselung. Auch wenn fast alle Applikationsprotokolle heute mit SSL arbeiten, können Angreifer in einem offenen WLAN immer noch sensible Metadaten anderer Kommunikationsteilnehmer abgreifen: DNS-Abfragen, Zielsysteme mit Ports und abgerufene URLs. Ein VPN verbirgt diese Informationen und alles, was ein Angreifer noch sieht, sind verschlüsselte Pakete zwischen Client und VPN-Endpunkt.

Flexibles OpenVPN

Neben diversen kommerziellen Imple­mentierungen setzen viele Unternehmen und Privatanwender auf das quelloffene OpenVPN [1], das auf den OpenSSL-Bibliotheken basiert. Es gehört zu den am besten dokumentierten und sicheren VPN-Lösungen, läuft auf nahezu allen Client- und Serverplattformen und lässt sich sehr flexibel konfigurieren. Der OpenVPN-Server für Linux ist bei vielen Linux-Distributionen enthalten oder über das EPEL-Repository (RHEL und CentOS) verfügbar. OpenVPN und Clientwerkzeuge für Linux sind in allen gängigen Distributionen enthalten, inklusive GUI-Frontend für den NetworkManager. Der OpenVPN-Client für Android lässt sich kostenlos über Google Play installieren.

Vor dem gesicherten VPN-Tunnel steht erst einmal die gesicherte Authentisierung des Clients am Server. OpenVPN beherrscht dabei mehrere Möglichkeiten wie Zertifikate mit Schlüsseln, Zweifaktor-Authentifizierung, Integration in bestehende Single-Sign-on-Lösungen oder einfach nur Passwörter. Der Workshop beschreibt die Methode mit Nutzerzertifikaten, da diese eine einfache Handhabung und gute Sicherheit bietet.

Standardmäßig lauscht der OpenVPN-Server auf UDP-Port 1194 auf eingehende Verbindungen. Optional lässt sich aber auch das TCP-Protokoll nutzen und alternative Ports wie 443 verwenden. Eine TCP-Verbindung auf 443 ergibt vor allem für Anwender Sinn, die häufig unverschlüsselte WLANs nutzen. Immer öfter begrenzen die Betreiber offener WLANs die Kommunikation der Clients auf Standard-Ports wie 80, 443, 53 oder 993 und blockieren Nicht-Standard-Portzugriffe, darunter häufig auch UDP 1194. Zudem kommen oft transparente Proxy-Server auf den Ports 80 und 443 zum Einsatz. Die so verriegelten Netzwerke kann eine VPN-Konfiguration mit TCP auf Port 443 meistens überwinden. Auf dem VPN-Server bleibt dabei der parallele Betrieb eines https-Servers und des OpenVPN-Servers möglich. In diesem Fall lauscht der OpenVPN-Server exklusiv auf den Port 443, leitet dann aber allen Nicht-VPN-Traffic über einen anderen Port an den Web-Server weiter.

Brücke oder Tunnel

Ein VPN-Tunnel kann eine Netzwerkverbindung auf Layer 2 (Bridge) oder Layer 3 (Route) aufbauen. Obwohl die Brücke auf den ersten Blick wie die bessere Lösung aussieht, funktioniert die Route deutlich zuverlässiger. Bei einer Bridge bekommt der Client eine Adresse aus dem lokalen Intranet des VPN-Servers. Alle Systeme im Intranet und im VPN erscheinen daher im selben IP-Segment. Allerdings überträgt das private Netzwerk dann auch allen Layer-2-Paketmüll, der in einem lokalen Netzwerk herumschwirrt, an den Client: Broadcasts, Service-Discovery-Pakete, LLDP und andere Protokolle, die der Client eigentlich nicht braucht. Das alles geht zu Lasten der Tunnelbandbreite. Zudem gestaltet sich eine Bridge-Konfiguration komplexer als die einer Route.

Die Route legt einen zusätzlichen virtuellen LAN-Adapter auf dem VPN-Client und -Server mit einem eigenen Transfer-Netzwerksegment an. Der IP-Verkehr zum VPN wird dann über Routing-Regeln gesteuert. Der Anwender entscheidet so, ob jeglicher Client-Traffic das VPN passiert, was die gewünschte Funktion eines Clients in einem unverschlüsselten WLAN wäre. Alternativ sendet der Client ausschließlich das IP-Segment des Intranets, in dem der VPN-Server arbeitet, über den Tunnel. Das wäre der Betriebsmodus für einen Administrator im Home-Office. Den regulären Internet-Traffic sendet der Client wie gehabt über die bestehenden Routen direkt ins Internet und nur die Kommunikation vom und zum Intranet des Unternehmens passiert den VPN-Tunnel. Was letztendlich über den Tunnel geht, entscheidet ausschließlich das IP-Routing. So lässt sich der VPN-Tunnel ohne besonderen Konfigurationsaufwand für beide Transfermodi nutzen.

Bild 1: Für unseren Workshop nutzen wir eine einfache Google-Cloud-VM.
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021