Ich habe ein Problem: "NetworkManager wird /etc/resolv.conf
nach der Konfiguration der OpenVPN-Verbindung mit DNS-Push nicht aktualisiert ".
Hier ist meine OpenVPN-Serverkonfiguration: ( Aus Sicherheitsgründen habe ich den Domainnamen in ABC.COM geändert. )
########################################
# Sample OpenVPN config file for
# 2.0-style multi-client udp server
#
# Adapted from http://openvpn.sourceforge.net/20notes.html
#
# tun-style tunnel
port 1194
dev tun
# Use "local" to set the source address on multi-homed hosts
#local [IP address]
# TLS parms
tls-server
ca keys/ca.crt
cert keys/static.crt
key keys/static.key
dh keys/dh1024.pem
proto tcp-server
# Tell OpenVPN to be a multi-client udp server
mode server
# The server's virtual endpoints
ifconfig 10.8.0.1 10.8.0.2
# Pool of /30 subnets to be allocated to clients.
# When a client connects, an --ifconfig command
# will be automatically generated and pushed back to
# the client.
ifconfig-pool 10.8.0.4 10.8.0.255
# Push route to client to bind it to our local
# virtual endpoint.
push "route 10.8.0.1 255.255.255.255"
push "dhcp-option DNS 10.8.0.1"
# Push any routes the client needs to get in
# to the local network.
#push "route 192.168.0.0 255.255.255.0"
# Push DHCP options to Windows clients.
push "dhcp-option DOMAIN ABC.COM"
#push "dhcp-option DNS 192.168.0.1"
#push "dhcp-option WINS 192.168.0.1"
# Client should attempt reconnection on link
# failure.
keepalive 10 60
# Delete client instances after some period
# of inactivity.
inactive 600
# Route the --ifconfig pool range into the
# OpenVPN server.
route 10.8.0.0 255.255.255.0
# The server doesn't need privileges
user openvpn
group openvpn
# Keep TUN devices and keys open across restarts.
persist-tun
persist-key
verb 4
Wie Sie sehen können, handelt es sich im Grunde genommen um eine Beispielkonfiguration mit wenig Abstimmung.
Jetzt..
Auf meinem Computer (OpenVPN-Client) kann ich sehen, dass DNS in Ordnung ist:
{17:12}/etc/NetworkManager ➭ nslookup git.ABC.COM 10.8.0.1
Server: 10.8.0.1
Address: 10.8.0.1#53
Name: git.ABC.COM
Address: 10.8.0.1
{17:18}/etc/NetworkManager ➭ nslookup ABC.COM 10.8.0.1
Server: 10.8.0.1
Address: 10.8.0.1#53
Name: ABC.COM
Address: 18X.XX.XX.71
openvpn logs auf der Serverseite sagt (wenn ich das richtig verstehe), dass DNS gepusht wurde:
openvpn[13257]: TCPv4_SERVER link remote: [AF_INET]83.30.135.214:37658
openvpn[13257]: 83.30.135.214:37658 TLS: Initial packet from [AF_INET]83.30.135.214:37658, sid=3251df51 915772f3
openvpn[13257]: 83.30.135.214:37658 VERIFY OK: depth=1, C=XX, ST=XX, L=XXX, O=XXX, OU=XXX, CN=XXX, name=XXX, [email protected]
openvpn[13257]: 83.30.135.214:37658 VERIFY OK: depth=0, C=XX, ST=XX, L=XXX, O=XXX, OU=XXX, CN=XXX, name=XXX, [email protected]
openvpn[13257]: 83.30.135.214:37658 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
openvpn[13257]: 83.30.135.214:37658 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
openvpn[13257]: 83.30.135.214:37658 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
openvpn[13257]: 83.30.135.214:37658 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
openvpn[13257]: 83.30.135.214:37658 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
openvpn[13257]: 83.30.135.214:37658 [jacek] Peer Connection Initiated with [AF_INET]83.30.135.214:37658
openvpn[13257]: jacek/83.30.135.214:37658 MULTI_sva: pool returned IPv4=10.8.0.10, IPv6=(Not enabled)
openvpn[13257]: jacek/83.30.135.214:37658 MULTI: Learn: 10.8.0.10 -> jacek/83.30.135.214:37658
openvpn[13257]: jacek/83.30.135.214:37658 MULTI: primary virtual IP for jacek/83.30.135.214:37658: 10.8.0.10
openvpn[13257]: jacek/83.30.135.214:37658 PUSH: Received control message: 'PUSH_REQUEST'
openvpn[13257]: jacek/83.30.135.214:37658 send_push_reply(): safe_cap=940
openvpn[13257]: jacek/83.30.135.214:37658 SENT CONTROL [jacek]: 'PUSH_REPLY,route 10.8.0.1 255.255.255.255,dhcp-option DNS 10.8.0.1,dhcp-option DOMAIN ABC.COM,ping 10,ping-restart 60,ifconfig 10.8.0.10 10.8.0.9' (status=1)
openvp logs auf meiner seite:
Aug 05 17:13:55 localhost.localdomain openvpn[1198]: TCPv4_CLIENT link remote: [AF_INET]XXX.XX.37.71:1194
Aug 05 17:13:55 localhost.localdomain openvpn[1198]: TLS: Initial packet from [AF_INET]XXX.XX.37.71:1194, sid=89cc981c d57dd826
Aug 05 17:13:56 localhost.localdomain openvpn[1198]: VERIFY OK: depth=1, C=XX, ST=XX, L=XXX, O=XXX, OU=XXX, CN=XXX, name=XXX, [email protected]
Aug 05 17:13:56 localhost.localdomain openvpn[1198]: VERIFY OK: depth=0, C=XX, ST=XX, L=XXX, O=XXX, OU=XXX, CN=XXX, name=XXX, [email protected]
Aug 05 17:13:58 localhost.localdomain openvpn[1198]: Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Aug 05 17:13:58 localhost.localdomain openvpn[1198]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Aug 05 17:13:58 localhost.localdomain openvpn[1198]: Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Aug 05 17:13:58 localhost.localdomain openvpn[1198]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Aug 05 17:13:58 localhost.localdomain openvpn[1198]: Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Aug 05 17:13:58 localhost.localdomain openvpn[1198]: [static] Peer Connection Initiated with [AF_INET]XXX.XX.37.71:1194
Aug 05 17:14:00 localhost.localdomain openvpn[1198]: SENT CONTROL [static]: 'PUSH_REQUEST' (status=1)
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.1 255.255.255.255,dhcp-option DNS 10.8.0.1,dhcp-option DOMAIN ABC.COM,ping 10,ping-restart 60,ifconfig 10.8.0.10 10.8.0.9'
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: OPTIONS IMPORT: timers and/or timeouts modified
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: OPTIONS IMPORT: --ifconfig/up options modified
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: OPTIONS IMPORT: route options modified
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: ROUTE_GATEWAY 10.123.123.1/255.255.255.0 IFACE=wlan0 HWADDR=44:6d:57:32:81:2e
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: TUN/TAP device tun0 opened
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: TUN/TAP TX queue length set to 100
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: /usr/sbin/ip link set dev tun0 up mtu 1500
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: /usr/sbin/ip addr add dev tun0 local 10.8.0.10 peer 10.8.0.9
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: /usr/sbin/ip route add 10.8.0.1/32 via 10.8.0.9
Aug 05 17:14:01 localhost.localdomain openvpn[1198]: Initialization Sequence Completed
Es sieht so aus, als wäre alles in Ordnung.
Aber. Ich habe auch nachgesehen /var/log/messages
... und diese Zeile gefunden:
Aug 5 17:14:01 localhost NetworkManager[761]: <warn> /sys/devices/virtual/net/tun0: couldn't determine device driver; ignoring...
ip a
kehrt zurück:
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.8.0.10 peer 10.8.0.9/32 scope global tun0
valid_lft forever preferred_lft forever
route -n
kehrt zurück:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.123.123.1 0.0.0.0 UG 0 0 0 wlan0
10.8.0.1 10.8.0.9 255.255.255.255 UGH 0 0 0 tun0
10.8.0.9 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.123.123.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Also im Grunde funktioniert alles, außer das DNS wird gepusht ... Oh! Richtig und mein /etc/resolv.conf
:
# Generated by NetworkManager
domain home
search home
nameserver 10.123.123.1
Wo ist das Problem?
(Ich habe eine Antwort von Windows-Benutzer mit OpenVPN-Client, dass auf seiner Seite DNS funktioniert, so ist es ein Problem auf meiner Seite.
Ok, jetzt habe ich eine andere Antwort (nachdem ich den OpenVPN-Dienst auf der Serverseite neu gestartet habe) - es funktioniert nicht.
Ich muss sagen, dass es gestern auch auf meinem Computer funktioniert hat. Habe ich also etwas auf dem Server vermasselt? Was könnte es sein? )
Bearbeiten: Okay, ich habe eine andere Windows-Benutzerantwort (derselbe Benutzer wie zuvor) - es funktioniert jetzt. Also .. ich denke, es wurde durch OpenVPN-Neustart und einige Verzögerungen damit verursacht. Ich habe seitdem nichts mehr gemacht. Also sind wir wieder auf meiner Maschine.
Ich habe auch festgestellt, dass diese seltsame tun0
Nachricht auch gestern aufgetaucht ist und gestern funktioniert hat. Oder habe ich den Eintrag resolv.conf
selbst hinzugefügt ? Ich erinnere mich nicht .. (verdammt noch mal)
/etc/NetworkManager/NetworkManager.conf
legen auf : unkommentierendns=dnsmasq
und habenmanaged=true
. Möglicherweise sind Sie auch von dem Fehler # 1294899 betroffen. Die gespeicherte VPN-Verbindung wurde trotz einer gemeldeten "aufgebauten" VPN-Verbindung vor kurzem unterbrochen. Überprüfen Sie Ihre VPN-Einstellungen: Geben Sie den Protokollnamen (:tcp
oder:udp
) in dasGateway
Feld ein. Überprüfen Sie insbesondere die erweiterten EinstellungenPort number
undLZO compression
. Überprüfen Sie auch die Protokolle. Beenden Sie mit einem DNS-Lecktest .Antworten:
Das funktioniert bei mir: http://www.softwarepassion.com/solving-dns-problems-with-openvpn-on-ubuntu-box/
Der wichtige Schritt besteht darin, die folgenden zwei Konfigurationszeilen in die openvpn- Konfigurationsdatei Ihres Clients einzufügen:
Stellen Sie außerdem sicher, dass das
resolvconf
Paket auf dem Client installiert ist, da diesesupdate-resolv-conf
Skript davon abhängt.Es funktioniert mit dem openvpn-Clientdienst oder -Befehl, um es manuell zu starten.
Der Ubuntu Network Manager tut dies jedoch nicht. Bisher ist dies ein Problem: https://bugs.launchpad.net/ubuntu/+source/openvpn/+bug/1211110
quelle
script-security 2
Sie auch in Ihrem Client OpenVPN-Konfigurationsdatei.up
Start des Skripts überschrieben ... Ein Dirty# echo "nameserver 208.67.220.220" | /sbin/resolvconf -a "tun0.openvpn"
AFTER, auf dem openvpn ausgeführt wird, kann den Job ausführen ... bis es wieder überschrieben wird. Verwenden Sie OpenVPN nicht direkt.up
Befehl nicht gefunden !!Off
die Verbindung deaktivieren (deaktivieren ), die Administratoren möglicherweise nicht wünschen.Funktioniert für mich nach dem Deaktivieren von NetworkManager eigenen DNSMASQ.
Bearbeiten
/etc/NetworkManager/NetworkManager.conf
und starten Sie NetworkManager neu
quelle
restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Endlich funktioniert (mit Standard NetworkManager und OVPN Plugin)
In diesem Fall werden nach dem Herstellen der VPN-Verbindung alle DNS-Anforderungen an von VPN bereitgestellte DNS-Server weitergeleitet, ohne dass Manipulationen mit den Hilfsskripten dnsmasq, up / down / dispatch vorgenommen werden müssen.
quelle
Es ist möglich, DNS-Einstellungen in OpenVPN zu pushen. Wie in Ihrer Konfiguration erfolgt dies in der Serverkonfiguration mit der folgenden Zeile:
push "dhcp-option DNS 10.20.30.40"
Das funktioniert für mich mit der Windows-Benutzeroberfläche von Anfang an, aber für Linux-Systeme ist ein wenig Anstupsen erforderlich. Für die Verbindung zu meinem Heimnetzwerk (derzeit mit Fedora 18) habe ich ein Skript von gronke auf GitHub ( https://github.com/gronke/OpenVPN-linux-push ) verwendet, um den Aktualisierungsprozess zu automatisieren.
Um diese Skripte zu verwenden, habe ich meiner OpenVPN-Client-Datei Folgendes hinzugefügt:
up.sh:
down.sh:
quelle
dns=dns
duEs besteht die Möglichkeit, NetworkManager durch manuelles Ersetzen funktionsfähig zu machen
/etc/resolv.conf
. Beachten Sie, dass dies ein ziemlicher Hack ist und nicht für jede Situation als gültige Lösung angesehen werden kann.Dieses Skript sollte unter platziert werden
/etc/NetworkManager/dispatcher.d
; sollte ausführbar sein und sich im Besitz von root befinden. Es liest alle NetworkManager-VPN-Konfigurationen, die es finden kann, und schreibt sie/etc/resolv.conf
mit den dort verfügbaren Nameservern um. Es schreibt nichtdomain
undsearch
Zeilen; aber es erlaubt, böse NetworkManager-Fehler zu vergessen.Ich benutze Ubuntu 16.04, es funktioniert.
quelle
OpenVPN kann derzeit keine DNS-Einstellungen übertragen. Sie müssen /etc/resolv.conf manuell ändern, um sie an Ihren (gesicherten) DNS-Server anzupassen. Ich führe gerade einen BIND9-Dienst auf dem gleichen Computer wie mein Access Server aus und weise per Tunnel darauf hin. Verwenden Sie Ihre lokale IP-Adresse dieses Computers, z. B. 192.168.1.110
Viel Glück!
Jaspis
quelle
Ich habe einen OpenSUSE-Client, der weder verwendet
resolvconf
noch verwendetsystemd-networkd
, aber ich konnte das allgemeineupdate-resolv-conf
Skript so ändern , dass es mit dem NetworkManager-nmcli
Befehl funktioniert :Es gibt keinen
down
Handler, da NetworkManager die Parameternameserver
undsearch
(DNS-Suche) beim Beenden der Verbindung automatisch entfernt .quelle