IT-MÜCKE

easy-rsa: OpenVPN für Server und Clients einrichten

Beitragsdatum 23.09.2017
Letzte Aktualisierung -
Betrifft diverse OS, Ubuntu 16.04, OpenVPN, easyrsa2

Ziel

Ziel in diesem Beitrag ist es darzustellen, wie mittels easyrsa (github.com) die benötigten Zertifikate für eine Client-Server-OpenVPB-Lösung erstellen werden können.

Annahme ist, dass ein OpenVPN-Server mehrere externe Clients „bedient“. Für den Server und die Clients werden eine neue CA1), Zertifikate für den Server und die Clients benötigt.

Die Skripte von easyrsa helfen dabei.

Vorgehensweise

Die Erzeugung der benötigten Zertifikate und CA wird auf einem separaten PC auf Ubuntu-Basis durchgeführt. Anschließend werden die Zertifikate usw. manuell auf die Server und Clients kopiert.

Für die Konfiguration von OpenVPN verweise ich auf den Blogbeitrag FreeNAS und OpenVPN.

Installation

Alle Tätigkeiten erfolgen auf einem separatem PC auf Ubuntu-Basis. Von diesem aus werden die Zertifikate und Dateien anschließend auf die Clients und den Server kopiert.

Für die Durchführung müssen folgende Pakete unter Ubuntu installiert werden:

  • openvpn
  • easy-rsa

Umgebung schaffen

Die Umgebung auf dem separatem PC soll so sein, dass sie gespeichert und wieder hergestellt werden kann (bei Bedarf). Daher kopiere ich die Dateien in ein Arbeitsverzeichnis, dass ich später packen und sichern kann.

  • Nach der Installation der genannten Pakete wie folgt vorgehen
  • Arbeitsverzeichnis erstellen:
    mkdir easyrsa-workingdir
  • Dateien in Arbeitsverzeichnis kopieren:
    cp -r /usr/share/easy-rsa easyrsa-workingdir/
  • Anpassen der Datei vars: alle Variablen mit KEY_ anpassen
  • Laut Quelle (s.u.) muss zusätzlich die folgende Zeile angefügt werden:
    export KEY_ALTNAMES="Pseudonym"
  • openssl.cnf erzeugen (als Link):
    # ln -s openssl-x-x-x.cnf openssl.cnf
    # wobei x-x-x ersetzt werden muss durch die höchste verfügbare Versionsnummer, z.B.:
    ln -s openssl-1.0.0.cnf openssl.cnf
  • Variablen verfügbar machen:
    source ./vars

Zertifkate erzeugen

  • Aufräumen:
    ./clean-all
  • CA erzeugen:
    ./build-ca
  • Server-Zertifikat erzeugen (Challenge-Password leer lassen):
    ./build-key-server server
  • Client-Zertifikate erzeugen (Challenge-Password leer lassen):
    ./build-key client1
  • Weitere Client-Zertifikate nach Bedarf erzeugen (siehe Schritt vorher)
  • Erzeugung der Diffie-Hellman-Parameter:
    ./build-dh

Zertifikate auf Server/Clients verteilen

  • Je Client sind die folgenden Dateien auf den Client zu kopieren:
    • client1.key
    • client1.crt
    • ca.crt
  • Auf den Server müssen folgende Dateien kopiert werden:
    • ca.crt
    • server.key
    • server.crt
    • dh2048.pem

Einrichtung OpenVPN

Siehe dazu FreeNAS und OpenVPN


Quellen:


Ähnliche Themen im blog:
openvpn


zurück

1)
CA=Certification Authority