Kaum ein Monat vergeht, in dem keine Presseberichte von einem größeren Datenleck die Runde machen – zuletzt traf es den Mietwagenanbieter Buchbinder. Die ... (mehr)

VPN-Client einrichten

Ein VPN-Client benötigt zunächst sein Zertifikat, den dazu passenden Schlüssel und eine Kopie des CA-Zertifikats. Linux-Clients verwalten die VPN-Konfiguration ganz simpel über das GUI-Tool NetworkManager. Hier muss der Anwender lediglich den Servernamen beziehungsweise die IP-Adresse, den Port und das Protokoll angeben und dem Tool mitteilen, wo die Zertifikate und Schlüssel zu finden sind.

Manche OpenVPN-Clients, wie der auf Windows oder Android, bringen aber keine hübsche GUI für die Client-Konfiguration mit. Hier bereiten Sie eine fertige "ovpn"-Konfigurationsdatei mit allen Parametern vor, übertragen sie auf das jeweilige Zielsystem und starten den OpenVPN-Client.

Das verwendete ovpn-Dateiformat stimmt dabei weitgehend mit dem conf-Format des Servers überein. Um die Zertifikate und Schlüssel nicht als separate Dateien einspielen zu müssen, erlaubt das ovpn-Dateiformat, diese Informationen inline einzubinden.

Dazu müssen Sie aus den drei Dateien "ca.crt", "client01.crt" und "client01.key" sämtliche Informationen in den Abschnitten "-----BEGIN CERTIFICATE-----" und "-----END CERTIFICATE-----" beziehungsweise "-----BEGIN PRIVATE KEY-----" und "-----END PRIVATE KEY-----" mit einem Texteditor kopieren und dann zusammen mit den Konfigurationsoptionen in eine ovpn-Datei sichern.

Das sieht dann in etwa so aus:

client
remote (<IP oder FQDN Ihres VPN-Servers>)
port 443
proto tcp
nobind
dev tun
persist-tun
persist-key
<ca>
-----BEGIN CERTIFICATE-----
Inhalt des ca.crt hier
-----END CERTIFICATE-----
</ca>
 <cert>
-----BEGIN CERTIFICATE-----
Inhalt des client01.crt hier
-----END CERTIFICATE-----
</cert>
 
<key>
-----BEGIN PRIVATE KEY-----
Inhalt des client01.key hier
-----END PRIVATE KEY-----
</key>

Nun genügt es, den freien OpenVPN-Client auf Windows, Mac, Android oder anderen unterstützten Systemen zu installieren und diesem die ovpn-Datei mitzugeben.

Link-Codes

[1] OpenVPN: https://openvpn.net/

Erweiterte Konfiguration

Die hier gezeigte Konfiguration genügt bereits für ein sicheres VPN, aber natürlich lässt sich das Setup verbessern. Dazu zählt vor allem die TLS-Autorisierung, die zwar den Tunnel selbst nicht sicherer macht, aber den VPN-Server besser vor Unbefugten schützt. Sie erstellen dazu einen symmetrischen Schlüssel, den "ta.key", der auf dem Server und allen VPN-Clients vorhanden sein muss.

Bei aktivierter "TLS-Auth" signiert der OpenVPN-Client alle IP-Pakete an den VPN-Server mit dem TA-Schlüssel. Der Server reagiert dann nur noch auf signierte Pakete. Das schützt den VPN-Server beispielsweise vor DDoS-Attacken oder Portscans. Das Kommando

openvpn --genkey --secret ta.key

erstellt einen solchen Key. Der Server bindet ihn dann via

tls-auth ta.key 0

in die Konfiguration ein. Die "0" steht dabei für "incoming", der Server hört nur noch auf signierte Pakete, signiert selber aber nicht. In der Clientkonfiguration steht dann entsprechend:

tls-auth ta.key 1

wobei die "1" den Client anweist, ausgehende Pakete zu signieren. Wie zuvor bei den Zertifikaten integrieren Sie den TA-Key ebenfalls direkt in das ovpn-File mit "BEGIN/END OpenVPN Static key V1".

Um derweil einen Webserver zusammen mit dem OpenVPN-Server auf Port 443 laufen zu lassen, genügt eine Server-Anweisung in der "/etc/openvpn/server/server.conf":

port-share 127.0.01 4343

OpenVPN leitet dann allen eingehenden Nicht-VPN-Traffic auf Port 4343 um. Dementsprechend müssen Sie dann den Webserver konfigurieren, sodass dieser auf Port 4343 auf eingehenden HTTPS-Verkehr lauscht.

comments powered by Disqus
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 /2023