OpenVPN Server mit DD-WRT: Unterschied zwischen den Versionen

Aus Dario's Home
Wechseln zu: Navigation, Suche
(Zertifikate erstellen)
Zeile 6: Zeile 6:
 
== PKI erzeugen ==
 
== PKI erzeugen ==
 
Hier werden Schlüssel und Zertifikate erzeugt.
 
Hier werden Schlüssel und Zertifikate erzeugt.
=== XCA laden und installieren ==
+
=== XCA laden und installieren ===
 
* Zuerst XCA [http://sourceforge.net/projects/xca/ hier] herrunterladen.
 
* Zuerst XCA [http://sourceforge.net/projects/xca/ hier] herrunterladen.
 
* Dann XCA installieren, das kann wohl jeder selbst.
 
* Dann XCA installieren, das kann wohl jeder selbst.

Version vom 14. Januar 2010, 00:11 Uhr

Zertifikatsbasierter OpenVPN Server unter DDWRT

Hier eine Anleitung um einen OpenVPN Server unter DDWRT einzurichten.

Voraussetzungen

PKI erzeugen

Hier werden Schlüssel und Zertifikate erzeugt.

XCA laden und installieren

  • Zuerst XCA hier herrunterladen.
  • Dann XCA installieren, das kann wohl jeder selbst.
  • XCA Starten

Datenbank anlegen

XCA speichert alle Schlüssel und Zertifikate in einer Datenbank, die zuerst angelegt werden muss, was mit Datei/New Database initiiert wird. Dann einen Namen für die Datenbank angeben und ein Passwort vergeben. Nur mit dieser Datei und dem Passwort kann man später Veränderungen vornehmen, also gut merken. Achtung: Das Passwort aber auch nicht zu leicht wählen, denn wer die Datei und Passwort hat erzeugt sich selber Zertifikate und kann sich dann auch am VPN-Server anmelden (ohne Veränderungen am VPN-Server vornehmen zu müssen - das ist übrigens der Sinn der Zertifikate)

XCA Optionen

Unter Datei/Optionen SHA-256 als Standard Hash Algorithmus einstellen.

Templates erstellen

Damit man später vieles einfacher hat legen wir nun zuerst Templates an. Kann man drüber streiten, ob das für die CA und die Server sinnvoll ist, für die Clients lohnt es sich auf jeden Fall. Unter der Lasche Vorlagen den Knopf Neues Template und dann zuerst die CA Vorlage:

  • Preset Template Values: CA
  • Besitzer
    • Interner Name: Vorlage_CA
    • Länder Code: DE
    • Bundesland, Kreis: NRW (bzw. Euer Bundesland)
    • Ort: BOCHUM (bzw. Euren Ort)
    • Firma: local
    • Firmenabteilung: it
    • Üblicher Name: (leer lassen)
    • E-Mail Adresse: xca@mail.com (oder die eigene Adresse)
  • Erweiterungen
    • Zeitspanne: 10 Jahre

Dann die Vorlage für den Server:

  • Preset Template Values: HTTPS_server
  • Besitzer
    • Interner Name: Vorlage_Server
    • Länder Code: DE
    • Bundesland, Kreis: NRW (bzw. Euer Bundesland)
    • Ort: BOCHUM (bzw. Euren Ort)
    • Firma: local
    • Firmenabteilung: it
    • Üblicher Name: (leer lassen)
    • E-Mail Adresse: xca@mail.com (oder die eigene Adresse)
  • Erweiterungen
    • Zeitspanne: 5 Jahre

Zuletzt die Vorlage für die Clients:

  • Preset Template Values: HTTPS_client
  • Besitzer
    • Interner Name: Vorlage_Client
    • Länder Code: DE
    • Bundesland, Kreis: NRW (bzw. Euer Bundesland)
    • Ort: BOCHUM (bzw. Euren Ort)
    • Firma: local
    • Firmenabteilung: it
    • Üblicher Name: (leer lassen)
    • E-Mail Adresse: xca@mail.com (oder die eigene Adresse)
  • Erweiterungen
    • Zeitspanne: 365 Tage

Zertifikate erstellen

Jetzt können wir die Zertifikate erstellen, dabei erzeugen wir gleichzeitig die Schlüssel.
Wir fangen an mit dem Root-Zertifikat, dazu unter der Lasche Zertifikate den Knopf Neues Zertifikat.

  • Herkunft
    • Erstelle ein Selbst signiertes Zertifikat mit der Seriennummer 1
    • Signatur algorithmus SHA-256
    • Vorlage für das neue Zertifikat: Vorlage_CA
    • Knopf Übernehmen drücken (das füllt die restlichen Felder mit denen der Vorlage aus)
  • Besitzer
    • Interner Name: root_ca
    • Länder Code: DE
    • Bundesland, Kreis: NRW
    • Ort: BOCHUM
    • Firma: local
    • Firmenabteilung: it
    • Üblicher Name: root_ca
    • E-Mail Adresse: xca@mail.com
  • Knopf Erstelle einen neuen Schlüssel drücken
    • Name: root_ca_key
    • SchlüsselTyp: RSA
    • Schlüssellänge: 1024 bit (auch 2048 bit sind möglich, benötigen dann aber mehr Speicher im NVRAM des Routers)
  • Knopf Erstelle einen neuen Schlüssel drücken
  • Erweiterungen
    • Zeitspanne: 10 Jahre
  • Nochmal unter Herkunft den Signatur algorithmus prüfen
    • Signatur algorithmus SHA-256
    • OK

Jetzt das Zertifikat für den VPN-Server

  • Herkunft
    • Verwende das Zertifikat zum Unterschreiben: root_ca
    • Signatur algorithmus SHA-256
    • Vorlage für das neue Zertifikat: Vorlage_Server
    • Knopf Übernehmen drücken
  • Besitzer
    • Interner Name: vpn_server
    • Länder Code: DE
    • Bundesland, Kreis: NRW
    • Ort: BOCHUM
    • Firma: local
    • Firmenabteilung: it
    • Üblicher Name: vpn_server
    • E-Mail Adresse: xca@mail.com
  • Knopf Erstelle einen neuen Schlüssel drücken
    • Name: vpn_server_key
    • SchlüsselTyp: RSA
    • Schlüssellänge: 1024 bit (alternativ 2048 bit)
  • Knopf Erstelle einen neuen Schlüssel drücken
  • Erweiterungen
    • Zeitspanne: 5 Jahre
  • Nochmal unter Herkunft den Signatur algorithmus prüfen
    • Signatur algorithmus SHA-256
    • OK

Für jeden Client, der sich einwählen soll jetzt ein eigenes Zertifikat

  • Herkunft
    • Verwende das Zertifikat zum Unterschreiben: root_ca
    • Signatur algorithmus SHA-256
    • Vorlage für das neue Zertifikat: Vorlage_Client
    • Knopf Übernehmen drücken
  • Besitzer
    • Interner Name: vpn_client1
    • Länder Code: DE
    • Bundesland, Kreis: NRW
    • Ort: BOCHUM
    • Firma: local
    • Firmenabteilung: it
    • Üblicher Name: vpn_client1
    • E-Mail Adresse: xca@mail.com hier könnte auch die E-Mail adresse des entsprechenden Users eingegeben werden
  • Knopf Erstelle einen neuen Schlüssel drücken
    • Name: vpn_client1_key
    • SchlüsselTyp: RSA
    • Schlüssellänge: 1024 bit (alternativ 2048 bit)
  • Knopf Erstelle einen neuen Schlüssel drücken
  • Erweiterungen
    • Zeitspanne: 365 Tage
  • Nochmal unter Herkunft den Signatur algorithmus prüfen
    • Signatur algorithmus SHA-256
    • OK

So können Zertifikate für weitere User (vpn_client2, vpn_client3) erzeugt werden.

Schlüssel exportieren

Für jeden Client müssen wir nun seinen eigenen Schlüssel exportieren, dazu

  • Private Schlüssel den Client Schlüssel auswählen
  • Export anklicken
    • Dateiname: c:\vpn_clientN_key.pem (oder beliebigen anderen Pfad)
    • Exportformat: PEM
    • Den privaten Teil des Schlüssels mit exportieren JA
    • Exportieren als PKCS#8 NEIN
    • Den Schlüssel mit einem Passwort sichern JA (das Passwort muss der Client beim Verbindungsaufbau eingeben)
    • OK
  • Passwort
    • Passwort zweimal eingeben

Den Schlüssel für den Server exportieren:

  • Private Schlüssel den Server Schlüssel auswählen
  • Export anklicken
    • Dateiname: c:\vpn_server_key.pem (oder beliebigen anderen Pfad)
    • Exportformat: PEM
    • Den privaten Teil des Schlüssels mit exportieren JA
    • Exportieren als PKCS#8 NEIN
    • Den Schlüssel mit einem Passwort sichern NEIN (wir können beim Booten des DDWRT kein Passwort eingeben)
    • OK

Zertifikate exportieren

Jetzt müssen noch alle drei Zertifikate exportiert werden, dazu die Zertifikate nacheinander auswählen und auf export klicken:

  • root_ca
    • Dateiname: c:\root_ca.crt (oder beliebigen anderen Pfad)
    • Exportformat: PEM
  • vpn_server
    • Dateiname: c:\vpn_server.crt
    • Exportformat: PEM
  • vpn_clientN
    • Dateiname: c:\vpn_clientN.crt
    • Exportformat: PEM

Ergebnis

Jetzt sind wir fertig undf haben wir die folgenden fünf Dateien (3 + 2 je Client) erzeugt:

root_ca.crt
vpn_server.crt
vpn_server_key.pem
vpn_client1.crt
vpn_client1_key.pem