Tipps & Tricks: DD-WRT OpenVPN-Script

Discussion in 'Router' started by Gerd, Mar 29, 2018.

  1. G

    Gerd Junior Member

    Mit dem Script werden in der GUI alle OpenVPN und die dazugehörigen Einstellungen automatisch gesetzt. Falls ihr auf dem DD-WRT Router keine "automatische Konfiguration – DHCP" wünscht, dann ändert die Einstellungen nach der Scriptausführung. Getestet wurde das Script mit dem Asus RT-AC56U Router und mit der DD-WRT Firmware R35034 (vom 17.02.2018).



    Noch ein Hinweis: Das Script funktioniert nur mit einer VPN-fähiger DD-WRT Firmware. Unter diesem Link könnt ihr einsehen, ob euer Router mindestens 8 MB Flash verfügt. Router mit mindestens 8 MB Flash sind gewöhnlich OpenVPN fähig. Falls ihr noch keinen Router habt, dann empfehle ich eines dieser Geräte, wegen der schnellen Marvell CPU und den USB Support:

    • Linksys WRT1200AC
    • Linksys WRT1900ACS
    Hier geht es zum Download der DD-WRT Firmware R35034.



    Die Vorteile:
    • Mit dem Script werden Fehler bei der Konfiguration deutlich reduziert
    • So gut wie alle Einstellungen können mit wenigen Klicks importiert werden. Eine schnelle Konfiguration wird damit ermöglicht.
    Die Nachteile dieser Methode:
    • Das Script ist Versionsabhängig
    • Nach dem Zurücksetzen auf die Werkseinstellungen, werden mit dem Script 22KB NVRAM Speicher mehr benötigt. (11KB werden für das Custom-Script und 11KB werden für die Einstellungen nach der Ausführung im NVRAM Speicher hinterlegt). Wenn die Konfigurationsdateien jedoch auf ein USB-Stick abgelegt werden, dann werden statt 22 KB nur 11 KB benötigt.


    1) Vorbereitungen:

    Es ist nach der Änderung des Scripts wichtig, die Datei wieder mit dem Dateityp UNIX abzuspeichern. Bearbeiten könnt ihr das Script unter Windows z.B. mit Notepad++. Öffnet das Programm Notepad++ und geht nach der Änderung auf "Bearbeiten-> Zeilenende-> Konvertiere zu Unix (LF)".
    • Speichert das Archiv
    dd-wrt_udp_aes-256-cbc.zip, Stand: 27.03.2018, sha256: 0cfb4a6ab12479886a9b6263e1a631162f8e52627c2492a84d0706dd4542c0ab
    von diesem
    Link und entpackt ein Server eurer Wahl.
    • Öffnet die PPServer.sh Datei z.B. mit Notepad++ und ändert den Benutzername und Passwort. Falls ihr aus einem anderen Land als Deutschland kommt, ändert zusätzlich die Option Time_Zone und NTP_Server im Script. Welche Einstellung ihr für Time_Zone benötigt, könnt ihr im DD-WRT Menü "Setup-> Basic Setup" und dann unter Time Settings einsehen.
    Bild1.jpg
    • Den NTP_Server können ihr von dieser Webseite wählen. Ruft dazu die Webseite auf und klickt auf der rechten Seite unter "Active Servers" z.B. auf Europe und wählt anschließend euer Land aus.
    Bild2.JPG
    • Nachdem ihr euer Land ausgewählt habt, markiert in diesem Beispiel, wie auf dem unteren Bild, die Bezeichnung "de.pool.ntp.org" und passt die folgende Zeile im Script an:
    Code:
    nvram set ntp_server='de.pool.ntp.org'
    Bild3.JPG

    Es ist vor der Scriptausführung wichtig den Router auf Werkseinstellungen zu setzen, um sicher zu gehen, dass die Konfiguration einwandfrei funktioniert. Theoretisch könnte man das Script aber auch ohne ein Reset ausführen.

    Macht ein Backup vor der Scriptausführung. Wenn der VPN-Zugang nicht mehr benötigt wird, dann könnt ihr das Backup jederzeit zurückspielen.

    • Geht zum Menü "Status-> Router" und vergewissert euch unter dem Punkt "Space Usage", dass genug NVRAM Speicher für das Script vorhanden ist.
    Bild4.JPG


    Entscheidet euch als nächstes für eines der beiden Punkte:

    2) "Custom-Script Konfiguration"
    3) "Konfiguration über ein USB-Stick"



    2) Custom-Script Konfiguration:
    • Wechselt zum DD-WRT Menü und geht zu der Registerkarte "Administration-> Commands"
    • Öffnet das Script und kopiert anschließend den Inhalt in das Fenster "Command Shell" und speichert es mit dem Button 'Save Custom Script'.
    • Fügt anschließend in das Fenster "Command Shell" die Zeile "sh /tmp/custom.sh" (ohne "") ein und führt es mit dem Button 'Run Commands' aus.
    • Startet danach den Router neu. Bis die OpenVPN Verbindung dann aufgebaut wird, können je nach Router mindestens 60 Sekunden vergehen.
    Bild5.jpg



    3) Konfiguration über ein USB-Stick:

    • Schließt ein USB-Stick an euren PC an und formatiert die Partition als ext2 oder 3
    • Verbindet anschließend den USB-Stick mit eurem DD-WRT Router und aktiviert den USB Support mit diesen Einstellungen:
    Bild6.jpg

    Nachdem ihr die Einstellungen abgespeichert habt, wird der USB-Stick in wenigen Sekunden erkannt. Danach wird unter den USB-Einstellungen eine UUID Nummer angezeigt.

    • Kopiert diese UUID Nummer in das Feld "Mount this Partition to /jffs" und speichert die Einstellungen ab
    • Geht zum Menü "Services-> Services" und aktiviert die Option SSHd
    • Erstellt danach eine Verbindung mit dem DD-WRT Router z.B. über das Programm WinSCP und kopiert alle abgeänderten PPServer.sh Dateien in den /jffs/ Ordner
    Bild7.jpg
    • Nachdem ihr alle PPServer-Dateien kopiert habt, deaktiviert wieder SSHd.
    • Wechselt zu der Registerkarte "Administration-> Commands"
    • Fügt anschließend in das Fenster "Command Shell" die Zeile "sh /jffs/PPServer.sh" (ohne "") ein. Achtet auch bei der PPServer.sh Bezeichnung auf die Großschreibung und ersetzt es mit einem Server eurer Wahl.
    • Führt das Script mit dem Button 'Run Commands' aus.
    Um die Eingabe im Fenster "Command Shell"zu erleichtern, könnt ihr folgenden Text mit dem Button 'Save Custom Script' abspeichern:
    Code:
    #sh /jffs/Amsterdam.sh#
    #sh /jffs/Basel.sh#
    #sh /jffs/Berlin.sh#
    #sh /jffs/Bucharest.sh#
    #sh /jffs/Cairo.sh#
    #sh /jffs/Calais.sh#
    #sh /jffs/Chicago.sh#
    #sh /jffs/Copenhagen.sh#
    #sh /jffs/Dallas.sh#
    #sh /jffs/Erfurt.sh#
    #sh /jffs/Frankfurt.sh#
    #sh /jffs/Hamburg.sh#
    #sh /jffs/Hongkong.sh#
    #sh /jffs/Istanbul.sh#
    #sh /jffs/London.sh#
    #sh /jffs/LosAngeles.sh#
    #sh /jffs/Malmoe.sh#
    #sh /jffs/Melbourne.sh#
    #sh /jffs/Miami.sh#
    #sh /jffs/Montreal.sh#
    #sh /jffs/Moscow.sh#
    #sh /jffs/NewYork.sh#
    #sh /jffs/Nottingham.sh#
    #sh /jffs/Nuremberg.sh#
    #sh /jffs/Oslo.sh#
    #sh /jffs/Paris.sh#
    #sh /jffs/Prague.sh#
    #sh /jffs/Reykjavik.sh#
    #sh /jffs/Riga.sh#
    #sh /jffs/Rotterdam.sh#
    #sh /jffs/Singapore.sh#
    #sh /jffs/Steinsel.sh#
    #sh /jffs/Stockholm.sh#
    #sh /jffs/Strasbourg.sh#
    #sh /jffs/TelAviv.sh#
    #sh /jffs/Tokyo.sh#
    #sh /jffs/Zurich.sh#
    So habt ihr die Liste griffbereit und braucht nur noch die passende Zeile (ohne ##) zu kopieren und es mit 'Run Commands' ausführen.

    • Startet danach den Router neu. Bis die OpenVPN Verbindung dann aufgebaut wird, können je nach Router mindestens 60 Sekunden vergehen.


    4) OpenVPN dauerhaft deaktivieren
    • Wechselt zum Menü "Services-> VPN" und deaktiviert den OpenVPN Client
    • Speichert die Änderungen ab
    • Löscht anschließend die Firewall Regeln unter der Registerkarte "Administration-> Commands" und rebootet den DD-WRT Router nach dem abspeichern


    5) Sonstiges

    Falls ihr das Script mit einer neueren Version ausprobieren solltet, dann teilt mir mit, mit welcher Version es funktioniert bzw. nicht funktioniert hat. Dies würde den anderen Mitgliedern helfen.
     
    Last edited: Mar 31, 2018
    atmos1 and PapaBaer76 like this.
  2. G

    Gerd Junior Member

    Offen für Sonstiges
     
  3. a

    atmos1 New Member

    Hallo Gerd,
    vielen Dank für die Anleitung !
    Ich muss vorweg schicken, dass ich ein Newbie in dem Bereich OpenVPN mit Router bin.
    Bei mir läuft DD-WRT Firmware 35034 auf einem Linksys 1200ac v2.
    Die Scripte laufen bei mir einwandfrei. Mir ist aufgefallen, das die Clientschlüssel und -zertifikate in den Scripten mit denen, die ich von Perfect Privacy erhalten habe,
    zu 100 % übereinstimmen. Das würde ja bedeuten, dass jeder, der sich hier im Forum registriert, zumindest schon mal an die Schlüssel und Zertifikate kommt. Bisher dachte ich, dass Private Keys immer geheim gehalten werden müssen !?
    Wenn ich selber einen OpenVPN-Server einrichte, und mit EASY-RSA ( z. B. auf einem Linux-Rechner ) die entsprechenden Schlüssel und Zertifikate generiere, dann erhalte ich für jeden Client, dem ich Zugang gewähren will, einen unterschiedlichen PrivatKey !
    Wie geschrieben bin ich Anfänger und profitiere von Anleitungen wie auch von deiner, die ich Schritt für Schritt befolge.
    Sind meine Bedenken grundlos ?

    Gruß Atmos1
     
  4. G

    Gerd Junior Member

    In erster Linie wollte ich die Scripte mit Zertifikaten bereitstellen, um es für andere so benutzerfreundlich wie möglich zu machen. Ich hätte auch eine Anleitung schreiben können, die sich auch mit der Erstellung der Scripte befasst, aber das würde alles nur verkomplizieren.

    Irgendwann in der Zukunft wird auch PP vielleicht so eine Anleitung mit Scripts bereitstellen. Die Erlaubnis hier die Zertifikate bereit zu stellen hatte ich schon von PP.

    Ja. Allerdings kann ich keine fachmännische Auskunft geben. Hier könnte jemand etwas dazu sagen der sich mehr mit OpenVPN auskennt.

    P.S. Gut zu wissen das die Scripte bei dir funktionieren. Welchen Teil der Anleitung hast du angewendet?
    2) "Custom-Script Konfiguration" oder
    3) "Konfiguration über ein USB-Stick"?
     
  5. a

    atmos1 New Member

    Ich habe "Konfiguration über ein USB-Stick" benutzt. Habe das Script vorher noch mit Static-WAN-IP abgeändert.

    Gruß Atmos1