davman
Goto Top

Routen bei openvpn

Hallo zusammen

Ich habe ein Problem mit openvpn. Ich habe folgendes Netzwerk.

Rechner A (Ubuntu) -> lan -> DSLRouter (easyBox) -> Internet
Rechner B (Raspberry) -> SurfStick(HSDPA) -> Internet

Server(Ubuntu) mit fester IP

Nun sollen beide Rechner sich am Server via openvpn anmelden und miteinander kommunizieren können und über den Server ins die Welt. Ich kann beide Rechner am Server anmelden und kann auch die jeweils andere (vpn) IP anpingen. Leider klappt die Namensauflösung nicht (ping raspberrypi geht nicht), noch kann ich bei bestehender VPN Verbindung ins Internet oder eine IP außerhalb anpingen (klappt sonst)

Wie müssen hier die Routen gesetzt werden? Ich stehe total aufm Schlauch.

LG

David

Content-Key: 317484

Url: https://administrator.de/contentid/317484

Printed on: April 28, 2024 at 18:04 o'clock

Mitglied: 131026
131026 Oct 12, 2016 updated at 07:03:32 (UTC)
Goto Top
Moin,
typische Anfängerfehler...
Entweder du NATest allen Traffic der aus dem OpenVPN Tunnel am Server ankommt
iptables -t nat -A POSTROUTING -i tun0 -o eth0 -j MASQUERADE
oder du setzt eine statische Route für das OpenVPN Subnetz auf dem Gateway des Servers welche auf den OpenVPN-Server zeigt.

Wenn man mal logisch nachdenkt würde das einem auch selber einfallen, sofern man zumindest die absoluten Routing-Basics kennt.

Zu DNS: Betreibe einen DNS-Server am OpenVPN-Server und gib diesen den Clients in der Config mit.

Gruß R.
Member: aqui
aqui Oct 12, 2016 at 10:55:13 (UTC)
Goto Top
Nun sollen beide Rechner sich am Server via openvpn anmelden
Wo denn an welchem Server ?? Oben ist keinerlei Rede von einem Server face-sad
Wo steht der denn ?? Im öffentlichen Internet ? Lokal hinter einem NAT Router ?
Es ist unklar was du genau willst...??
Sollen die Rechner A und B vollständig den gesamten Traffic via Server ins Internet Routen ?
Dann sollte dir klar sein das die Absender IPs der Rechner A und B ja die internen OVPN IP Adressen sind, die in der regel ja private RFC 1918 IPs sind. Jeder weiss das diese im Internet nicht geroutet werden !
Wenn der Server ein öffentlicher ist mit einer öffentlichen IP und diese Absender IPs also in die große weite Welt blasen ohne NAT (IP Adress Translation) ist ja klar das das schief geht !
Wie Kollege ranger schon richtig bemerkt hat muss man die logischerweise NATen auf die öffentliche Server IP sofern der Server in so einem Umfeld steht ?!
Ist er auch hinter einem NAT Router sieht die Welt natürlich wieder anderes aus.
Member: davman
davman Oct 13, 2016 at 09:10:07 (UTC)
Goto Top
Hi

Also ich habe einen Vserver mit öffentlicher und statischer IP. Auf diesem ist openVPN als Server installiert. Desweiteren habe ich ein Client(Netzwerk), das mittels DSL-Verbindung (Dynamische IP ) über eine Vodafone Easybox804 ins Internet geht. Außerdem habe ich einen Rasperberry, der sich via Surfstick in Netz wählt.

Ziel soll sein, dass sich beide an dem Server anmelden und diese darüber miteinander kommunizieren können.

Um ein wenig den Hintergrund zu verstehen. Ich habe in meinem Schrebergarten leider nur über das Handynetz zugang zum Internet. Ich möchte aber Über einen RaspberryPI meine Bewässerung messen und steuern. Leider kann dieses blöde Handynetz nicht mit Dyndns oder ähnliches erreichbar gemacht werden. Beim stöbern fand ich die VPN Idee und stecke nun hier fest face-smile

Beide Clients können sich anmelden und den server anpingen.

Nicht geht:
Clients ins Internet
Clients untereinander ansprechen.

Seltsamerweise bekomme ich in den logs auch diese Fehlermeldung:
MULTI: bad source address from client [192.168.2.25]
Dieser Rechner steht hinter der Dsl Easybox Verbindung. Aber warum nur der und nicht der aus dem anderen Netz. Es sind beide gleich konfiguriert.


lg
david
Member: aqui
aqui Oct 13, 2016 updated at 12:31:27 (UTC)
Goto Top
Also ich habe einen Vserver mit öffentlicher und statischer IP.
DAS war die entscheidende und fehlende Info !
Ziel soll sein, dass sich beide an dem Server anmelden und diese darüber miteinander kommunizieren können.
OK, das ist logischerweise ein simpler Klassiker.
Beide Clients können sich anmelden und den server anpingen.
Klasse, dann hast du schon 90% zum Fliegen gebracht. Der rest ist eine Kleinigkeit.
Das die Clients sich nicht untereinander anpingen können ist klar, denn das ist ein typischer Anfänger Fehler in deiner OpenVPN Konfig bzw. du hast die Doku nicht gelesen !
Per Default lässt der Server nur eine Client Kommunikation mit dem Server zu, nicht aber der Clients untereinander.
Wenn du allerdings:
client-to-client

in die Server Konfig Datei eingibst und OVPN neu startest, dann können sich auch die Clients sehen face-wink
Doku lesen hilft... face-wink
https://openvpn.net/index.php/open-source/documentation/howto.html

Warum beide nicht in Internet können ist auch klar aber da steckt etwas Detailrecherche drin...
Normalerweise schickst du den Clients ja mit dem push route.. Komamndo ja das lokale LAN des Servers um dort Endgeräte zu erreichen. (Siehe auch hier.)
Bei einem vServer wie bei dir fehlt natürlich (vermutlich) diese Kommando in der Server Konfig. Was sollte der vServer auch für ein lokales LAN an die Clients propagieren, er hat ja keins.
Da du ja aber wenn dein OpenVPN Tunnel aktiv ist allen Traffic in den Tunnel routen willst, sprich also den lokalen zum Server UND den Internet Traffic musst du das Default Gateway der Clients redirecten, klar !
Das macht das Kommando:
push "redirect-gateway def1"

In der Server Konfig.
https://openvpn.net/index.php/open-source/documentation/howto.html#redir ...
Mit netstat -r oder auch ip route show auf deinem Ubuntu und RasPi kannst du dir das anzeigen lassen (Routing Tabelle).
Ist das gemacht ist das aber nur erstmal die halbe Miete....
Deine Internet Pakete gehen jetzt zwar durch den Tunnel und kommen nun auch alle beim Server an. Soweit so gut. Der Server hat eine Default Route ins Provider Internet und da schickt er die Pakete hin.
Das Fatale ist jetzt aber das die Pakete ja eine Absender IP Adresse haben aus dem internen OVPN Server IP Netz das du in der Server Konfig z.B. mit server 172.16.2.0 255.255.255.0 definiert hast. (Hier als Beispiel das RFC 1918 IP Netz 172.16.2.0 /24.)
Private RFC 1918 IP Adressen werden aber im Internet NICHT geroutet, deshalb sind sie "privat".
Wenn dein OVPN Server diese Pakete nun zum Provider Router schickt schmeisst der die sofort weg, weil er weiss das er solche Pakete niemals bekommen kann, da es diese IPs im Internet ja nicht gibt.
Folglich muss dein OVPN Server diese Client IPs also umsetzen auf seine eigene öffentliche Provider IP und dann klappt es sofort fehlerlos.
Das nennt man NAT oder Masquerading.
Aktiviere das also noch zum Schluß am Server wie oben vom Kollegen ranger schon beschrieben und dann funktioniert es auch sofort mit dem Internet !