Netzwerk nur mit einem DNS, wenn eine Verbindung zu VPN besteht

9

Mein Unternehmen verfügt über ein VPN, mit dem ich eine Verbindung herstellen muss. In OSX verwende ich dazu openvpndie folgende Konfiguration:

client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid

In Ubuntu habe ich network-manager-openvpneine neue VPN-Verbindung installiert und hinzugefügt (der Versuch, die Konfigurationsdatei zu importieren, verursachte einen Absturz), mit denselben Konfigurationsoptionen: Screenshots meiner Einstellungen

Sobald ich eine Verbindung zum VPN hergestellt habe, kann ich keine Domänen mehr auflösen.

Wenn ich /etc/NetworkManager/NetworkManager.confdie Zeile bearbeite , auskommentiere dns=dnsmasqund neu starte network-manager, kann ich interne Domains aus meinem Unternehmen auflösen, andere Domains wie google.com werden jedoch überhaupt nicht aufgelöst. Ich habe sichergestellt, dass meine "Methode" auf den Registerkarten IPv4 und IPv6 des Netzwerkmanagers für meine VPN-Verbindung auf "Nur automatische (VPN) Adressen" eingestellt ist, aber es scheint keinen Unterschied zu machen.

Ich habe auch versucht, es erneut zu aktivieren dnsmasqund zu ändern, um es /etc/resolvconf/resolv.conf.d/base zu enthalten nameserver 127.0.1.1und dann auszuführen sudo resolveconf -u, aber dann werden keine Domänen wieder aufgelöst.

Ich möchte eine Verbindung zu meinem VPN herstellen können, damit Domänen, die vom DNS-Server meines Unternehmens übertragen werden, auf diese Weise aufgelöst werden und alle anderen Domänen normal aufgelöst werden.

BEARBEITEN: Es stellte sich heraus, dass dnsmasq nicht tatsächlich installiert war, was ich standardmäßig dachte. Wenn ich es dennoch installiere, wieder aktiviere /etc/NetworkManager/NetworkManager.conf, die lokale Nameserveradresse hinzufüge /etc/resolvconf/resolv.conf.d/base, alle Dienste neu starte und eine Verbindung zum VPN herstelle, kann ich Domänen über das Firmen-DNS auflösen, aber keine anderen Domänen auflösen. Also im Grunde die gleiche Situation wie bei der vollständigen Deaktivierung von dnsmasq.

BEARBEITEN: Inhalt von /etc/dnsmasq.conf: http://paste.ubuntu.com/7297231/

Tommy Brunn
quelle
Können Sie uns Ihre dnsmasq-Einstellungen zeigen? Dnsmasq bezieht seine Upstream-DNS-Server normalerweise von /etc/resolv.conf. Wenn Sie also nichts geändert haben, ziehen Sie wahrscheinlich nur DNS über das VPN.
jkt123
Sicher. Ich habe einen Link zu meinem/etc/dnsmasq.conf
Tommy Brunn

Antworten:

4

Aus Ihrer Konfiguration erhält Ihre dnsmasq-Installation die Liste der zu verwendenden DNS-Server /etc/resolv.conf. Standardmäßig versucht dnsmasq, aktivierte DNS-Server zu bevorzugen, sendet jedoch nur eine bestimmte Anforderung an einen einzelnen DNS-Server. Dies kann zu Problemen führen, wenn Sie mehrere DNS-Server haben, die nur bestimmte Abfragen bedienen können / werden.

Ich glaube, Sie können dieses Problem lösen, indem Sie sicherstellen, dass in Ihrem LAN ein DNS-Server (der, den Sie verwenden, wenn Sie nicht mit dem VPN verbunden sind) /etc/resolv.confsowie der DNS-Server im gewünschten Unternehmensnetzwerk eingerichtet sind Verwendung über das VPN.

Anschließend müssen Sie die /etc/default/dnsmasqeinzuschließende DNSMASQ_OPTS=Zeile bearbeiten und hinzufügen oder bearbeiten --all-servers.

Wenn Sie mit diesem Setup immer noch keine DNS-Abfragen erhalten können, kopieren Sie die resolv.conf-Datei, die Sie in den obigen Schritten erstellt haben, an einen anderen Speicherort, z. B. ~/resolv.confeinrichten /etc/resolv.confmit nameserver 127.0.0.1und setzen Sie die folgende Option in /etc/dnsmasq.conf:

resolv-file=/home/your_username/resolv.conf

Das sollte Ihr System so konfigurieren, dass Ihre dnsmasq-Installation nach DNS abgefragt wird, und es wird wiederum sowohl Ihren lokalen DNS-Server als auch den VPN-DNS-Server für jede Abfrage verwenden.

Bearbeiten : Mit dem nmcliTool können Sie die DNS-Server finden, die Sie derzeit für eine bestimmte Verbindung verwenden . Um die von meiner drahtlosen Verbindung verwendeten DNS-Server zu finden, habe ich die folgende Syntax verwendet:

nmcli dev list iface wlan0 | grep IP4.DNS

Wenn Sie diesen Befehl ausführen, während Sie nicht mit Ihrem VPN verbunden sind, und dann erneut, wenn Sie verbunden sind und Ihre Unternehmensadressen auflösen können, sollten Sie Ihre Liste der DNS-Server vom und zum VPN entfernen. Ich hoffe das hilft.

Bearbeiten 2 : Wenn Sie sich Ihre Routing-Tabellen ansehen, scheint es, dass Ihr VPN-Administrator Sie so eingerichtet hat, dass Sie den gesamten Datenverkehr über das VPN leiten, während Sie verbunden sind (Ihr Standard-Gateway ändert sich in eine VPN-Adresse). Da beide DNS-Server öffentliche Adressen sind und keine bestimmte Route eingerichtet ist, während Sie sich im VPN befinden, versuchen Sie, normale DNS-Suchvorgänge über das VPN durchzuführen, und dies schlägt fehl.

Abhängig von Ihrem VPN-Setup haben Sie verschiedene Möglichkeiten, um dies zu erreichen:

  • Wenn Sie mit dem VPN über das Unternehmensnetzwerk auf das Internet zugreifen können, jedoch keine DNS-Abfragen an Server im Internet durchführen, fügen Sie Ihren DNS-Servern wie folgt Routen hinzu: sudo route add -host 83.255.245.11 gw 192.168.0.1und sudo route add -host 193.150.193.150 gw 192.168.0.1nach dem Herstellen einer Verbindung zum VPN.

  • Wenn Sie mit dem VPN nicht über das Unternehmensnetzwerk auf das Internet zugreifen können, müssen Sie die Standard-Gateway-Einstellungen auf Ihrem Computer so ändern, dass sie nach der Verbindung mit dem VPN auf 192.168.0.1 zeigen. In diesem Fall möchten Sie Ihr übliches Standard-Gateway einrichten und dann Netzwerkrouten hinzufügen, um auf reine VPN-Geräte zuzugreifen.

Möglicherweise müssen Sie Ihre Routing-Tabelle in dem in Ihrem zweiten Pastebin gezeigten Fall, der mit dem VPN verbunden ist, auf Folgendes reduzieren:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.100.0.0      10.100.0.105    255.255.255.0   UGH   0      0        0 tun0
10.100.0.105    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Fügen Sie dann nach Bedarf Routen hinzu, um auf die Unternehmensausrüstung zuzugreifen. In der oben gezeigten Routing-Tabelle habe ich ein / 24-Netzwerk im VPN angenommen, was möglicherweise falsch ist. Sie müssen die Maske entsprechend einstellen.

jkt123
quelle
Wie würde ich die Adressen zu meinem lokalen DNS-Server und dem im Unternehmensnetzwerk herausfinden?
Tommy Brunn
Ich habe meine Antwort bearbeitet, um diese Informationen bereitzustellen.
jkt123
Laut nmcli erhalte ich genau die gleichen DNS-Server, wenn ich mit dem VPN verbunden bin, wie wenn ich es nicht bin, obwohl dies eindeutig nicht der Fall sein sollte, da ich eine interne Domain im Unternehmensnetzwerk auflösen kann, wenn ich ' m verbunden.
Tommy Brunn
Konnten Sie nmcliDNS ordnungsgemäß auflösen, wenn Sie ohne VPN-Verbindung ausgeführt wurden? Wenn nicht, sollten Sie die Verbindung zum VPN trennen, sicherstellen, dass Ihr DNS ordnungsgemäß funktioniert, und dann ausführen nmcli.
jkt123
Ja, ich konnte DNS normal auflösen, wenn die Verbindung zum VPN getrennt wurde. Beispielausgabe: paste.ubuntu.com/7345250
Tommy Brunn
0

Es gibt einige Lücken, die ich nicht für Sie füllen kann, wenn es darum geht, NetworkManager dazu zu bringen, Dinge für Sie zu koordinieren. Ich werde jedoch versuchen zu klären, wie die koordinierten Dinge funktionieren müssen. Keine perfekte Antwort, aber hoffentlich nützlich. Angesichts der Tatsache, dass dies eine alte Frage ist, ist dies tatsächlich für die Nachwelt.

Sie möchten das Unternehmens-VPN wahrscheinlich nicht verwenden, außer für Verbindungen zum Unternehmensnetzwerk. In diesem Fall ist es besser, wenn Ihr VPN-Setup nur die entsprechenden Netzwerkbereiche an das VPN weiterleitet und die Standardroute wie zuvor auf Ihren lokalen Router verweist. Es wäre schön, wenn Unternehmen ihre VPNs so einrichten würden, dass sie nur den Datenverkehr oder ihre Netzwerke weiterleiten, aber das scheint leider selten zu sein. Glücklicherweise können Sie die Routen in Ihrem lokalen Setup konfigurieren.

Damit haben Sie immer noch ein potenzielles DNS-Problem. Die Kommentare von jtk123 zu den Funktionen von dnsmasq mit DNS sind nicht dnsmasq-spezifisch - so funktioniert DNS. Wenn ein DNS-Client oder ein zwischengeschalteter Resolver die Antwort erhält, dass kein DNS-Eintrag vorhanden ist, ist es kein normales Verhalten, auf die Frage eines anderen DNS-Servers zurückzugreifen. Das bedeutet, dass Sie einen DNS-Resolver benötigen, der nach Belieben antwortet, ob sich die Anfrage auf das Unternehmensnetzwerk bezieht oder nicht.

Möglicherweise beantwortet Ihr Unternehmensnetzwerk DNS-Fragen zum breiteren Internet. In diesem Fall verwenden Sie es einfach, und das ist wahrscheinlich in Ordnung. Andernfalls benötigen Sie einen lokalen DNS-Server, der Anforderungen für mit dem Unternehmen verknüpfte Domänen an den DNS-Server weiterleitet und gegebenenfalls andere Anforderungen an eine andere Stelle weiterleitet.

dnsmasq kann angewiesen werden, Anforderungen für bestimmte Domänen an bestimmte Upstream-DNS-Server weiterzuleiten. Beispiel: Siehe die Option --server, wie in der Manpage dnsmasq.conf beschrieben. Ich bin mir jedoch nicht sicher, wie ich den Netzwerkmanager dazu bringen kann, damit gut zu spielen (was ich derzeit herausfinden möchte).

mc0e
quelle