OpenVPN Anleitung für update-resolv-conf

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • OpenVPN Anleitung für update-resolv-conf

      (Edit: 20.05.2019: neue, modifizierte Anleitung)


      Hintergrund: Verbindet man sich mit einem Anonymisierungs-VPN, stellen die meisten Anbieter einen DNS zur Verfügung. Diese sind i.d.R. nicht von außen zu erreichen sondern ausschließlich bei erfolgreicher VPN Verbindung. Diese DNS Server können verwendet werden, um DNS-Leaks zu vermeiden.


      Um diesen DNS zu nutzen, benötigt man unter Linux ein Skript (update-resolv-conf). Das original Skript läuft allerdings nicht unter unter Busybox!


      Ich habe eine leicht modifizierte Version erstellt (Skript basiert auf Raspbian 8.0, Paket: openvpn 2.3.4-5+deb8u2) und sie auf Github veröffentlicht.


      Funktionsweise:
      1) Nach erfolgreichem Tunnel-Aufbau werden die DNS Server eures Anbieters über einen DHCP artigen Mechanismus ausgelesen und dann in der Box als beforzugte DNS Server konfiguriert. Oftmals (nicht immer) handelt es sich dabei um eine oder zwei Adresse(n) die mit 10.X.X.X beginnen.
      Euer ursprünglicher DNS wird ans Ende der Liste gesetzt.
      2) Sobald openVPN beendet wird, wird der Ursprungszustand wiederhergestellt.


      Bitte im Folgenden beim Editieren von Konfigurationen/Skripten usw. IMMER einen UNIX kompatiblen Editor verwenden!


      Anleitung:
      1) mit Telnet/SSH auf der Box anmelden


      2) Evtl. fehlende Pakete installieren:

      Source Code

      1. opkg install resolvconf


      3) Script installieren:

      Source Code

      1. cd /etc/openvpn; rm -f ./update-resolv-conf-BJ ; wget https://raw.githubusercontent.com/cfdisk/openvpn-update-resolv-conf/master/update-resolv-conf.sh -O ./update-resolv-conf-BJ; chmod +x update-resolv-conf-BJ


      4) OpenVPN Konfiguration anpassen, folgende Zeilen hinzufügen, bzw. abändern, sofern schon vorhanden:

      Source Code

      1. script-security 2
      2. up /etc/openvpn/update-resolv-conf-BJ
      3. down /etc/openvpn/update-resolv-conf-BJ


      5) VPN Starten und dann DNS checken mit

      Source Code

      1. cat /etc/resolv.conf
      Da sollte jetzt mindestens ein Eintrag vorhanden sein, der in etwas so aussieht:
      nameserver 10.X.X.X


      Viel Erfolg :)

      The post was edited 2 times, last by Fukkel: aktualisiert ().

    • Bekomme auch mit dem Script nur

      Source Code

      1. root@vusolo4k:~# cat /etc/resolv.conf
      2. # Generated by resolvconf
      3. nameserver 192.168.2.1
      ┌─────────────────────────────────────────────────────┐
      "Zwei unterschiedliche Kanäle zur selben Zeit. Wahnsinn. Moderne Zeiten." M. Reif
      └─────────────────────────────────────────────────────┘
    • Nicht drauf eingehen, bei mir scheint noch einiges im Argen zu sein...
      Muss mich nochmal damit befassen, aber nicht mehr heute ;_)
      ┌─────────────────────────────────────────────────────┐
      "Zwei unterschiedliche Kanäle zur selben Zeit. Wahnsinn. Moderne Zeiten." M. Reif
      └─────────────────────────────────────────────────────┘
    • Also wenn irgendwas nicht funktioniert, dann muss ich zur Fehlersuche ein entsprechendes Openvpn Logfile haben.

      Ob ein VPN Anbieter auch wirklich einen DNS mitliefert, sieht man im Logfile:

      Source Code

      1. PUSH: Received control message: [ganz viel text]
      In dem [ganz viel text] muss in etwa sowas auftauchen "dhcp-option DNS 10.X.X.X"
    • Schrieb ja, nicht drauf eingehen ;)
      Ich muss erstmal die Konfig in Ordnung bringen. Scheint noch ganz grosser Murks zu sein.

      Display Spoiler

      Source Code

      1. root@vusolo4k:/etc/openvpn# openvpn --config /etc/openvpn/openvpnvti.conf
      2. Sat Sep 16 21:47:33 2017 OpenVPN 2.3.6 arm-oe-linux-gnueabi [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Oct 21 2015
      3. Sat Sep 16 21:47:33 2017 library versions: OpenSSL 1.0.2a 19 Mar 2015, LZO 2.09
      4. Sat Sep 16 21:47:33 2017 WARNING: file 'userpass.txt' is group or others accessible
      5. Sat Sep 16 21:47:33 2017 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
      6. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-AES256-GCM-SHA384', please use IANA name 'TLS-DHE-RSA-WITH-AES-256-GCM-SHA384'
      7. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-AES256-SHA256', please use IANA name 'TLS-DHE-RSA-WITH-AES-256-CBC-SHA256'
      8. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-AES128-GCM-SHA256', please use IANA name 'TLS-DHE-RSA-WITH-AES-128-GCM-SHA256'
      9. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-AES128-SHA256', please use IANA name 'TLS-DHE-RSA-WITH-AES-128-CBC-SHA256'
      10. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-CAMELLIA256-SHA', please use IANA name 'TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA'
      11. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-AES256-SHA', please use IANA name 'TLS-DHE-RSA-WITH-AES-256-CBC-SHA'
      12. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-CAMELLIA128-SHA', please use IANA name 'TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA'
      13. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'DHE-RSA-AES128-SHA', please use IANA name 'TLS-DHE-RSA-WITH-AES-128-CBC-SHA'
      14. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'CAMELLIA256-SHA', please use IANA name 'TLS-RSA-WITH-CAMELLIA-256-CBC-SHA'
      15. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'AES256-SHA', please use IANA name 'TLS-RSA-WITH-AES-256-CBC-SHA'
      16. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'CAMELLIA128-SHA', please use IANA name 'TLS-RSA-WITH-CAMELLIA-128-CBC-SHA'
      17. Sat Sep 16 21:47:33 2017 Deprecated TLS cipher name 'AES128-SHA', please use IANA name 'TLS-RSA-WITH-AES-128-CBC-SHA'
      18. Sat Sep 16 21:47:33 2017 Socket Buffers: R=[163840->131072] S=[163840->131072]
      19. Sat Sep 16 21:47:33 2017 UDPv4 link local: [undef]
      20. Sat Sep 16 21:47:33 2017 UDPv4 link remote: [AF_INET]95.211.138.132:1194
      21. Sat Sep 16 21:48:33 2017 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
      22. Sat Sep 16 21:48:33 2017 TLS Error: TLS handshake failed
      23. Sat Sep 16 21:48:33 2017 SIGUSR1[soft,tls-error] received, process restarting
      24. Sat Sep 16 21:48:33 2017 Restart pause, 2 second(s)
      25. Sat Sep 16 21:48:35 2017 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
      26. Sat Sep 16 21:48:35 2017 Socket Buffers: R=[163840->131072] S=[163840->131072]
      27. Sat Sep 16 21:48:35 2017 UDPv4 link local: [undef]
      28. Sat Sep 16 21:48:35 2017 UDPv4 link remote: [AF_INET]95.211.138.132:1194
      Display All

      ┌─────────────────────────────────────────────────────┐
      "Zwei unterschiedliche Kanäle zur selben Zeit. Wahnsinn. Moderne Zeiten." M. Reif
      └─────────────────────────────────────────────────────┘
    • Banana Joe wrote:

      4) VPN Starten und dann DNS checken mit


      Quellcode


      1. cat /etc/resolv.conf





      Da sollte jetzt mindestens ein Eintrag vorhanden sein, der in etwas so aussieht:

      nameserver 10.X.X.X
      Hab ich. In Zeile 2 steht dazu auch der alte Namensserver - ist das so okay?

      :thumbup: für die elegante Anleitung.
      Fritz-Dect, Kicker-Plugin, Mediaportal, Open-VPN, WebradioFS

      -----------------------
      <3 *bmg*
    • Genau.

      Es wird zunächst immer der erste Nameserver Eintrag verwenden.
      Erst wenn dieser Server nicht Antwortet (Timeout 5 Sekunden), wird zum nächsten gewechselt (und so weiter. Ggf. dann irgendwann wieder von vorne)

      Soweit ich weiß, ist dieses Verfahren unter jedem Linux/*NIX immer gleich (Standardeinstellung des Resolvers).

      Sobald openvpn den Tunnel wieder abbaut, werden die ursprünglichen Einstellungen wiederhergestellt.
    • Hab die obige Anleitung gerade mal ausprobiert. Scheint zu funktionieren.
      Im log-File wird mir eine 10.x ... DNS angezeigt.

      Läuft denn damit nn der gesamte Traffic der Box über tun0?
      VU+ UNO 4K DVB-C
      LG OLED 55C7D
    • Also erstmal: was im Logfile steht, ist irrelevant. Die Einträge in der /etc/resolv.conf müssen korrekt sein.

      Ausprobieren mit:

      Source Code

      1. nslookup abc.de
      Dann musst in der Zeile, die mit "Server: ..." beginnt, der VPN DNS IP erscheinen.
    • Hm, schaut bei mir so aus:

      Display Spoiler
      Server:192.168.178.1
      Address: 192.168.178.1#53

      Non-authoritative answer:
      Name: abc.de
      Address: 194.49.7.145


      Und das scheint so nicht richtig zu sein...???

      Muss in der update-resolv-conf-BJ noch etwas geändert werden?
      VU+ UNO 4K DVB-C
      LG OLED 55C7D
    • @Banana Joe

      Ich versuch mal, meine Konfiguration zusammenzufassen:

      openvpn mit folgender config installiert

      Display Spoiler
      client
      dev tun
      proto udp
      remote ch1.vyprvpn.com 1194
      resolv-retry infinite
      nobind
      persist-key
      persist-tun
      persist-remote-ip
      verify-x509-name ch1.vyprvpn.com name
      auth-user-pass login.txt
      comp-lzo
      keepalive 10 60
      verb 3

      script-security 2
      up /etc/openvpn/update-resolv-conf-BJ
      down /etc/openvpn/update-resolv-conf-BJ

      <ca>
      -----BEGIN CERTIFICATE-----
      xxxxxxx
      -----END CERTIFICATE-----
      </ca>

      log /etc/openvpn/LOG.txt



      openvpn lässt sich auf der Box starten und wird im vpn-Status und der Verbindungsübersicht meines vpn-Anbieters als vpn-Verbindung bestätigt.

      Portfreigabe udp 1194 auf der Fritzbox ist eingestellt.

      Box läuft über dhcp mit den originalen Einstellungen meines Internetanbieters.

      resolv.conf nach deiner Anleitung hier auf der Seite oben eingefügt (aber darin keine Änderungen vorgenommen!).

      Mein von-Anbieter vyprvpn hat nur eigene DNS Server.


      Irgendwo hab ich einen Denkfehler, bzw. fehlendes Grundwissen (aber alle relevanten Beiträge hier im Forum gelesen) ... :(
      VU+ UNO 4K DVB-C
      LG OLED 55C7D
    • Hallo Banana Joe,

      folgend habe ich mal die Log´s ohne und mit resolv.conf hochgeladen.
      Postfreigabe in der Fritzbox habe ich wieder rausgenommen.
      Schau dir doch bitte einmal die Log´s an, ob du einen Fehler erkennen kannst.

      Vielen Dank

      ohne resolv.conf

      Display Spoiler
      Mon Oct 9 20:26:53 2017 OpenVPN 2.3.6 arm-oe-linux-gnueabi [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Nov 18 2016
      Mon Oct 9 20:26:53 2017 library versions: OpenSSL 1.0.2a 19 Mar 2015, LZO 2.09
      Mon Oct 9 20:26:53 2017 WARNING: file 'login.txt' is group or others accessible
      Mon Oct 9 20:26:53 2017 Socket Buffers: R=[163840->131072] S=[163840->131072]
      Mon Oct 9 20:26:53 2017 UDPv4 link local: [undef]
      Mon Oct 9 20:26:53 2017 UDPv4 link remote: [AF_INET]209.99.60.34:1194
      Mon Oct 9 20:26:53 2017 TLS: Initial packet from [AF_INET]209.99.60.34:1194, sid=bf0185d8 2a42bca6
      Mon Oct 9 20:26:53 2017 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
      Mon Oct 9 20:26:53 2017 VERIFY OK: depth=1, C=KY, ST=GrandCayman, L=GeorgeTown, O=GoldenFrog-Inc, CN=GoldenFrog-Inc CA, emailAddress=admin@goldenfrog.com
      Mon Oct 9 20:26:53 2017 VERIFY X509NAME OK: C=KY, ST=GrandCayman, L=GeorgeTown, O=GoldenFrog-Inc, CN=ch1.vyprvpn.com, emailAddress=admin@goldenfrog.com
      Mon Oct 9 20:26:53 2017 VERIFY OK: depth=0, C=KY, ST=GrandCayman, L=GeorgeTown, O=GoldenFrog-Inc, CN=ch1.vyprvpn.com, emailAddress=admin@goldenfrog.com
      Mon Oct 9 20:26:53 2017 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
      Mon Oct 9 20:26:53 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
      Mon Oct 9 20:26:53 2017 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
      Mon Oct 9 20:26:53 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
      Mon Oct 9 20:26:53 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
      Mon Oct 9 20:26:53 2017 [ch1.vyprvpn.com] Peer Connection Initiated with [AF_INET]209.99.60.34:1194
      Mon Oct 9 20:26:56 2017 SENT CONTROL [ch1.vyprvpn.com]: 'PUSH_REQUEST' (status=1)
      Mon Oct 9 20:26:56 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 10.2.34.1,explicit-exit-notify 5,rcvbuf 524288,route-gateway 10.2.34.1,topology subnet,ping 10,ping-restart 60,ifconfig 10.2.34.64 255.255.255.0'
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: timers and/or timeouts modified
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: explicit notify parm(s) modified
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: --sndbuf/--rcvbuf options modified
      Mon Oct 9 20:26:56 2017 Socket Buffers: R=[131072->327680] S=[131072->131072]
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: --ifconfig/up options modified
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: route options modified
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: route-related options modified
      Mon Oct 9 20:26:56 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
      Mon Oct 9 20:26:56 2017 ROUTE_GATEWAY 192.168.178.1/255.255.255.0 IFACE=eth0 HWADDR=00:1d:ec:0f:e2:cc
      Mon Oct 9 20:26:56 2017 TUN/TAP device tun0 opened
      Mon Oct 9 20:26:56 2017 TUN/TAP TX queue length set to 100
      Mon Oct 9 20:26:56 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
      Mon Oct 9 20:26:56 2017 /sbin/ip link set dev tun0 up mtu 1500
      Mon Oct 9 20:26:56 2017 /sbin/ip addr add dev tun0 10.2.34.64/24 broadcast 10.2.34.255
      Mon Oct 9 20:26:56 2017 /sbin/ip route add 209.99.60.34/32 via 192.168.178.1
      Mon Oct 9 20:26:56 2017 /sbin/ip route add 0.0.0.0/1 via 10.2.34.1
      Mon Oct 9 20:26:56 2017 /sbin/ip route add 128.0.0.0/1 via 10.2.34.1
      Mon Oct 9 20:26:56 2017 Initialization Sequence Completed



      mit resolv.conf

      Display Spoiler
      Mon Oct 9 20:34:46 2017 OpenVPN 2.3.6 arm-oe-linux-gnueabi [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Nov 18 2016
      Mon Oct 9 20:34:46 2017 library versions: OpenSSL 1.0.2a 19 Mar 2015, LZO 2.09
      Mon Oct 9 20:34:46 2017 WARNING: file 'login.txt' is group or others accessible
      Mon Oct 9 20:34:46 2017 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
      Mon Oct 9 20:34:46 2017 Socket Buffers: R=[163840->131072] S=[163840->131072]
      Mon Oct 9 20:34:46 2017 UDPv4 link local: [undef]
      Mon Oct 9 20:34:46 2017 UDPv4 link remote: [AF_INET]209.99.60.34:1194
      Mon Oct 9 20:34:46 2017 TLS: Initial packet from [AF_INET]209.99.60.34:1194, sid=ead96a9f b97cf057
      Mon Oct 9 20:34:46 2017 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
      Mon Oct 9 20:34:46 2017 VERIFY OK: depth=1, C=KY, ST=GrandCayman, L=GeorgeTown, O=GoldenFrog-Inc, CN=GoldenFrog-Inc CA, emailAddress=admin@goldenfrog.com
      Mon Oct 9 20:34:46 2017 VERIFY X509NAME OK: C=KY, ST=GrandCayman, L=GeorgeTown, O=GoldenFrog-Inc, CN=ch1.vyprvpn.com, emailAddress=admin@goldenfrog.com
      Mon Oct 9 20:34:46 2017 VERIFY OK: depth=0, C=KY, ST=GrandCayman, L=GeorgeTown, O=GoldenFrog-Inc, CN=ch1.vyprvpn.com, emailAddress=admin@goldenfrog.com
      Mon Oct 9 20:34:47 2017 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
      Mon Oct 9 20:34:47 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
      Mon Oct 9 20:34:47 2017 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
      Mon Oct 9 20:34:47 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
      Mon Oct 9 20:34:47 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
      Mon Oct 9 20:34:47 2017 [ch1.vyprvpn.com] Peer Connection Initiated with [AF_INET]209.99.60.34:1194
      Mon Oct 9 20:34:49 2017 SENT CONTROL [ch1.vyprvpn.com]: 'PUSH_REQUEST' (status=1)
      Mon Oct 9 20:34:49 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 10.2.34.1,explicit-exit-notify 5,rcvbuf 524288,route-gateway 10.2.34.1,topology subnet,ping 10,ping-restart 60,ifconfig 10.2.34.98 255.255.255.0'
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: timers and/or timeouts modified
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: explicit notify parm(s) modified
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: --sndbuf/--rcvbuf options modified
      Mon Oct 9 20:34:49 2017 Socket Buffers: R=[131072->327680] S=[131072->131072]
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: --ifconfig/up options modified
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: route options modified
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: route-related options modified
      Mon Oct 9 20:34:49 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
      Mon Oct 9 20:34:49 2017 ROUTE_GATEWAY 192.168.178.1/255.255.255.0 IFACE=eth0 HWADDR=00:1d:ec:0f:e2:cc
      Mon Oct 9 20:34:49 2017 TUN/TAP device tun0 opened
      Mon Oct 9 20:34:49 2017 TUN/TAP TX queue length set to 100
      Mon Oct 9 20:34:49 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
      Mon Oct 9 20:34:49 2017 /sbin/ip link set dev tun0 up mtu 1500
      Mon Oct 9 20:34:49 2017 /sbin/ip addr add dev tun0 10.2.34.98/24 broadcast 10.2.34.255
      Mon Oct 9 20:34:49 2017 /etc/openvpn/update-resolv-conf-BJ tun0 1500 1542 10.2.34.98 255.255.255.0 init
      dhcp-option DNS 10.2.34.1
      Mon Oct 9 20:34:50 2017 /sbin/ip route add 209.99.60.34/32 via 192.168.178.1
      Mon Oct 9 20:34:50 2017 /sbin/ip route add 0.0.0.0/1 via 10.2.34.1
      Mon Oct 9 20:34:50 2017 /sbin/ip route add 128.0.0.0/1 via 10.2.34.1
      Mon Oct 9 20:34:50 2017 Initialization Sequence Completed



      Abfrage mit nslookup abc.de

      Display Spoiler
      Server:192.168.178.1
      Address: 192.168.178.1#53

      Non-authoritative answer:
      Name: abc.de
      Address: 194.49.7.145
      VU+ UNO 4K DVB-C
      LG OLED 55C7D