Ich brauche Hilfe, um zu verstehen, wie ich VPN-Clients den Zugriff auf Server im „Intranet“ ermöglichen kann.
Ich habe einen dedizierten/physischen Server bei OVH (falls das wichtig ist) mit 4 zusätzlichen IPs. Das installierte Betriebssystem ist Proxmox und ich habe zwei Netzwerkgeräte (ihr Typ ist „Linux Bridge“). Einem ist die öffentliche IP des Servers zugewiesen (vmbr0), dem anderen (vmbr1) die IP 172.20.0.1 mit 255.252.0.0 als Netzmaske.
Ich habe einige virtuelle Maschinen erstellt, denen nur vmbr1 zugewiesen ist. Ich kann problemlos zwischen diesen Maschinen pingen. Ich habe von diesen Maschinen aus auch Zugriff auf das Internet, als ob sie sich hinter meinem Heimrouter befänden. Falls es wichtig ist: Auf 172.20.0.2 habe ich einen DHCP-Server und auf 172.20.0.3 und 172.20.0.4 habe ich zwei DNS-Server.
Ich habe eine weitere virtuelle Maschine erstellt, der sowohl vmbr0 als auch vmbr1 zugewiesen sind. Ich habe eine der zusätzlichen öffentlichen IPs auf vmbr0 konfiguriert und kann mich per SSH darauf einloggen. Ich habe auch OpenVPN installiert und so konfiguriert, dass Clients über den VPN-Server auf das Internet zugreifen können. Die VPN-Clients erhalten IPs aus dem Netzwerk 10.8.0.0/24.
Was ich jetzt tun möchte, ist, allen Servern von 172.20.0.0/14 zu erlauben, Ping/SSH/usw. in die VPN-Clients einzubinden, die sich im Netzwerk 10.8.0.0/24 befinden.
Ich habe herausgefunden, dass ich den OpenVPN-Server dazu bringen muss, einige Routen an die Clients zu pushen (damit die Clients über das andere Netzwerk Bescheid wissen).
Ich bin ziemlich sicher, dass ich etwas auf dem Proxmox-Host selbst tun muss (weil sich dort das Gateway für das Netzwerk 172.20.0.0/14 befindet) und ich glaube, dass ich auch auf dem OpenVPN-Server selbst einige Iptable-Regeln hinzufügen muss, um den Datenverkehr zwischen den Netzwerken weiterzuleiten/maskieren, aber ich verstehe nicht genau, welche Regeln.
Meine Frage ist also: Was muss ich tun, um den VPN-Clients bei diesem Setup den Zugriff auf die virtuellen Server zu ermöglichen?
Antwort1
Wenn auf dem OpenVPN-Host keine Firewall installiert ist, wird der Datenverkehr standardmäßig zugelassen. Sie können dies also ignorieren.
Den Clients müssen Routen zugewiesen werden, um sicherzustellen, dass der für das interne Subnetz bestimmte Datenverkehr über das VPN geleitet wird. Dies kann eine Standardroute sein (die dazu führt, dass der gesamte Datenverkehr von den Clients über das VPN geleitet wird) oder eine spezielle Route für Ihr internes Subnetz. Sie haben festgestellt, dass Sie dies in der VPN-Konfiguration festlegen können (vorausgesetzt, Sie verwenden eine zertifikatsbasierte Authentifizierung).
Sie müssen die IP-Weiterleitung auf dem OpenVPN-Host aktivieren. Verwenden Sie , sysctl
um den Wert net.ipv4.conf.all.forwarding
auf 1 zu setzen. Fügen Sie eine Datei hinzu, /etc/sysctl.d
um sicherzustellen, dass dies auch bei Neustarts erhalten bleibt.
Die lokalen Hosts benötigen außerdem Routen, um sicherzustellen, dass sie wissen, wie sie auf das OpenVPN-Subnetz zugreifen können. Sie können entweder:
Verwenden Sie NAT im OpenVPN-Host, damit weitergeleitete Pakete so aussehen, als kämen sie von seiner internen IP. Dadurch wird die Existenz des Subnetzes 10.8.0.0/24 verborgen, sodass keine anderen Geräte davon wissen müssen. Der gesamte Datenverkehr aller VPN-Clients scheint jedoch von einem einzigen Host zu stammen.
Richten Sie Routen ein, um sicherzustellen, dass der für 10.8.0.0/24 bestimmte Datenverkehr an den OpenVPN-Host weitergeleitet wird. Diese können auf jeder VM oder auf dem Hostcomputer hinzugefügt werden. Verwenden Sie das
route
Tool und fügen Sie Ihren Netzwerkschnittstellendeklarationen Befehle hinzu, um sicherzustellen, dass sie auch nach Neustarts erhalten bleiben.