Openvpn u ubuntu prob beim routing

Jensgebken

Cadet 1st Year
Registriert
Jan. 2016
Beiträge
14
Hallo,

Habe eine Verbindung nun mittlerweile hinbekommen dass ich von außerhalb der VPN auf mein Ubuntu Server mit VPN drauf zugreifen kann,-mein Problem ist im Moment nur, dass ich auf meinem Client die iPad Adresse 10.8.0.3 habe
Der Ubuntu Server bei mir im Lan aber die Adresse 192.168.2.102 hat

Ich möchte aber gerne von außerhalb auch auf die Adresse 192. 168.2.100 drauf zugreifen können-kannst du mir erklären wie das funktioniert
 
Jensgebken schrieb:
Hallo,

Habe eine Verbindung nun mittlerweile hinbekommen dass ich von außerhalb der VPN auf mein Ubuntu Server mit VPN drauf zugreifen kann,-mein Problem ist im Moment nur, dass ich auf meinem Client die iPad Adresse 10.8.0.3 habe
Der Ubuntu Server bei mir im Lan aber die Adresse 192.168.2.102 hat

Ich möchte aber gerne von außerhalb auch auf die Adresse 192. 168.2.100 drauf zugreifen können-kannst du mir erklären wie das funktioniert

Normalerweise sollte dein VPN Server in diesem Fall ebenfalls eine Adresse aus dem 10.8.0.x sprich 10.8.0.0/24 oder sogar 10.8.0.0/16 bekommen haben, so dass du ihn darüber ansprechen kannst. Bei OpenVPN ist das meist die 6 am Ende, in deinem Fall also, 10.8.0.6 als Server-IP.

Ich hoffe das hilft.
Greetz
 
Zuletzt bearbeitet:
Hi,
so wie ich das verstehe willst du auch auf andere Geräte die im Lan hängen zugreifen, dafür musst du dem VPN-Server sagen das er den VPN-Verkehr ans Lan weiterleiten muss.

Schaut mal hier hier vorbei, unter "LAN einbeziehen und Weiterleitung ins Internet" ist das beschrieben.
 
Genauso war's gedacht - hab ne easybox als Router - der auch das Gw ist - hab die Änderungen so durchgeführt- funzt trotzdem nicht
 
Um über ein VPN auf das LAN hinter dem VPN-Server zuzugreifen, braucht man mehrere Dinge:

  1. Der VPN-Client muss eine Route ins LAN über den VPN-Tunnel haben
    route add 192.168.2.0 mask 255.255.255.0 vpn.ip.vom.server

  2. Der VPN-Server muss IP forwarding erlauben, sonst routet er nicht vom VPN ins LAN
    sudo sysctl -w net/ipv4/ip_forward=1

  3. Der Rückweg vom LAN ins VPN muss mit NAT oder durch eine Route geregelt sein
    • NAT@Server: Geräte haben keine VPN-Route oder VPN-Server ist nicht das Gateway für die LAN-Clients
      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    • Route@LAN: Jedes Gerät, das über VPN extern erreichbar sein soll, benötigt eine Route ins VPN über den Server
      route add 10.8.0.0 mask 255.255.255.0 lan.ip.vom.server

Je nach Umgebung, müssen IPs, Subnetzmasken und Interfaces gegebenenfalls individuell angepasst werden! Schritt 1 bzw. 3b sind in Windows-Syntax, Schritt 2 und 3a Linux (Ubuntu). Unter Umständen muss das entsprechend angepasst werden, zB bei Linux-Clients im LAN bzw. Linux-Client im VPN.

ip_forward und die iptables sind grundsätzlich erstmal nur temporär. Um nach erfolgreichem Test permanent übernommen zu werden, müssen sie in /etc/sysctl.conf (ip_forward) bzw. /etc/rc.local (iptables) eingetragen werden! Schritt


Bezüglich Schritt 3 ist die Lösung via NAT am einfachsten zu bewerkstelligen, weil man sonst jedem Gerät beibringen müsste wo das VPN erreichbar ist - wenn man denn überhaupt Routen hinzufügen kann... Durch das NAT denkt zB das NAS, dass die Anfrage vom Server kommt, weil es überhaupt nichts vom VPN weiß bzw. wissen muss...


Nachtrag:

Ändere unbedingt dein Subnetz im LAN! 192.168.2.0/24 wird zB von den Speedports verwendet. Sobald du bei einem Kumpel, in einem Hotel oder einem HotSpot bist, der ebenfalls 192.168.2.0/24 verwendet, wirst du nicht auf dein LAN zugreifen können, weil der PC natürlich erstmal im lokalen LAN nach den IPs sucht.

Meiden solltest du in jedem Fall: 192.168.0.0 - 192.168.2.255 + 192.168.178.1 - .255

Ansonsten kannst du dich in den folgenden Bereichen mehr oder weniger austoben:

192.168.0.0 - 192.168.255.255
172.16.0.0 - 172.31.255.255
10.0.0.0 - 10.255.255.255
 
Zuletzt bearbeitet:
also in meinem fall hat der ubuntu openvpn server die 192.168.2.102

mein router hat die ip 192.168.2.1

wo gebe ich diesen code ein?
route add 192.168.2.0 mask 255.255.255.0 192.168.2.102

dieser term ist drin
sudo sysctl -w net/ipv4/ip_forward=1

3. muss das der router können - oder wo muss ich das eingeben?

lieben gruss
 
Jensgebken schrieb:
wo gebe ich diesen code ein?
route add 192.168.2.0 mask 255.255.255.0 192.168.2.102
Nirgendwo. Achte auf das vpn in vpn.ip.vom.server
Am Laptop, von dem aus du zB im Hotel eine VPN-Verbindung nach Hause aufbauen willst, muss so eine Route konfiguriert sein. Je nach VPN-Client wird das unter Umständen auch schon automatisch gemacht, das muss man in den Einstellungen des Clients nachschauen. Bei OpenVPN wäre dsa zB in der client.conf sowas wie "route 192.168.2.0 10.8.0.6"
Ansonsten eben manuell über "route add 192.168.2.0 mask 255.255.255.0 10.8.0.6" wenn die 10.8.0.6 die VPN-IP des Servers ist.


Jensgebken schrieb:
3. muss das der router können - oder wo muss ich das eingeben?
Wie ich schon schrieb, NAT muss der VPN-Server machen, weil er dann Daten, die aus dem VPN kommen, mit seiner eigenen LAN-IP markiert damit zB das NAS explizit dem Server antwortet (, der das dann wieder ins VPN routet).

Ohne NAT wird es schon komplizierter. Wenn dein Internetrouter statische Routen ermöglicht, könntest du auch dort eine Route ins VPN über den Server einrichten. Dann antwortet das NAS quasi erstmal Richtung InternetRouter und der schickt es dann zum VPN-Server. Kann man im Internetrouter keine Routen manuell eintragen, muss jeder Client eine eigene Router ins VPN bekommen. Also das NAS braucht ne Route, der Receiver, der Drucker, etc.. Das geht aber nun mal nicht bei allen Geräten und ist daher die ungünstigste Lösung

lieben gruss[/QUOTE]
 
Jeder VPN-Client braucht eine Route ins heimische LAN über das VPN. Deswegen wird das in der Regel auch in der VPN-Software geregelt.


Bei OpenVPN sieht das zB so aus:

client.ovpn
route 192.168.2.0 255.255.255.0 10.8.0.6

oder direkt vom Server aus per push (löst ein route add beim Client aus):

server.ovpn
push "route 192.168.2.0 255.255.0"
 
ich mach doch dann nun folgendes
wenn ich das in der client.ovpn machen will, dann brauche ich doch die ip des clients oder ? also die 10.8..... aber wie weiss ich die vorher, damit ich sie eintragen kann

wo liegt die server.ovpn - die hab ich im mom nicht

habs hiermit gemacht
https://www.youtube.com/watch?v=S9ZP08Y2PvQ
 
Zuletzt bearbeitet:
Wo die server.ovpn liegt, weiß ich nicht. Das Video guck ich mir nu bestimmt auch nicht an :)

Schau mal in /etc/openvpn/config oder so. Kann auch sein, dass sie server.conf oder ähnlich heißt. Wahrscheinlich ist es eher eine .conf Datei, weil die unter Linux eher .conf heißen, unter Windows nennt OpenVPN die Files .ovpn.

Am einfachsten ist es, wenn du es direkt dort in der server.conf - oder wie sie auch immer heißt - machst. Beachte: Es gibt nicht die server.conf, weil du theoretisch ein Dutzend verschiedene .confs haben kannst, einige Server, einige Clients.

Wenn der OpenVPN-Server läuft, mach mal

Code:
ps -ef | grep openvpn

Dann müsstest du eine lange Zeile bekommen und da steht sowas wie "--config /etc/openvpn/server.conf". Das ist die .conf für den Server, da muss dann "push 192.168.2.0 255.255.255.0" rein. Anschließend den VPN-Server neustarten (zB "sudo service openvpn restart")


Zum Debuggen eignen Netzwerksniffer. Beispielsweise WireShark unter Windows und tcpdump unter Linux. Die filterst du jeweils auf die IPs, die du beobachten willst - bitte Anleitung googlen - und kannst dann sehen ob zB am VPN-Server überhaupt ein Ping für das LAN ankommt. Wenn nicht, dann stimmt das Routing auf dem VPN-Client noch nicht. Kommt der Ping an, dann wird er unter Umständen nicht weitergeleitet (ip_forwarding, iptables).
 
Weil das keine IP, sondern eine Subnetzadresse ist. Du willst ja nicht jede einzelne IP in deinem LAN separat routen, oder? Daher nimmt man das komplette Subnetz.

192.168.2.123 ist eine IP innerhalb eines Subnetzes. Das Subnetz ist gewissermaßen der Fixe Teil der IP.

192.168.2.1 - 192.168.1.255

Alles IPs. Der fixe Teil ist hier 192.168.2 und da hängt man dann die .0 dran, um zu kennzeichnen, dass es sich um ein Subnetz handelt.

Genau genommen gehört da immer noch die Subnetzmaske dazu, aber ich gehe hier mal vom einfachen Fall im Privathaushalt aus. Da wird zu 99,9% die 255.255.255.0 verwendet, also die ersten drei Zahlen der IP sind das Subnetz.

Durch das push 192.168.2.0 255.255.255.0 sagt man dem VPN-Client also sinngemäß "Route alles was 192.168.2.x ist, über mich, den Server".
 
ich habe die nstalation von openvpn nochmal durchlaufen lassen - um ein sauberes system zu haben - beuider installation bekomme ich die frage

Looks like your server is behind a NAT

if your server ist nated i need to know the external ip

was bedeutet das für mich

lg
 
Keine Ahnung welche Installation du da gemacht hast, aber eine normale OpenVPN-Installation interessiert sich kein Stück für NAT und externe IPs. Zumindest wurde mir nie etwas derartiges angezeigt. War das irgendein Wizard? Die Externe IP ist nämlich später dann für den Connect von außen interessant. Wobei das wiederum nur für den Client interessant ist, das VPN kann ja auch rein LAN-intern sein!
 
das ist meine config

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
topology subnet

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 127.0.1.1"
push "192.168.2.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify /etc/openvpn/easy-rsa/pki/crl.pem
Ergänzung ()

so - hab nun alles nochmal von vorne durchgeführt nach dieser anweisung
https://wiki.ubuntuusers.de/OpenVPN/

wenn ich die verbindung starte, dann kommt im openvpn verbindungsfenster das - und bleibt hängen- bzw startet den vorgang erneut
Thu Jan 07 19:00:37 2016 OpenVPN 2.3.9 i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Dec 16 2015
Thu Jan 07 19:00:37 2016 library versions: OpenSSL 1.0.1q 3 Dec 2015, LZO 2.09
Enter Management Password:
Thu Jan 07 19:00:37 2016 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Thu Jan 07 19:00:37 2016 Need hold release from management interface, waiting...
Thu Jan 07 19:00:38 2016 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Thu Jan 07 19:00:38 2016 MANAGEMENT: CMD 'state on'
Thu Jan 07 19:00:38 2016 MANAGEMENT: CMD 'log all on'
Thu Jan 07 19:00:38 2016 MANAGEMENT: CMD 'hold off'
Thu Jan 07 19:00:38 2016 MANAGEMENT: CMD 'hold release'
Thu Jan 07 19:00:38 2016 Socket Buffers: R=[65536->65536] S=[65536->65536]
Thu Jan 07 19:00:38 2016 MANAGEMENT: >STATE:1452189638,RESOLVE,,,
Thu Jan 07 19:00:38 2016 UDPv4 link local: [undef]
Thu Jan 07 19:00:38 2016 UDPv4 link remote: [AF_INET]meinedynadresse:1194
Thu Jan 07 19:00:38 2016 MANAGEMENT: >STATE:1452189638,WAIT,,,
Thu Jan 07 19:07:26 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Thu Jan 07 19:07:26 2016 TLS Error: TLS handshake failed

firewalls sind aus - im router ist die ip des openvpn mit 1194 eingetragen
 
Zuletzt bearbeitet:
Die push-DNS Option kann ich nicht nachvollziehen. Das setzt auf dem Client den DNS auf 127.0.1.1, das ist normalerweise der localhost, also der Client-PC selbst. Wenn auf dem also kein DNS läuft, kann zB "computerbase.de" nicht mehr aufgelöst werden und sobald man das VPN anschaltet, kann man nicht mehr im Surfen. Wenn, dann würde ich 8.8.8.8 als DNS pushen, das ist der google-public-dns.

Wenn ich den TLS Error bei google copy&paste, bekomme ich das hier: Klick
Check mal die Punkte, die da stehen durch.
 
Hi-ich hab die ganzen Punkte abgehakt daran kann es irgendwie nicht wegen hast du vielleicht eine Anleitung wie man OpenVPN auf einem Ubuntu Server sauber installiert
 
Zurück
Oben