Wie schiebe ich meinen eigenen DNS-Server zu OpenVPN?


27

Ich habe einen ungebundenen DNS-Server auf meinem VPS definiert und es scheint zu funktionieren. Ich muss den DNS-Server anstelle von öffentlichen DNS-Servern verwenden, da einige ISPs öffentliche DNS-IPs blockiert haben. Meine openvpn.conf-Datei ist:

    dev tun
    proto tcp

    # Notice: here I set the listening port to be 80 to avoid possible port blockage
    port 80

    ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
    cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
    key /etc/openvpn/easy-rsa/2.0/keys/server.key
    dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem

    user nobody
    group nogroup
    server 10.8.0.0 255.255.255.0

    persist-key
    persist-tun

    #status openvpn-status.log
    #verb 3
    client-to-client

    push "redirect-gateway def1"

    #pushing public DNS IPs

    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.222.220"

    comp-lzo

Wie hier vorgeschlagen , habe ich versucht, die IPs meines Servers zu verwenden (sagen wir 11.22.33.44). Also statt

    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.222.220"

Ich habe gerade gesagt

push "dhcp-option DNS 11.22.33.44"

In der openvpn.conf oben. Nach dem Neustart von openvpn kann mein Client zwar noch eine Verbindung zum OpenVPN-Server herstellen, es können jedoch keine Seiten mehr gerendert werden.

Was kann hier falsch sein? Wie kann ich dieses Problem lösen?

Antworten:


31

Auf Windows 10Clients müssen Sie die folgenden Anweisungen hinzufügen client.ovpn:

script-security 2                                                                                                       
dhcp-option DNS 10.0.8.1                                                                                           
dhcp-option DOMAIN example.lan                                                                                   

Für Windows sind keine weiteren Anweisungen erforderlich.

Auf Ubuntu 16.04Clients müssen Sie möglicherweise folgende Anweisungen hinzufügen client.ovpn:

up /etc/openvpn/update-resolv-conf                                                                                      
down /etc/openvpn/update-resolv-conf  

Die neuesten OpenVPN-Clientversionen für Windows erkennen die Option nicht DOMAIN-SEARCHrichtig und funktionieren mit DOMAIN.


Benötigt das eine bestimmte Mindestversion von OpenVPN?
0xC0000022L

Ich denke, Sie sollten die VPN-Gateway-IP (10.0.8.1) verwenden, nicht die lokale Gateway-IP-Adresse des Routers (192.168.1.1). Das ist eine so übliche Router-IP-Adresse, dass der nicht vertrauenswürdige Netzwerk-Router, mit dem sie direkt verbunden sind, wahrscheinlich die Adresse 192.168.1.1 hat.
carlin.scott

8

Sie sagen, dass das "es scheint zu funktionieren." Wie haben Sie das überprüft? Basieren Sie darauf, dass der Server fehlerfrei gestartet wurde, oder haben Sie tatsächlich einige Abfragen durchgeführt?

Als erstes würde ich nslookup oder dig verwenden, um eine Verbindung zum ungebundenen Server herzustellen und einige Abfragen durchzuführen. Ich weiß, dass dig heutzutage mehr in Mode ist, aber ich kenne nslookup besser.


$ nslookup
> server 11.22.33.44
Default server: 11.22.33.44
Address: 11.22.33.44#53
> set type=A
> www.google.com
Server:     11.22.33.44
Address:    11.22.33.44#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.225.52
Name:   www.l.google.com
Address: 74.125.225.48
Name:   www.l.google.com
Address: 74.125.225.49
Name:   www.l.google.com
Address: 74.125.225.50
Name:   www.l.google.com
Address: 74.125.225.51

Wenn dies nicht funktioniert, müssen Sie erneut auf die DNS-Konfiguration zurückblicken.

Ist dies ein primärer DNS-Server oder ein DNS-Cache-Server? Versuchen Sie, lokale Ressourcen oder Internetressourcen abzufragen? Funktioniert es wie erwartet, wenn Sie Ihren DNS-Server nicht auf den Client übertragen?

Wenn Sie den gesamten Datenverkehr über Ihren OpenVPN-Server leiten, sollten Sie sich keine Sorgen mehr machen, dass Ihr ISP öffentliche DNS-Server blockiert, da Sie für Ihren ISP nur noch Datenverkehr zu Ihrem VPS generieren. es sei denn, der VPS steht hinter demselben ISP.


Nun, Ubound könnte alle Tests bestehen, die Sie erwähnt haben, und noch einige mehr. Ich bin mir ziemlich sicher, dass es nicht das Problem ist. Was den Grund angeht, warum ich meinen eigenen DNS-Server verwenden muss, habe ich festgestellt, dass die Clients im Iran (wo Millionen von Websites blockiert sind) bei Verwendung des oben genannten öffentlichen DNS keine Seite über ihre OpenVPN-Verbindung erhalten können, obwohl dies der Fall ist Sie können eine Verbindung zum OpenVPN-Server herstellen. Daher der Aufwand. Vielen Dank
HP

1
Haben Sie bestätigt, dass sie eine Webseite über die IP-Adresse erhalten können, sobald sie verbunden sind? Dies würde nur sicherstellen, dass es sich wirklich um ein DNS-Problem handelt und nicht um ein Routing-Problem. Dies ist sehr häufig der Fall, wenn OpenVPN so eingerichtet wird, dass eine Verbindung zum Server hergestellt werden kann, jedoch aufgrund einer fehlenden Rückroute kein Datenverkehr zurückkommt.
Digitaladdictions

3

Wenn Sie versuchen, eine Verbindung von einem Nicht-Windows-Client herzustellen, müssen Sie einige zusätzliche Schritte ausführen:

Unter Linux

Fügen Sie diese Zeile in Ihre Client-Konfiguration ( client.confoder xxxx.ovpnDatei) ein

dhcp-option DNS 11.22.33.44

Rufen Sie den OpenVPN-Client folgendermaßen auf:

$ openvpn --script-security 2 --config xxxx.ovpn

Das hat bei mir geklappt.


Unrecognized option or missing or extra parameter(s) in [CMD-LINE]:1: script-security
Javier Buzzi

1

Getestet unter Ubuntu 18.04 am 13. September 2018

Es gibt noch weitere nützliche Befehle, mit denen Sie die gewünschten Einstellungen über die Befehlszeile vornehmen können. In meinem Fall können Sie Ihre VPN-Verbindung jedoch sowohl über die Befehlszeile als auch über die grafische Benutzeroberfläche steuern.

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- ist standardmäßig erforderlich, hat jedoch keine Auswirkungen

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default sollte Remote-Gateway nicht als Standardroute verwenden

Und noch viel mehr interessierter letzter Schliff:

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

Anschließend können Sie vpn mit der GUI steuern oder folgende Befehle verwenden:

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.