OpenVPN (als DNS und Default-GW) konfigurieren

Marco

Well-Known Member
Hallo,

ich bekomme mein OpenVPN Server einfach nicht korrekt konfiguriert. Bis jetzt läuft alles soweit das sich die OpenVPN-Clients am Server anmelden können und die Verbindung eröffnet wird. Das Tunnel-Device ist dann eröffnet.

Obwohl ich in der Config angegeben habe das der VPN-Server als Gateway verwendet werden soll (selbe gilt für DNS), ignorieren die Clients die Anweisung.

Hier erstmal meine Config:
Code:
port 443
proto udp
dev tun
tun-mtu 1500
mssfix
ca /usr/local/etc/openvpn/vpn-ca.pem
cert /usr/local/etc/openvpn/servercert.pem
key /usr/local/etc/openvpn/serverkey.pem
dh /usr/local/etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway 10.8.0.1"
push "dhcp-option DNS 10.8.0.1"
keepalive 10 120
auth SHA1
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
verb 3
status openvpn-status.log
log openvpn.log

Was ich nun für eine IP bei
push "redirect-gateway 10.8.0.1"
push "dhcp-option DNS 10.8.0.1"
angeben muss, ist mir nicht ganz klar. 10.8.0.1 ist die virtuelle Adresse des OpenVPN-Server.

Leider ist 10.8.0.1 vom Client nicht erreichbar, was natürlich daran liegt das der Client nicht weiß wie er dieses Netz erreichen soll.

Über Hilfe wäre ich sehr dankbar :)
 
Code:
server 10.8.0.0 255.255.255.0
push "redirect-gateway 10.8.0.1"
push "dhcp-option DNS 10.8.0.1"

Was ich nun für eine IP bei
push "redirect-gateway 10.8.0.1"
push "dhcp-option DNS 10.8.0.1"
angeben muss, ist mir nicht ganz klar. 10.8.0.1 ist die virtuelle Adresse des OpenVPN-Server.

Die "server" Direktive gibt an, welche IP Adresse der OpenVPN Einwahlknoten haben soll. Da musst Du etwas gültiges angeben, Du gibst hier aber eine Netzadresse an. Vermutlich meinst Du 10.8.0.1.

Für die "redirect-gateway" Option brauchst Du gar keine Adresse angeben, dann wird automatisch der OpenVPN Gateway als Standard-Router eingetragen.
 
Das kommt mal wieder davon wenn man blind von Anleitungen abschreibt. Danke vielmals, ich werde es gleich ausprobieren.

Ich dachte mit dem server Eintrag lege ich fest welcher Adressbereich für die virtuellen Adressen benutzt werden soll und .1 wird automatisch für den Server reserviert.
 
Scheint so leider nicht zu funktionieren. Bei server muss man tatsächlich ein Netz angeben und .1 wird automatisch für den Server verwendet.

Ich habe mir jetzt mal die eingetragenen Routen auf dem Client ansehen.
Code:
schleppi marco # route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     2000   0        0 wlan1
loopback        *               255.0.0.0       U     0      0        0 lo
10.8.0.1 ist jedenfalls eingetragen und in aktuellen Versuch sogar pingbar.
Versuche ich nun aber ein anderes Netz zu erreichen (zB im Internet) kommt nur "connect: Network is unreachable".
 
Scheint so leider nicht zu funktionieren. Bei server muss man tatsächlich ein Netz angeben und .1 wird automatisch für den Server verwendet.

Ja, Du hast recht, ich hab' eben nochmal nachgeschaut.


Ich habe mir jetzt mal die eingetragenen Routen auf dem Client ansehen.
Code:
schleppi marco # route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     2000   0        0 wlan1
loopback        *               255.0.0.0       U     0      0        0 lo
10.8.0.1 ist jedenfalls eingetragen und in aktuellen Versuch sogar pingbar.
Versuche ich nun aber ein anderes Netz zu erreichen (zB im Internet) kommt nur "connect: Network is unreachable".

Was ist denn das für ein System, auf dem "route" ohne weitere Parameter den o.g. Output liefert? Sieht so aus, als fehlte die Default Route.

Du kannst mal versuchen, nachdem Du Dich mit dem OpenVPN Server verbunden hast, etwas in der Art von
Code:
route add default 10.8.0.1
am Client einzugeben. Wenn Du dann Hosts im Internet erreichen kannst, dann wird tatsächlich die Default Route nicht zum Client übertragen.

Hast Du denn die Adresse nach "push redirect-gateway" entfernt? In meiner server.conf hab ich keine weitere Adresse angegeben und das tut ohne Probleme.
 
Ja, die Idee das die Default-Route fehlt hatte ich auch schon.
route add default 10.8.0.1 hatte ich noch nicht ausprobiert, dafür aber route add default gw 10.8.0.1. Ist vielleicht das selbe? Jedenfalls hatte das keinen Effekt. Leider kann ich mich nicht mehr an das Ergebnis erinnern und werde es daher nachher noch einmal ausprobieren.

Das System (der Client) ist Gentoo Linux. Würde es ja gerne auch unter Windows ausprobieren, aber leider kenne ich mich da nicht aus (Routen ansehen usw.). Glaube aber nicht das es an meinem Linux liegt, sondern eher an der OpenVPN Konfiguration des Server.

Edit:

Ok jetzt fällt es mir auch wieder ein. Beim Versuch manuell die Default-Route hinzuzufügen kommt die Meldung dass das Netz nicht erreichbar ist. Das Komische ist, ein Ping an die IP geht problemlos. Hier ein Auszug:

Code:
schleppi marco # route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     2000   0        0 wlan1
loopback        *               255.0.0.0       U     0      0        0 lo
schleppi marco # route add default 10.8.0.1
SIOCADDRT: Kein passendes Gerät gefunden
schleppi marco # route add default gw 10.8.0.1
SIOCADDRT: Das Netzwerk ist nicht erreichbar
schleppi marco # ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.703 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=0.743 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=0.714 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.703/0.720/0.743/0.016 ms
schleppi marco #
 
Zuletzt bearbeitet:
Entfern einfach mal die Routen zu 10.8.0.5 und 10.8.0.1 und ändere das Subnetz von tun0 zu /24.
 
Wieso bei der Route das Subnet auf 32 gesetzt wurde ist mir auch unklar. In der Config habe ich 24 angegeben.

Leider bringt das alles nichts.
Code:
schleppi marco # route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
default         10.8.0.5        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     2000   0        0 wlan1
loopback        *               255.0.0.0       U     0      0        0 lo
schleppi marco # ping 10.8.0.5
connect: Network is unreachable

Und eigentlich müsste als GW doch die .1 angegeben werden?
 
Wenn die 1 die IP deines Gateway ist schon. Muss sie aber nicht zwingendermaßen sein.
 
Mittels tcpdump konnte ich nun ermitteln, dass ein Ping von Client tatsächlich durch den Tunnel zum Server gelangt. Auf den Request folgt auch ein Reply. Der Ping an 10.8.0.1 ist also ok.

Sende ich nun aber einen Ping an eine andere Adresse (z.B. aus dem Internet, oder dem anderen LAN), so kommt der Reqest zwar beim Server an, wird aber nicht beantwort. Das komische hierbei ist, dass der Request vom Client nicht an die Adresse 10.8.0.1 geschickt wird, sondern an die 10.8.0.5.

Aber was sagt mir das nun?
 
Inzwischen weiß ich wieder etwas mehr Bescheid. 10.8.0.5 wird deswegen angesteuert weil es sich um eine PtP Verbindung handelt und 10.8.0.5 ist in dem Fall das Serverende und 10.8.0.6 das Clientende.

Außerdem weiß ich inzwischen das wenn ich auf dem Client die 10.8.0.5 als Default-Gateway einrichte, dass dann alles einwandfrei funktioniert.

Laut Manuel sollte der Eintrag push "redirect-gateway" dafür sorgen, dass der Default-Gateway auf dem Client solange die OpenVPN Verbindung besteht, auf das Serverende gesetzt wird. Dies passiert bei mir leider nicht. Warum, k.a. jedenfalls liegt das Problem nicht an der Servereinstellung.

Falls trotzdem noch jemand eine schlaue Idee haben sollte, immer her damit!
 
Zurück
Oben