Wie verwende ich dnsmasq für benutzerdefinierte Hostnamen auf OpenVPN?

Wie verwende ich dnsmasq für benutzerdefinierte Hostnamen auf OpenVPN?

Ich versuche, dnsmasq einzurichten, damit ich benutzerdefinierte Hostnamen über einen OpenVPN-Server erstellen kann. Wenn sich also ein Computer verbindet, verweisen die Hostnamen auf Ressourcen, die sich auf dem OpenVPN-Host oder -Netzwerk befinden.

So sieht beispielsweise die Datei /etc/hosts auf dem Server wie folgt aus:

db.private.resource 10.8.0.1
app.private.resource 10.8.0.1

Den Client dazu zu bringen, den Tunnel für die DNS-Suche zu verwenden, ist ziemlich unkompliziert. In der Datei server.conf habe ich:

push "dhcp-option DNS 10.8.0.1"

Und in der Clientkonfiguration habe ich:

dhcp-option DNS 10.8.0.1

Und ich kann überprüfen, dass der Client bei der Verbindung OpenVPN als DNS verwendet, indem ich Folgendes ausführe:

# dnsmasq --no-daemon -q

Führen Sie in der Befehlszeile einen Ping vom Client aus durch, um zu überprüfen, ob der Client tatsächlich DNS-Lookup-Anfragen über den Tunnel an den OpenVPN-Server sendet und ob der OpenVPN-Server die Anfragen tatsächlich verarbeitet.

Das Problem besteht darin, dass ich Folgendes erhalte, wenn ich versuche, den db.private.resourcevon mir definierten Host anzupingen:

dnsmasq: query[A] db.private.resource from 10.8.0.2
dnsmasq: config db.private.resource is NXDOMAIN

Aus der Ausgabe von dnsmasq. Aus irgendeinem Grund scheint es also nicht die Werte zurückzugeben, die ich in /etc/hosts definiert habe. Und was mich erstaunt, ist, dass ich selbst dann das obige Ergebnis erhalte, wenn ich dnsmasq mit einem hinzugefügten Adressparameter ausführe.

# dnsmasq --no-daemon -q --address=/db.private.resource/10.8.0.1/

dnsmasq: query[A] db.private.resource from 10.8.0.2
dnsmasq: config db.private.resource is NXDOMAIN

Sieht an diesem Ergebnis irgendetwas falsch aus?

Antwort1

Installieren Sie zuerst dnsmasq: sudo apt-get update; sudo apt-get install dnsmasq.

Server

Fügen Sie auf dem Server diese Zeile hinzu /etc/dnsmasq.conf:

...
expand-hosts #Uses /etc/hosts on this machine for resolution
bind-interfaces #will bind on all available interfaces, including the openvpn one
listen-address=10.8.0.1 # i noticed recently that i also need to add this line, because by default it will only listen on 10.9.0.1 which isnt pushed to my clients
...

Bearbeiten Sie dann die /etc/hostsDatei mit Ihren Hostnamen. Führen Sie abschließend aus sudo /etc/init.d/dnsmasq restart.

Wenn Sie aus irgendeinem Grund keine Änderungen vornehmen möchten /etc/hosts, können Sie unter eine neue Datei erstellen /etc/dnsmasq.conf.d/addresses.confund diese mit Ihren Adressen füllen:

address=/umomma.com/69.69.69.69
address=/oo.umomma.com/69.69.69.60
address=/ooooo.umomma.com/69.69.69.62
address=/ooooooooo.umomma.com/69.69.69.65

Auch bei dieser zweiten Methode möchten Sie hinterherlaufen sudo /etc/init.d/dnsmasq restart.

Klient

10.8.0.1OpenVPN-Server weisen sich die IP-Adressen oder normalerweise selbst zu 10.9.0.1. Daher sollten wir auf dem Client sicherstellen, dass wir diese Nameserver zuerst abfragen.

Zumindest habe ich vorerst auf dem Client Änderungen vorgenommen und der ersten Zeile der Datei /etc/resolv.confvorangestellt . Auf dem Client sieht meine vollständige resolve.conf also folgendermaßen aus:nameserver 10.8.0.1

nameserver 10.8.0.1
nameserver 8.8.8.8
nameserver 8.8.8.8
nameserver 127.0.1.1

Um diese Änderungen beim Neustart dauerhaft zu machen, nehmen Sie die gleiche Änderung bei vor /etc/resolvconf/resolv.conf.d/head.

Auch

Denken Sie daran, es auszuführen, sudo /etc/init.d/dnsmasq restartwenn Sie Hosts auf dem Server hinzufügen

verwandte Informationen