Linux: VPN Netzwerk erstellen (Linux Server/Windows Client)

Guten Tag,

in diesem Tutorial behandelt ausführlich das Thema Virtuelle Private Netzwerke (eng. Virtuell Private Network, oder VPN).

OpenVPN auf einem Linux System installieren

Wir benötigen für die Verwendung eines VPNs das folgende Paket und werden dieses sofort installieren:

apt-get install openvpn

Bei der Installation wird im Verzeichnis /usr/share/doc/openvpn/examples/sample-config-files/  eine beispiel Konfiguration gespeichert. Diese werden wir in das Verzeichnis /etc/openvpn/ kopieren.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

Da die server.conf Datei noch in einem „gz-Achiv“ verpackt ist, müssen wir diese noch entpacken:

gunzip /etc/openvpn/server.conf.gz

Nun einfach noch folgenden Befehl zur Kopierung ausführen:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2

 

Zertifikate und Schlüssel erstellen

Da die Authentifizierung bei OpenVPN zwischen Cleint und Server über Zertifikate und Schlüssel statt findet, werden wir nun diese besagten Keys/Zertifikate generieren und die Konfigurationen dementsprechend anpassen.

Wir wechseln mit cd in das Verzeichnis  /etc/openvpn/easy-rsa2/:

cd  /etc/openvpn/easy-rsa2/

In dem Verzeichnis erfolgreich angekommen führen wir folgenden Befehl aus:

source ./vars

Sofort wird eine Fehlermeldung ausgegeben. Daher müssen wir nun mit den folgenden Zeilen die Master Schlüssel und Zertifikate generieren müssen:

./clean-all

./build-ca

Außerdem müssen wir nun das Zertifikat für den Server erstellen:

./build-key-server server

Wenn wir nach einem sog. Common Name gefragt werden, sollte man hier den Namen eingeben, mit dem auf den Server zugegriffen werden soll oder man gibt einfach die DynDNS Adresse ein. Bei dem Challenge Password müssen wir auch nichts schreiben. Abschließend zwei mal mit Y bestätigen. Die Server-Keys wären soweit erstellt. Nun müssen wir noch auf dem Server die einzelnen Benutzer und deren Keys anlegen. Einfach den folgenden Befehl ausführen:

./build-key <IHRNAME>

Auch hier gehen wir nach dem gleichen Muster vor. Der Common Name ist in unserem Fall nur der Name des Clients.

Abschließend noch die DH (Diffie-Hellman) Zertifikate erstellen:

./build-dh

 

Die gerade erstellten Zertifikate finden wir im Ordner  /etc/openvpn/easy-rsa2/keys/ vor.

 

Konfiguration

Nun wüssen wir in der OpenVPN Config noch die Pfade zu den eben erstellten Schlüsseln und Zertifikaten anpassen. dazu öffnen wir diese mit dem Programm nano oder vi. Im folgenden wird mit dem Consolen-Editor nano gearbeitet.

nano /etc/openvpn/server.conf

Wenn Sie wie bis hierhin dem Tutorial gefolgt sind, passen Sie die Datei wie folgt an:

ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key
dh ./easy-rsa2/keys/dh1024.pem

Wir speichern das ganze mit STRG + 0 in nano ab.

Nun können wir das erste mal den Server starten:

service openvpn restart

Wenn der Server nicht gestartet werden kann und wir ein rotes failed zurückbekommen, sehen wir mit folgenden Befehl die log Datein ein:

cat /var/log/daemon.log

ODER

cat /var/log/syslog

Wenn Probleme auftauchen  sollte man überprüfen ob der Ordner /dev/net/tun vorhanden und die benötigten Rechte besitzt. Wenn man sich nicht sicher ist, ist es ratsam die folgenden Befehle auszuführen:

mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun

Nachdem wir nun alle soweit in frage kommenden Probleme gefixt haben, werden wir nun versuchen den Server erneut zu starten:

service openvpn restart

Die Konfiguration sollte mit einem erfolgreichen neustart abgeschlossen sein. (Terminal nicht schließen! Wird noch gebraucht)

Verbinden mit dem Server

Nachdem Sie jetzt soweit die Installation und Konfiguration erfolgreich abgeschlossen haben, werden wir nun unseren Windows Rechner mit dem VPN Server verbinden. Dazu legen wir ein Verzeichnis namens „config“ auf unserem Desktop an. Dort ziehen wir nun aus dem Ordner /etc/openvpn/easy-rsa2/keys/ folgende Dateien:

ca.crt
<IHRBENUTZER>.crt
<IHRBENUTZER>.key

Da wir noch die client.conf Datei brauchen, kopieren wir uns die Beispiel Konfiguration von OpenVPN in das Verzeichnis /etc/openvpn/

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Dann öffnen wir die Datei, um sie zu editieren:

nano /etc/openvpn/client.conf

Dort passen wir zuerst den „hostname/IP and port of the server“ an:

remote <IP DES SERVERS> <PORT (Standard: 1194>

Nachdem wir nun die Server-Ip und den OpenVPN Port festgelegt haben, müssen wir noch die folgenden Zeilen editieren:

cert <IhrBenutzer>.crt

key <IhrBenutzer>.key

Wir speichern in Nano mit STRG + O ab und kopieren und die client.conf in den besagten Ordner auf unserm Desktop. Auf unserem Desktop angekommen, werden wir nun eine Kopie der client.conf den Namen client.ovpn geben.

Nun fehlt uns noch die OpenVPN Client  Software. Diese laden wir uns auf dieser Seite herunter und installieren diese.

Nach einer erfolgreichen Installation werden wir den auf unserem Desktop liegenden Ordner config in den Ordner C:\Program Files\OpenVPN\config verschieben. Dazu benötigen wir Administrative Rechte, da wir in ein Programm-Verzeichnis kopieren.

Anschließend führen wir den OpenVPN Client als Admin aus. Dies ist wichtig, da Windows die Software daran hindert, ein Netzwerk aufzubauen.

Das Programm wird in der Taskbar (unten rechts angezeigt). Wir tätigen einen rechts-Klick auf die Datei und klicken auf connect, wir sollten uns nun mit dem Server verbinden.

Von nun an ist es möglich per VPN auf den Server zuzugreifen. Wie wir sehen, können wir uns nur mit den nötigen Zertifikaten auf dem Server einloggen. Dies macht es Angreifern schwerer den Server anzugreifen.

Wenn Sie noch Fragen offen sein sollten oder etwas bei Ihnen nicht geklappt hat, besuchen Sie bitte unser Support-Center. Wir werden gemeinsam Ihr Problem lösen 😉

 

Vielen Dank!

Ihr TheTutorial.de Team 😉

10 Kommentare

  1. hi Christian,

    danke für die ausführliche Anleitung zum Thema VPN.
    Ich habe habe aber noch eine dringende Frage zum Thema.

    Sollte ich in einem Kaffee ein öffentliches WLAN über mein Netbook verwenden , möchte ich natürlich meinen privaten VPN nutzen um darüber zu surfen damit der Betreiber des öffentlichen WLAN’s nicht meine privaten Daten einsehen kann.
    Da ich aber zunächst erst einmal über seinen AP eine Verbindung zu meinem VPN aufbauen muss, würde mich interessieren ob er bei einer Autorisierung mittels “ Private Key“ an meinem VPN auch dieser Verbindungsaufbau „abgehört“ werden kann. Oder würde das nur funktionieren wenn ich dem Zugriff am VPN über Benutzername und Passwort ausführen würde ?
    Mir ist es wichtig das der öffentliche AP keine Zugangsdaten zum VPN abhören kann. Sobald die Verbindung besteht,wird der Datenstrom ja eh getunnelt.
    Info wäre sehr nett.

    Gruß Chri5

    1. Guten Abend,

      sorry das ich jetzt erst antworten kann.

      Erst mal freut es mich sehr, dass dir unser Tutorial gefallen und weiter geholfen hat.

      Das Tutorial kann ich gerade machen, doch gib mir noch ein wenig Zeit, habe momentan sehr wenig davon. :/ Sorry

      Mit freundlichen Grüßen
      Chris von TheTutorial 🙂

  2. Aug 20 19:15:32 gregor-desktop ovpn-server[19642]: OpenVPN 2.1.0 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Jul 20 2010
    Aug 20 19:15:32 gregor-desktop ovpn-server[19642]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
    Aug 20 19:15:32 gregor-desktop ovpn-server[19642]: Cannot open dh1024.pem for DH parameters: error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such file
    Aug 20 19:15:32 gregor-desktop ovpn-server[19642]: Exiting

    Was tuhen das kommt beim restarten des Servers und was du im video gemacht hast ging auch nit

      1. STOP!

        Die Lösung des Problems:

        man muss in dem folgenden Abschnitt:

        Code:

        # Diffie hellman parameters.
        # Generate your own with:
        # openssl dhparam -out dh1024.pem 1024
        # Substitute 2048 for 1024 if you are using
        # 2048 bit keys.
        dh dh1024.pem

        ein # vor die letzte Zeile machen, weil sonst der eigene Pfad wieder überschrieben wird …

        Code:

        #dh dh1024.pem

        Quelle: http://www.online-tutorials.net/tutorials/openvpn-dm1024pem-fehler/t-2-248-8-page1.html

  3. So, jetzt zum TUT..
    Ich begrüße diese Tutorial sehr! Geniales Teil 🙂
    So einfach und unkompliziert sollte jedes TUT sein!
    *Respekt*

    Eine Frage habe ich dennoch:
    Mein VPN-Server ist erstellt, ein client habe ich schon. Wie füge ich weitere hinzu? wenn ich ja wieder mit „clean-all“ anfange, ist ja die vorherige config weg..

    Desweiteren habe ich das noch nicht ganz geschnallt, wie das mit dem DYNDNS gemeint ist.
    Meine Netzwerkstruktur sieht folgendermaßen aus:

    HOME: Fritzbox über Telekom (dynamische IP)
    NEtbook: UMTS
    Firmennetz: Telekom mit fritzbox (Dyn. IP)
    Mehere Handys mit (Dyn. IP)
    Dann sind noch ein zwei rechner, die per umts ins netz gehen (Mitarbeiter)

    Mein VPN Server ist ein root-server.
    Wie bekomme ich nun die ganzen clienten so rein, dass sie alle über den vpn laufen?

    PS: Mit der fritzbox ist es möglich und eine ist schon mit dem server verbunden. Rufe ich aber „meineip.de“ (oder andere) auf, sehe ich immer meine „Private IP“

    Hat jmd Vorschläge, oder gute tips?

    Viele Grüße aus dem Regnerischen Sachsen

  4. Hallo,

    Ein sehr gutes Tut! Danke!

    Jedoch habe ich ein Problem. Ich habe alles wie im Tut gemacht nur bei „Common Name“ habe ich meine dyndns adresse angegeben. Außerdem in „/etc/openvpn/client.conf“ auch meine dyndns adresse angegeben. Ich starte auf meinem Windows rechner nun den clienten und er verbindet sich… neue ip zugewiesen „10.8.0.1“…. egal von einem öffentlichen netz aus oder von zuhause. Also die Weiterleitung über dyndns sollte funktionieren, jedoch kann ich mich nicht über „10.8.0.1“ über Putty verbinden und Pingen geht auch nicht. Windows firewall hab ich deaktiviert aber bringt nichts. Woran könnte es liegen das immer „zeitüberschreitung“ kommt obwohl ich mich erfolgreich ins netz einloggen kann?

    liebe grüße

  5. hallo und wie siet des aus wen ich den openvpn server auf einem linux server insterliere und auf einem anderen linux server mit dieser IP erreibar sein will das geht das weis ich man kann sich so einen kaufen bei prq.se z.b. aber ich will so einen selber machen wie geht das ??

    danke schonmal

  6. Hallo,
    ich abeite zum ersten mal mit UBUNTU und habe wenig Erfahrung.

    Wahrscheinlich mache ich einen ganz simpeln Fehler.

    Ich komme an dieser Stelle nicht weiter und erhalte eine Fehlermeldung.

    Ich gebe ein:
    root@laptop-Latitude-E4300:/# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2

    Und erhalte die Fehlermeldung:
    cp: der Aufruf von stat für »/usr/share/doc/openvpn/examples/easy-rsa/2.0“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden

    Ich habe die Datei easy-rsa/2.0 auch nicht gefunden und habe darauf hin das Programm openvpn gelöscht und noch einmal installiert. Aber beim erneuten installiern blieb die Fehlermeldung. Ich mach etwas falsch. Aber was? Ich habe alle angegebenen Befehle 1:1 abgetippt.

    Gruß,
    Gerhard

    1. Hallo,

      für alle die das selbe Problem wie Gehardt haben.
      Ab Ubuntu 13.04 muss das Paket easy-rsa zusätzlich installiert werden, und liegt dann im Verzeichniss /usr/share/easy-rsa.
      Der Befehl um die Beispielkonfiguration zu kopieren lautet ab Ubuntu 13.04 daher „sudo cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa2 „.

      Gruß Philip

Kommentar hinterlassen