openvpn auf DDWRT router

privacy

Active Member
1. ihr braucht die openvpn Android/ios dateien
2. sucht euch ein server aus wenn ihr den server wechselt müsst ihr die keys auch ändern
3. DDWRT -> Setup -> Basic Setup -> Static DNS 1 und Static DNS 2 google dns oder opendns eintragen sonst gibts keine internetverbindung Static DNS 3 10.0.0.0 eintragen

4. DDWRT router -> Services -> VPN -> Start OpenVPN Client enable


Server IP/Name: xxxx.perfect-privacy.com
Port: 1149
Tunnel Device: TUN
Tunnel Protocol: UDP
Encryption Cipher: AES-256 CBC
Hash Algorithm: SHA-512
Advanced Options: ENABLE
TLS Cipher: TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
LZO Compression: Adaptive
NAT: ENABLE
Tunnel UDP Fragment: 1300
nsCertType verification: aktivieren

__________________________________________________________________

Additional config:

pull-filter ignore "ifconfig-ipv6"
pull-filter ignore "route-ipv6"

__________________________________________________________________

TLS Auth Key: von

#
# 2048 bit OpenVPN static key
#
bis -----END OpenVPN Static key V1-----

kopieren


CA Cert: von -----BEGIN CERTIFICATE----- bis -----END CERTIFICATE----- kopieren
Public Client Cert: von -----BEGIN CERTIFICATE----- bis -----END CERTIFICATE----- kopieren
Private Client Key: von -----BEGIN PRIVATE KEY----- bis -----END PRIVATE KEY----- kopieren

Save und Apply Settings klicken

__________________________________________________________________


http://ipleak.net/ und dnsleaktest.com testen es sollte nur die google dns server anzeigen

__________________________________________________________________
 
Last edited:

Gerd

Active Member
Soviel ich verstanden habe muss dein Router DD-WRT Mega Version unterstützen, dann kannst du das meiste über die Benutzeroberfläche konfigurieren/ einstellen. Allerdings kommt die Mega Version ohne ein kleinen Script nicht aus.

Wenn dein Router die Mega Version nicht unterstützt, dann kannst du auf die DD-WRT Standard Version zurück greifen. Dort muss die OpenVPN Verbindung komplett über ein Script laufen.

Sobald du alles richtig eingestellst hast (GUI konfiguration + Script), kannst du immer noch nicht eine Verbindung zu PP Server aufbauen.
DD-WRT kann "DHCP mit OpenVPN" + "Internet (Z.B. mit PPPoE)" gemeinsam nicht verwenden.
Also brauchst du 2 Router mit DD-WRT, auf dem einmal eine Internet Verbindung aufgebaut wird und einmal auf dem DHCP mit OpenVPN läuft.
(Wie gesagt, soviel ich verstanden habe. Kann mich auch täuschen :))

Wenn du auf ein Router nicht verzichten willst, dann kann ich dir nur raten zu OpenWRT, Tomato oder pfSense zu wechseln.

Wie man ein OpenVPN Script für DD-WRT erstellt, kannst du bei anderen VPN Anbietern abgucken.

Edit:
An die Leser: Was ich noch hinzufügen möchte ist das der erste Post von privacy aktuell gehalten wird. Viele der unteren Posts sind nicht mehr auf dem aktuellsten Stand. Daher müsste der erste Post völlig ausreichen. All meine Posts bis zu dem Post #8 würde ich an eurer Stelle überfliegen, weil vieles davon nicht zutrifft. Wie es man an meinem oberen Post sehen kann. Danke.
 
Last edited:

privacy

Active Member
Danke für dein Post Gerd ich meinte aber was ich in der openvpn gui einstellen muss

nsCertType verification aktivieren oder nicht?
Hash Algorithm = SHA1 oder doch was anderes?
TLS Cipher = AES 256 SHA oder doch was anderes?
NAT = Aktivieren oder deaktivieren?


du brauchst nur ein modem + ddwrt router ;) keine 2 ddwrt router

zu OpenWRT, Tomato oder pfSense wechseln will ich nicht bin zufrieden mit DDWRT da funktioniert openvpn perfekt mit anderen anbietern die ein tutorial haben
 

Gerd

Active Member
Es wäre erst einmal hilfreicher zu wissen, welchen Router und DD-WRT Version (Standard, VPN, Big, Mega) du hast.
Bei jeder Version muss man andere Einstellungen vornehmen.
 

Gerd

Active Member
Da muss ich wohl einiges korrigieren. DD-WRT läuft wohl auf BIG, MEGA und STD VPN Versionen. Mann muss aber die neuste Firmware Version von BrainSlayer oder Eko drauf spielen, und nicht von Router Database. Von daher sollte es keine Probleme OpenVPN Client über WebGUI zu konfigurieren. Ich habe selbst kein DD-WRT, aber die meisten Einstellungen kann man von Server.ovpn ablesen.

Z.B. steht in der OVPN Datei "ns-cert-type Server" aber nichts von Hash Algorithm oder TLS Cipher.
Von daher würde ich nsCertType verification aktivieren und Hash Algorithm oder TLS Cipher deaktivieren. NAT kann man auch aktivieren.
 

Pluteus

Member
Ich frage noch mal nach da ich es bis jetzt leider nicht geschafft hab OpenVPN auf DD-WRT mit Perfect Privacy zum laufen zu bringen.
Ich habe mir die Installationsscripte von anderen Providern angeschaut allerdings konnte ich mich damit nie verbinden.

Wäre super wenn es eine Anleitung geben würde wie für z.b. Linux in dem HowTo Tab auf der Webseite.

Danke schon einmal für jeden der mir etwas dabei helfen kann
 

privacy

Active Member
Habe es geschafft leider nur TCP aber besser als nichts:)

1. ihr braucht die openvpn Android/ios dateien
2. sucht euch ein server aus wenn ihr den server wechselt müsst ihr die keys auch ändern
3. DDWRT -> Setup -> Basic Setup -> Static DNS 1 und Static DNS 2 google dns oder opendns eintragen sonst gibts keine internetverbindung
4. DDWRT router -> Services -> VPN -> Start OpenVPN Client enable

Server IP/Name: xxxx.perfect-privacy.com

Port: 1152
Tunnel Device: TUN
Tunnel Protocol: TCP
Encryption Cipher: AES-256 CBC
Hash Algorithm: SHA-512
Advanced Options: ENABLE
TLS Cipher: TLS-DHE-RSA-WITH-AES-128-CBC-SHA

LZO Compression: YES
NAT: ENABLE
nsCertType verification: aktivieren

TLS Auth Key: von

#
# 2048 bit OpenVPN static key
#
bis -----END OpenVPN Static key V1-----

kopieren

Additional Config: auth-user-pass /tmp/auth.conf

CA Cert: von -----BEGIN CERTIFICATE----- bis -----END CERTIFICATE----- kopieren
Public Client Cert: von -----BEGIN CERTIFICATE----- bis -----END CERTIFICATE----- kopieren
Private Client Key: von -----BEGIN PRIVATE KEY----- bis -----END PRIVATE KEY----- kopieren

Save und Apply Settings klicken


dann auf Administration -> Commands

#!/bin/sh
touch /tmp/auth.conf
echo "DEINUSERNAME" > /tmp/auth.conf
echo "DEINPASSWORT" >> /tmp/auth.conf

username und passwort ändern und auf SAVE STARTUP klicken


die iptables kopieren und einfügen

iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
iptables -I FORWARD -i br0 -o vlan2 -j DROP
iptables -I INPUT -i tun0 -j REJECT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Save Firewall klicken

DDWRT -> Administration -> Management ganz unten Reboot Router FERTIG

http://ipleak.net/ und dnsleaktest.com testen es sollte nur die google dns server anzeigen
 

Gerd

Active Member
Nehme folgende Einstellungen zusätzlich zu deiner Konfiguration, um es mit udp zum laufen zu bekommen:

Erst einmal die neuste Firmware von ftp://dd-wrt.com/betas flashen (besonders wegen den Sicherheitslücken).

Dann deine Konfiguration +

Unter Basic-> Basic Setup:

-Use DNSMasq for DHCP deaktivieren
-USE DNSMasq for DNS deaktivieren
-DHCP-Authoritative deaktivieren


OpenVPN Konfiguration:

“Start OpenVPN Client“-> “Enable“
“Server IP/Name“-> “xxxx.perfect-privacy.com“
“Port-> “1149
“Tunnel Device“-> “TUN“
“Tunnel Protocol“-> “UDP“
“Encryption Cipher“-> “AES-256-CBC“
“Hash Algorithm“-> SHA512“
“Advanced Options“-> “Enable
“TLS Cipher“-> “None“
“LZO Compression“-> “Adaptive“
“NAT“-> “Enable“
“Tunnel MTU Settings“-> “1500“
“Tunnel UDP Fragment“-> 1300“
“Tunnel UDP Mss-Fix“-> “Enable“
“nsCertType verification“-> aktivieren
“Additional Config“:

Code:
redirect-gateway def1
float
reneg-sec 86400
persist-remote-ip
route-method exe
route-delay 2
tls-timeout 5
hand-window 120
tls-cipher DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
auth-user-pass /tmp/auth.conf
inactive 604800
ping 5
ping-restart 120
replay-window 512 60
mute-replay-warnings

TLS Auth Key: von -----BEGIN CERTIFICATE----- bis -----END CERTIFICATE----- kopieren

dann unter Administration -> Commands

Code:
#!/bin/sh
touch /tmp/auth.conf
echo "DEINUSERNAME" > /tmp/auth.conf
echo "DEINPASSWORT" >> /tmp/auth.conf
/usr/bin/killall openvpn
/usr/sbin/openvpn --config /tmp/openvpncl/openvpn.conf --route-up /tmp/openvpncl/route-up.sh --down-pre /tmp/openvpncl/route-down.sh --daemon

Nach der Konfiguration Rooter nochmal rebooten.
 

privacy

Active Member
Danke Gerd funktioniert aber leider nicht habe gestern auch schon udp getestet er verbindet sich zum vpn aber keine internet seite geht auf
 

Gerd

Active Member
Bei mir funktioniert es. Meine Konfiguration unterscheidet sich nicht großartig von deiner.
Nur den Autostart Script habe ich etwas anders.

Code:
echo DEINUSERNAME >> /tmp/auth.conf
echo DEINPASSWORT >> /tmp/auth.conf
/usr/bin/killall openvpn
/usr/sbin/openvpn --config /tmp/openvpncl/openvpn.conf --route-up /tmp/openvpncl/route-up.sh --down-pre /tmp/openvpncl/route-down.sh --daemon

Welche VPN Revision hast du?
​Auch die "" bei Benutzername und Passwort entfernt?
Die Kommentare (#) bei TLS Auth Key entfernt?
Auch richtige Time Zone eingetragen?
Die Firewall Settings habe ich auch etwas anders. Versuch erst einmal ohne die.

Nachtrag:
Versuch statt Port 1152 1149
 

privacy

Active Member
Danke hatt geklappt

Tunnel UDP Fragment“-> 1300

das hatte ich vergessen


komisch der speed bleibt gleich ob tcp oder udp dachte der asus ac68u schafft mehr als 25mbps

habe nur tcp zu udp geändert und port 1152 zu 1149 und Tunnel UDP Fragment: 1300

den rest hab ich wie oben gleich gelassen
 

Gerd

Active Member
Ich musste meine Konfiguration ein wenig verändern, um TCP zu nutzen.
Und habe das geändert:

Port-> “1152
Tunnel Protocol“-> “TCP
“Tunnel UDP Fragment“-> (leer gelassen)
“Additional Config“:
Code:
redirect-gateway def1
reneg-sec 86400
persist-remote-ip
route-method exe
route-delay 2
key-direction 1
tls-timeout 5
hand-window 120
tls-cipher DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
auth-user-pass /tmp/auth.conf
inactive 604800
ping 5
ping-restart 120
mute-replay-warnings

Zwischen deiner und meiner Konfiguration gab es natürlich keine Geschwindigkeitsunterschiede.
Zwischen UDP und TCP Konfiguration konnte ich aber minimale Geschwindigkeitsunterschiede erkennen.

Mit UDP hatte ich im Vergleich zu TCP weniger Download Tempo aber höheren Upload Tempo.
Die Unterschiede waren schon wie gesagt sehr gering, aber messbar.
 

privacy

Active Member
Policy Based Routing klappt bei mir nicht :( Bei meinem alten Router musste ich nur die ip adresse von meinen Geräten untereinander reinschreiben funktioniert bei der (SVN revision 23900M) leider nicht mehr.
 

Gerd

Active Member
Hier ist noch ein Beispiel, wie man JFFS2 unter DD-WRT aktiviert.
Sobald JFFS2 aktiviert ist, wird ein Verzeichnis angelegt. Es ist das einzige Verzeichnis über den man Schreibrechte verfügt. Dort kann man dann die Zertifikate ablegen und den Pfad unter "Additional Config" zu den Keys anpassen. Diese Konfiguration hat gegenüber anderen Konfigurationen den Vorteil, dass der NVRAM Speicher weniger belegt wird. JFFS2 kann man unter der DD-WRT Giga, Mega, Big und openvpn_jffs_small aktivieren. Von DD-WRT openvpn_jffs_small würde ich abraten, weil es seit 2012 nicht mehr weiter entwickelt wird.

Zu der Konfiguration:
Im Menü "Administration\Management\JFFS2 Support":
“"JFFS2"“ Enable
'Save'
Warte einige Sekunden
'Apply Settings'
Warte wieder einige Sekunden
“"Clean JFFS2"“ Enable
'Apply Settings'
Warte bis die Web-Benutzeroberfläche aufgebaut wurde
“"Clean JFFS2"“ Diable
'Save'
'Reboot Router'

Wie auf dem Bild zu sehen ist, sind in meinem Beispiel 324.00 KB belegt und 252 KB von 576 KB noch frei.



Meiner Ansicht nach hat die Script Konfiguration nur den Vorteil, dass man die OpenVPN Konfiguration selbst bestimmen und automatisieren kann. Mit Script wird der NVRAM Speicher auch mehr belegt als mit JFFS2. Die JFFS2 aktivierung im Script einzubauen ist mir nicht gelungen. Sonst hätte man die Installation schön automatisieren können und alles mit einem klick eingestellt.
 

Wall-E

Member
Hallo,
ich versuche seit einiger Zeit auf meinem TPLINK ARCHER-C7 v2 mit der aktuellen DD-WRT Version v24-sp2 (12/22/14) std - build 25697 eine PP-OpenVPN-Verbindung einzurichten. Da ich nicht ausreichend Wissen besitze, um mir aus den gegebenen Infos selbst etwas zusammenzubasteln, ist mein Problem folgendes: Entweder, ich finde in den hier genannten Anleitungen nicht die entsprechenden Optionen im Routermenü, oder es gibt im Routermenü Optionen, die in den Anleitungen nicht erwähnt werden.

Ich beziehe mich jetzt nur auf die Postings #7 (von privacy) und #8 (von Gerd). Unter Berücksichtigung der Optionen in den beiden Postings sehen meine Menüs z.Zt. wie folgt aus:

1. Unter SETUP / BASIC SETUP:


2. Unter Services/OpenVPN-Client:

Zu den gelb hervorgehobenen Einträgen tauchen in den Postings #7+#8 nichts dazu auf.
Aktiviert man "User Pass Authentication" kommt das Eingabefeld für Kennung/Passwort.
Bei IP-Adresse/Subnetz-Maske ... kommt da die Lokale Router-IP-Adresse/Subnetz-Maske rein?


Bis zu dem Punkt "“nsCertType verification“-> aktivieren" denke ich habe ich erstmal alles soweit richtig eingestellt, dann gehts aber los, wo ich meine Schwierigkeiten habe:

Wo kommt der COde für die Additional Config rein? (Post #8 Code: ....)? Unter "Open VPN Konfiguration"?


3. Unter Administration/Diagnose --> Kommandozeile

habe ich z.Zt. den Code von Gerd aus Post #10 stehen, Kennung/Passwort natürlich ohne * oder "...

Gibt es außer Basic Setup, Services/VPN und Administration/Diagnose noch weitere Menüs, in denen etwas verändert/angepasst werden muss?

Wenn ich etwas verändert habe, habe ich den Router grundsätzlich neu gestartet.

Ich bedanke mich sehr für Eure Hilfe, ich freue mich schon auf die Zeit, wenn die VPN Verbindung durch den Router gemanaged wird :)
 

privacy

Active Member
additional config muss in openvpn konfiguration rein

du kannst user pass authentication aktivieren (pp login eingeben) und auth-user-pass /tmp/auth.conf löschen (additional config) und aus startup
echo "DEINUSERNAME" > /tmp/auth.conf
echo "DEINPASSWORT" >> /tmp/auth.conf

löschen

oder deaktiviert lassen und in additional config auth-user-pass /tmp/auth.conf lassen

und das einfügen (startup)

#!/bin/sh
touch /tmp/auth.conf
echo "DEINUSERNAME" > /tmp/auth.conf
echo "DEINPASSWORT" >> /tmp/auth.conf
/usr/bin/killall openvpn
/usr/sbin/openvpn --config /tmp/openvpncl/openvpn.conf --route-up /tmp/openvpncl/route-up.sh --down-pre /tmp/openvpncl/route-down.sh --daemon


#!/bin/sh
touch /tmp/auth.conf

das hast du vergessen in startup deswegen funktioniert das nicht


ip adresse und subnetzmaske im openvpn client menü löschen der macht das selber
 

Wall-E

Member
Hallo Privacy, danke für Deine Antwort.
Habe jetzt meine Einstellungen nochmals etwas polliert und aufgefrischt und jetzt funktioniert es.
Drei Sachen beschäftigen mich noch:

1. trotz aktiver Firewall und den eingetragenen IP Tables (iptables kopieren/einfügen / save firewall) habe ich zwischen Routerstart und VPN-Verbindung Zugriff auf das Netz via normaler IP des ISP. Ist das normal, oder dürfte das gerade wg. der Firewall eigentlich nicht sein?

2. Ich würde gerne bei meinem TPLINK ARCHER-C7 v2 auch den JFFS2 Speicher nutzen, da der Router 12MB davon hat (aber nur 64KB NVRAM). In der additional config finde ich aber keinen Pfad, den ich anpassen könnte...?

3. Der Router hat eine 720MHz CPU, die bei aktiver VPN Verbindung eines Rechners so bei 24-30% herumwerkelt. Leider bekomme ich nur ca. 8Mbit, unabhängig von Rechner. Ich teste immer mit MS-Office-Service Pack Downloads, da die Server immer Full Speed bringen. Habe eine 32Mbit Leitung.
An welchen Einstellungen liese sich dran drehen, damit man gucken kann ob man den Speed etwas erhöhen kann? Hatte schon mit der LZO-Komprimierung herumgespielt, diese auf AKTIV gestellt, meinte auch erst dass das geholfen hätte, aber irgendwie ist dem nicht so.

Danke schonmal! Sollte das alles irgendwie noch funktionieren, werde ich meine Einstellungen hier ausführlich dokumentieren, damit andere mit DD-WRT das 1:1 nutzen können. :)
 

privacy

Active Member
1. ja das ist normal die firewall regeln sind nur für routing gedacht (braucht man ab ddwrt v16 oder v20 nicht mehr) kannst auch weglassen sollte alles funktionieren

2. jffs kenne ich micht nicht aus musst du mal Gerd fragen

3. das ist auch normal bekommst nie full speed

anleitung steht im 1.post

wenn du willst das sich die geräte NICHT verbinden ohne eine openvpn verbindung dann musst du in die firewall

iptables -I FORWARD -i br0 -o vlan2 -j DROP

ODER

iptables -I FORWARD -i br0 -o vlan1 -j DROP

einfügen save firewall und neustarten

wenn du jetzt unter services/vpn den openvpn client deaktivierst und apply klickst sollte kein internet mehr gehen
 

Gerd

Active Member
@Wall-E

1. Aktiviere zuerst JFFS2 nach dem #15 Post.
2. Wähle die PP-Zertifikate von einem Server aus und ändere den Inhalt. Darin sollte nur der Text "---BEGINN... bis END...---" stehen.
3. Aktiviere Im Menü Services\Services\Secure Shell Sektion SSH.
-"SShd" Enable
-'Save'
-'Apply Settings'
4. Stelle z.B. mit WinSCP eine Verbindung mit dem Router her und erstelle ein Pfad unter \jffs\. Z.B.: \jffs\pfad\nach\deiner\wahl\
- Lege deine Zertifikate unter dem Pfad ab.
5. Deaktiviere wieder SSH
6. Wechsel zum OpenVPN Menü und kopiere keine Zertifikate in die entsprechende Felder. Sollten in den Feldern die Zertifikate stehen lösche sie.
Füge dann in additional config diesen Text hinzu:

Code:
ca /jffs/pfad/nach/deiner/wahl/ca.crt
cert /jffs/pfad/nach/deiner/wahl/Amsterdam_cl.crt
key /jffs/pfad/nach/deiner/wahl/Amsterdam_cl.key
tls-auth /jffs/pfad/nach/deiner/wahl/Amsterdam_ta.key 1

In diesem Beispiel sind es jetzt die Amsterdam Zertifikate.

Speichere anschließend ab.
Sollte danach die Konfiguration nicht gehen, starte den Router neu.
 
Top