OpenVPN via Android-Smartphone nutzen

© Ints Vikmanis, 123RF

Zugangsschutz

,
Wer von unterwegs via Smartphone auf den heimischen Datenbestand zugreifen will, muss die Kommunikation schützen. Dafür bietet sich ein VPN an. Mit OpenVPN auf dem Server und CyanogenMod auf dem Smartphone geht Konfiguration leicht von der Hand. Aber auch mit dem originalen Android-OS gelingt der Zugriff.
RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Ist man viel unterwegs, kommt man oft in die Verlegenheit, aus der Ferne auf das private oder Firmennetzwerk zugreifen zu wollen. Der Abgleich der Daten muss jedoch sicher sein – dafür empfiehlt sich eine VPN-Verbindung. So werden die Daten verschlüsselt übertragen, und die Kommunikationspartner müssen sich authentifizieren.

Die klassische VPN-Lösung im Open-Source-Bereich heißt OpenVPN [1] . Sie überträgt die Daten verschlüsselt über eine TLS-Verbindung. Als Transportprotokoll stehen wahlweise TCP und UDP zur Verfügung. Die Authentifizierung von Client und Server erfolgt über Benutzername und Passwort, einen gemeinsamen Schlüssel (Pre-shared Key) oder mit Zertifikaten. Das letztgenannte Verfahren gilt im Allgemeinen als das sicherste und wird deshalb hier vorgestellt.

Der OpenVPN-Server findet sich in der Paketverwaltung der meisten Linux-Distributionen und der BSD-Betriebssysteme und steht auch für Mac OS X und Windows bereit. Sind die dort angebotenen Pakete zu alt, lädt man aktuellere von der Projektseite entpackt und istalliert sie mit

# ./configure && make && make install

Der Server und alle Anwender, die auf ihn zugreifen wollen, benötigen jeweils einen privaten Schlüssel (*.key) sowie ein Zertifikat (*.crt). Diese Zertifikate müssen von einer dem Server bekannten Zertifizierungsstelle (CA) signiert sein. Für den Verbindungsaufbau werden serverseitig noch Diffie-Hellman-Parameter (dh1024.pem) benötigt.

Zertifikate

Die für die Verbindung zwischen Client und Server nötigten Zertifikate kann man sich selbst mit den Bibliotheken von OpenSSL herstellen. OpenVPN bietet im Unterverzeichnis »easy-rsa« verschiedene Skripte, mit denen Zertifikate auch ohne weitere Vorkenntnisse erzeugt werden können, dabei ist zunächst das Verzeichnis »easy-rsa« samt seinem kompletten Inhalt nach »/etc/openvpn« zu kopieren. Dann wechselt man in dieses Verzeichnis.

Im ersten Schritt werden dort einige Parameter der Datei »vars« den eigenen Gegebenheiten angepasst:

export KEY_PROVINCE="NRW"
export KEY_CITY="Bonn"
export KEY_ORG="MyOffice"
export KEY_EMAIL="admin@noatun.net"

Zusätzlich zu diesen Angaben werden bei Bedarf noch die Schlüssellänge ( »KEY_SIZE« ), die Gültigkeitsdauer der Zertifikate der CA ( »CA_EXPIRE« ) und der Client- beziehungsweise die Server-Zertifikate ( »KEY_EXPIRE« ) eingestellt.

Durch die Aufrufe

# source ./vars
# ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-key client1
# ./build-dh

werden nacheinander die gesetzten Parameter geladen, das Verzeichnis »keys« (sofern bereits vorhanden) aufgeräumt und der öffentliche und private Schlüssel der CA ( »build-ca« ), des Servers ( »build-key-server server« ) und des Clients ( »build-key client1« ) sowie die Diffie-Hellman Parameter ( »build-dh« ) generiert.

Angaben in vars

Beim Schreiben der Zertifikate sind verschiedene Angaben zu machen, einen möglichen Ablauf für ein Client-Zertifikat zeigt Listing 1 , bei den anderen Zertifikaten läuft es sehr ähnlich ab.

Listing 1

Definieren eines Client-Zertifikats

 

Die Auskünfte zu Land, Stadt und so weiter wurden in »vars« gesetzt und können so auch für andere Zertifikate übernommen werden, eine Ausnahme bildet der »Common Name« , der immer eindeutig sein muss.

Die mit diesen Aufrufen generierten Dateien landen im Unterverzeichnis »keys« . Von hier aus müssen abschließend noch die Dateien »ca.crt« , »server.crt« , »server.key« und »dh1024.pem« nach »/etc/openvpn« kopiert werden. Es kann auch ein anderes Zielverzeichnis angegeben werden, dann ist die nachfolgende Serverkonfiguration anzupassen.

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