Mein Unternehmen verfügt über ein VPN, mit dem ich eine Verbindung herstellen muss. In OSX verwende ich dazu openvpn
die 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-openvpn
eine 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.conf
die Zeile bearbeite , auskommentiere dns=dnsmasq
und 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 dnsmasq
und zu ändern, um es /etc/resolvconf/resolv.conf.d/base
zu enthalten nameserver 127.0.1.1
und 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/
quelle
/etc/dnsmasq.conf
Antworten:
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.conf
sowie der DNS-Server im gewünschten Unternehmensnetzwerk eingerichtet sind Verwendung über das VPN.Anschließend müssen Sie die
/etc/default/dnsmasq
einzuschließendeDNSMASQ_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.conf
einrichten/etc/resolv.conf
mitnameserver 127.0.0.1
und setzen Sie die folgende Option in/etc/dnsmasq.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
nmcli
Tool 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: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.1
undsudo route add -host 193.150.193.150 gw 192.168.0.1
nach 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:
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.
quelle
nmcli
DNS 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ührennmcli
.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).
quelle