Ich zeige hier wie man Endian mit dem sicheren Authentifizierungstyp „X.509 Zertifikat“ betreibt und wie man das einrichtet. X.509 Zertifikate ist ein sehr sicherer Weg um Client und VPN-Server zu verbinden und sollte immer bevorzugt werden!
Um die Zertifikate zu erstellen, braucht man ein Linux oder Windows PC mit dem Programm „easyrsa“. Erstmal werde ich erklären wie man das mit einer Linux Kiste umsetzen kann, später dann eventuell noch auf einem Windows PC! Tipp: Debian o.ä. virtuell auf einem Windows via VMware oder VirtualBox installieren 😉
Linux Version um die Zertifikate zu erstellen:
- via Putty (SSH) auf die Konsole connecten
- OpenVPN installieren
apt-get install openvpn
- Beispielkonfigurationsdateien kopieren:
cp –R /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn
- /etc/openvpn/2.0/vars editieren
nano /etc/openvpn/2.0/vars
und folgendes ganz unten anpassen, z.B. so:
export KEY_COUNTRY="DE" export KEY_PROVINCE="NRW" export KEY_CITY="Bielefeld" export KEY_ORG="BlablubGmbH" export KEY_EMAIL="info@blablub.de" export KEY_EMAIL=info@blablub.de
- Nun die „OpenSSL“ Konfigurationsdatei anpassen bzw. ergänzen. Öffnen:
nano /etc/openvpn/2.0/openssl-1.0.0.cnf
folgendes muss drinne stehen bzw. ergänzt werden (basis.. und nscomment war bei mir schon drinne!)
[ usr_cert ] basicConstraints=CA:FALSE nsCertType = client nsComment = "OpenSSL Generated Client Certificate"
- Nun in den Ordner „/etc/openvpn/2.0“ wechseln
cd /etc/openvpn/2.0
und folgende Befehle ausführen:
-
source vars
Liest alle Parameter und gibt sie dementsprechend weiter
-
./clean-all
Löscht alle Daten aus dem /etc/openvpn/2.0/keys Ordner
-
./build-ca
Dieser Befehel erstelltn das CA Zertifikat und den Key. Hierbei darauf achten das bei Common Name was sinnvolles eingetragen wird, z.B. MaffertVPN
-
./build-dh
Diffie-Hellman Schlüssel erstellen
-
./pkitool --interact --pkcs12 --server MaffertVPN
Dieser Befehl wird das Server Zertifikat und der Key erstellt. Hier auch wieder bei Common Name was Sinnvolles eintragen. Ich nehme hier den Endian Host Namen: endian. Die Passwort Frage am Ende kann ignoriert werden, also mit ENTER einfach weiter 😉
-
./pkitool --interact --pkcs12 benutzer1
Dieser Befehl erstellt das Client Zertifikat und den Key für den Benutzer „benutzer1“!
OpenVPN aktivieren und Konfigurieren:
- Nun ins Webinterface von Endian gehen > VPN und bei „OpenVPN Server aktiviert“ ein haken rein, wohin gebridget werden (meist in das Interne Netz, sprich Grün) soll und ggf. den IP Pool eingrenzen und auf „Speichern und Neustart gehen„
- nun unter VPN > Erweitert > „X.509 Zertifikat“ auswählen und bei „Durchsuchen“ das eben erstellte Server Zertifikat auswählen (in dem Beispiel MaffertVPN.p12) und auf „Speichern und Neustart gehen„
- nun kann man (muss man nicht) unter VPN > Konten noch Konten/Benutzer erstellen, so kann man ggf. dieser Person (VPN-Client) eine bestimmte statische IP oder Nameserver zuweisen
OpenVPN Benutzer/Client Konfigurationsdatei erstellen:
Damit das Programm OpenVPN weiß, wohin er sich verbinden soll und mit was für Einstellungen brauchen wir noch eine OpenVPN Konfigurationsdatei für den Clienten. Hier mal meine Vorlage:
client dev tap proto udp remote 123.456.789.321 1194 # 123.456.789.321 mit der IP des OpenVPN Server ersetzen resolv-retry infinite nobind persist-key persist-tun ca ca.crt pkcs12 benutzer1.p12 verb 3 comp-lzo ns-cert-type server
das unter „benutzer1.ovpn“ (in einem Windows Ordner z.B. „Client1“) abspeichern. Zusätzlich brauch der Client noch:
- das oben erstellte Benutzer Zertifikat (benutzer1.p12)
- das auch oben erstellte CA Zertifikat (ca.p12), was aber nach „ca.crt“ umgenannt werden muss
Insgesamt braucht der Client also 3 Dateien: benutzer1.ovpn, benutzer1.p12 und das ca.crt
OpenVPN beim Client installieren:
- OpenVPN herunterladen und installieren: http://openvpn.net/index.php/open-source/downloads.html
- die Dateien die wir oben „gesammelt“ haben nun nach (bei x86) C:\Program Files (x86)\OpenVPN\config kopieren
- OpenVPN starten und unten auf dem aufgetauchten Symbol, rechte Maustaste und auf „Verbinden“ klicken
- nun sollte die Verbindung stehen und man kann bei Endian unter VPN, unten die verbundenen Benutzer/Clients sehen
Um später nachträglich Benutzer (Zertifikate) zu erstellen, muss nur in den Ordner „/etc/openvpn/2.0/keys“ gewechselt und folgende Befehle ausgeführt werden:
source vars ./pkitool --interact --pkcs12 benutzer2