sd45as
Goto Top

Openvpn 2 Netzwerke verbinden

Ich habe 2 Raspberry und diese habe ich mit openvpn miteinander verbunden einer ist der Server und der andere ein client. ich möchte mich nun mit meinem Handy mit dem Server verbinden was kein problem ist und dann vom Handy zugriff haben auf den anderen Raspberry der als client verbunden ist.

Der Ip Adressbereich vom Servernetz ist die 192.168.178.X

Der Ip Adressbereich vom Cliennetz ist die 10.1.1.X

Der Ip Adressberich vom Openvpn 10.8.0.X


Ich will halt auf das gesamte 10.1.1.X Netzwerk zugriff haben vom Handy auf das 10.8.0.X geht ja immer.

Content-ID: 557155

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

NordicMike
NordicMike 12.03.2020 um 22:12:03 Uhr
Goto Top
Dein Vorhaben gefällt mir. Viel Spaß beim Einrichten.
BirdyB
BirdyB 12.03.2020 um 22:46:11 Uhr
Goto Top
Hört sich gut an... Und was ist deine Frage?
radiogugu
radiogugu 12.03.2020 um 22:54:51 Uhr
Goto Top
Hallo.

Können wir davon ausgehen, dass Du eine Fritzbox als Firewall / Router einsetzt?

Dann funktioniert dies ausschließlich, wenn Du statische Routen darin definierst.

Der sauberere Weg würde sicherlich über die Anschaffung einer "richtigen" Firewall sein, welche auch das Routing übernehmen würde.

Zum besseren Verständnis, die Netze liegen auch räumlich getrennt von einander, korrekt?

Gruß
Radiogugu
Alchimedes
Alchimedes 12.03.2020, aktualisiert am 13.03.2020 um 13:32:28 Uhr
Goto Top
Hallo,

Ich habe 2 Raspberry und diese habe ich mit openvpn miteinander verbunden einer ist der Server und der andere ein client.

ich will halt auf das gesamte 10.1.1.X Netzwerk zugriff haben vom Handy auf das 10.8.0.X geht ja immer.

Wo laueft den Dein VPN Server ? Auf der 192.168.178.X ?
Und Du willst von Deinem Handy auf das Client Netzwerk 10.1.1.x zugreifen ?

Bitte erkläre doch mal genau was Du vor hast.

Ich denke das Du dringend mal aqui's Netzwerk und VPN Tutorials lesen und erarbeiten solltest.


@ radiogugu (Level 1)

Zum besseren Verständnis, die Netze liegen auch räumlich getrennt von einander, korrekt?

Spielt keine Rolle

Nachtrag:
@ radiogugu
Spielt in diesem Setup dann doch eine Rolle !


Gruss
sd45as
sd45as 13.03.2020 um 08:35:08 Uhr
Goto Top
Ich habe 2 Raspberry Pis und diese habe ich mit openvpn miteinander verbunden einer ist der Server und der andere ein client. Der eine Raspberry steht bei meinen Eltern und der andere bei mir 200km voneinader getrennt. Ich möchte mich nun mit meinem Handy mit dem Server verbinden was kein problem ist und dann vom Handy zugriff haben auf den anderen Raspberry der als client verbunden ist.

Ich weiß nur nicht was ich dafür machen muss.


Openvpn-Server (192.168.178.36) <-->Fritz Box (192.168.178.1) <--> Internet <--> Fritz Box (10.1.1.1) <--> Openvpn-Client (10.1.1.2) <--> restliches Netzwerk z.B. 10.1.1.9

Ip-Adresse openvpn Netzwerk
Openvpn-Server (10.8.0.1) Openvpn-Client (10.8.0.4) Openvpn Handy (10.8.0.5)

Mit meinem Handy habe ich zugriff auf das Netz der Fritz Box (192.168.178.1) und ich möchte es jetzt erweitern auf die Fritz Box 10.1.1.1. Damit ich z.B. auf die 10.1.1.9 zugreifen kann. Ich könnte glaube ich noch ein 2 Server betreiben, aber der aufwand wäre dann vermutlich größer als nur eine client datei und damit auf alles zugreifen.
orcape
orcape 13.03.2020 aktualisiert um 09:04:32 Uhr
Goto Top
Hi,
wenn der Tunnel steht, mit Netz 10.8.0.0/24, hast Du sicherlich für die Fritte der Serverseite ein Portforwarding für den Tunnelport eingerichtet.
Dann ist es nur noch eine Frage der OpenVPN-Config, um das remote Netz zu erreichen.
Stichwort "route" "push route" in der Server.conf. Desweiteren solltest Du auf dem Server eine CCD haben, die auf das remote Netz hinweist.
Google mal im Forum nach @aquis Tutorial, das sollte weiter helfen.
Bei Rückfragen dann bitte ein paar mehr Infos. Routing-Tabellen, Configs, etc., sonst ist das nur ein heiteres Ratespiel.
Gruß orcape
aqui
Lösung aqui 13.03.2020 aktualisiert um 14:30:00 Uhr
Goto Top
und dann vom Handy zugriff haben auf den anderen Raspberry der als client verbunden ist.
Das ist kinderleicht !
client-to-client muss als Kommando in deiner RasPi Server Konfig stehen damit sich auch die VPN Clients alle untereinander erreichen ! Handy und 2ter RasPi sind ja beides Clients im VPN Netz.
Das hast du bestimmt im Eifer des Gefechts vergessen ?!
https://openvpn.net/community-resources/how-to/#expanding-the-scope-of-t ...
(Etwas runterscrollen...)
Eine Beispielkonfig für deinen RasPi Server sähe dann z.B. so oder ähnlich aus:
dev tun
proto udp4
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
server 10.88.88.0 255.255.255.0
topology subnet
client-to-client
push "route 192.168.199.0 255.255.255.0"
route 10.1.1.0 255.255.255.0
persist-key
persist-tun
status /etc/openvpn/openvpn-status.log
client-config-dir /etc/openvpn
verb 4
no compress
keepalive 10 120
explicit-exit-notify 
Wobei hier 192.168.199.0 /24 das lokale LAN ist in dem der Server angeschlossen ist.
Im Verz. /etc/openvpn dann eine Datei mit dem Common Name des RasPi Clients der auch das Client LAN routet:
ifconfig-push 10.88.88.2 255.255.255.0 
iroute 10.1.1.0 255.255.255.0 
Die reinen Clients, also die die kein lokales LAN routen wie der 2te RasPi, brauchen diesen Server Eintrag nicht !
Fertisch...
Siehe dazu auch hier:
OpenVPN - Erreiche Netzwerk hinter Client nicht
sd45as
sd45as 24.08.2020 um 16:05:14 Uhr
Goto Top
Ich habe mich heute mal wieder damit beschäftigt und es geschaft. Ich benutze pivpn als basis, davon gibt es genug gute Erklärungen wie man eine Verbindung aufbaut in eine Richtung.

Für beider Richtungen musste ich in der server.conf Datei von openvpn folgendes einfügen:
client-to-client
client-config-dir  /etc/openvpn/ccd
route 10.1.1.0 255.255.255.0
push "route 192.168.178.0 255.255.255.0"  

Jetzt sieht die Datei folgendermaßen aus:
dev tun
proto tcp6
port 443
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh none
topology subnet
server 10.8.0.0 255.255.255.0


#ab hier geändert
client-to-client

#von 192.168.178.0 auf 10.1.1.1 zugriff
#in  /etc/openvpn/ccd datei erstellen die so heisst wie der client(raspberry3)
#dort das ein tragen iroute 10.1.1.0 255.255.255.0

client-config-dir  /etc/openvpn/ccd
route 10.1.1.0 255.255.255.0
push "route 192.168.178.0 255.255.255.0"  

#für statische ip-adresse der clienten (nicht notwendig)
ifconfig-pool-persist ipp.txt

#bis hier

# Set your primary domain name server address for clients
push "dhcp-option DNS 192.168.178.36"  
push "dhcp-option DNS 1.1.1.1"  
# Prevent DNS leaks on Windows
push "block-outside-dns"  
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"  
#keepalive 1800 3600
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
# Generated for use by PiVPN.io

Zusätzlich muss noch eine Datei erstellt werden dieße muss genauso heißen wie die erstellte client datei bei mir hieß diese pi.

nano /etc/openvpn/ccd/pi

iroute 10.1.1.0 255.255.255.0
aqui
Lösung aqui 25.08.2020 um 09:29:07 Uhr
Goto Top
Ist ja letztlich dann genau so wie auch im o.a. Tutorial beschrieben.
2 Fehler hast du noch drin:
  • "client-to-client" kannst du bei einer LAN2LAN Kopplung entfernen. Das Kommando bewirkt das VPN Clients auch untereinander kommunizieren können. Kommt bei dir ja nicht vor.
  • "push "redirect-gateway def1"" ist falsch ! Das solltest du dringenst entfernen. Niemals darf man einen Gateway Redirect und ein Split Tunneling parallel konfigurieren im Server Setup ! Das Tutorial weist explizit darauf hin !!

Leider ist deine Beschreibung der derzeit aktiven Server Konfig Datei total wirr und unübersichtlich beschrieben so das man nicht mehr weiss was denn nun wirklich aktiv ist und was nicht. face-sad
Aber wenns trotzdem rennt ist es ja auch letztlich egal.
sd45as
sd45as 25.08.2020 um 12:50:51 Uhr
Goto Top
Ist "client-to-client" nicht trotzdem Notwendig ich habe ja mit dem Server ja meherere Clienten verbunden Handy, Notebook.... .
Wenn ich "push "redirect-gateway def1"" entfernen würde dann würden nicht alle meine Daten übers vpn geleitet wenn ich mich mit dem Handy verbinden.

Ich nutzte ja den Server für eine Dauerhafteverbindung von 2 Orten und ich will unterwegs mich mit dem Handy verbinden und da sollen alle meine Daten sicher sein. Oder sehe ich da jetzt was falsch.
BirdyB
Lösung BirdyB 25.08.2020 um 13:08:03 Uhr
Goto Top
Mit "redirect-gateway" werden alle Daten über die VPN-Verbindung geleitet. Ansonsten kannst du über das Routing steuern, welche Daten über das VPN laufen sollen und welche direkt in die weite Welt ausgeleitet werden sollen.
sd45as
sd45as 25.08.2020 aktualisiert um 13:44:57 Uhr
Goto Top
Ja das habe ich gerade auch gelesen wenn "push "redirect-gateway def1"" falsch dann nehme ich es heraus und ändere es in der client datei um.

"client-to-client" kann ich dann stehen lassen?

server.conf angepasst

dev tun
proto tcp6
port 443
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh none
topology subnet
server 10.8.0.0 255.255.255.0
client-config-dir  /etc/openvpn/ccd
route 10.1.1.0 255.255.255.0
push "route 192.168.178.0 255.255.255.0"  
push "dhcp-option DNS 192.168.178.36"  
ifconfig-pool-persist ipp.txt
push "block-outside-dns"  
keepalive 4 10
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3

Wenn bei mir hier ein Fehler gefunden wurde, könnt ihr auch mal das anschauen. Das benutze ich damit bei Verbindungsabruch eineneue Verbindung aufgebaut wird. Habe zusätzlich noch keepalive 4 10 angepasst.

#!/bin/bash

# VPN Gateway
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# NAT the VPN client traffic to the internet
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

while [ true ] ; do
sudo openvpn /etc/openvpn/easy-rsa/pki/pi.ovpn
done
aqui
aqui 25.08.2020 aktualisiert um 15:49:59 Uhr
Goto Top
Das sieht schon wesentlich besser aus ! Server Konfig ist so OK.
sd45as
sd45as 11.11.2020 aktualisiert um 18:21:44 Uhr
Goto Top
Ich bräuchte nochmal deine Hilfe. Leider ist meine SD-Karte abgeschmiert und ich musste alles wieder neu einrichten und ich habe einen fehler drin. Ich kann zeitweise nicht telefonieren über die openvpn Verbindung. Ich habe mal mich hier im Forum schon schlau gemacht und erfolgreich einen Weg gefunden wie das Telefonieren wieder geht, aber ich verstehe nicht wie ich diesen Fehler dauerhaft beseitigen kann.

Wenn ich das ausführe geht das Telefonieren wieder, aber nur eine gewisse zeit. Ich verstehe nicht wieso das immer wieder zum prblem wird.

#!/bin/sh
echo "iptables reset ... "  
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


Ist das ein NAT Problem ?
aqui
aqui 11.11.2020 um 18:21:50 Uhr
Goto Top
Du solltest niemals im VPN Tunnel NAT machen ! Das ist vollkommen sinnfrei und auch kontraproduktiv, denn warum sollte dort NAT sinnvoll sein ?
Das sind ja alles deine eigenen internen IP Netze und ein NAT da vollkommen überflüssig im Tunnel und kostet zudem Performance. Das Tunnel Interface musst du also zwingend vom NAT ausnehmen !
Voice überträgt die Sprachdaten mit RTP und RTP nutzt dynamische UDP Ports die dann eine NAT Firewall nicht passieren können oder die du dann zwangsweise so oder so mit einer Schrotschußregel im Port Forwarding über eine große Portrange freigeben müsstest was dann NAT wiederum ad absurdum führt. (Siehe oben)
Fazit: NAT deaktivieren im Tunnel, dann klappt es auch sofort mit der Telefonie !
sd45as
sd45as 11.11.2020 aktualisiert um 18:28:31 Uhr
Goto Top
Eine doofe frage wie deaktviere ich NAT im Tunnel ? Das startet mit der Zeit von selbst. Ich weiß nur nicht wieso.