Kann ein roamender VPN-Client einen Dienst für das Büro hosten?
Ein roamender Client kann Bürosysteme nur bedienen, wenn das Gateway zu ihm routet, die Host-Richtlinie es erlaubt und das Gerät lange genug erreichbar bleibt.
Ihr Büro-Laptop kann sich von zu Hause einwählen und trotzdem etwas bereitstellen, das das Büro braucht, aber nur, wenn drei getrennte Entscheidungen zusammenpassen. Der Tunnel ist Transport, die innere Adresse ist das Ziel, und die Richtlinie entscheidet, wer anklopfen darf. Behandelt man eines davon als die ganze Antwort, entsteht die bekannte Beschwerde: Der Host antwortet auf Pings, aber die Anwendung verbindet sich nie. Die Rollen sind nicht gleich, und der Unterschied liegt genau dort, wo die Designarbeit stattfindet.
Die Einwählrichtung sagt nichts über die Dienstrrichtung aus
Wenn ein Client einen Tunnel startet, öffnet er einen Pfad, den beide Richtungen nutzen können, sobald er existiert. Ob eine neue Verbindung vom Hub zu diesem Client hereinkommen darf, ist eine Frage der Gateway-Richtlinie und keine Eigenschaft desjenigen, der eingewählt hat. Bei einem gerouteten OpenVPN-Hub etwa braucht der Server eine Route zur inneren Adresse des Clients und Weiterleitung, die die Peer-Beziehung erlaubt.
Stellen Sie sich ein Inventarsystem vor, das einen Agenten auf roamenden Laptops abfragt, oder einen Entwickler, der eine Test-API von einem Arbeitsplatz zu Hause braucht. Beide wollen, dass die Büroseite das Gespräch beginnt, das Gegenteil des üblichen Client-zu-Server-Musters.
Gehostete Fernzugriffsprodukte unterscheiden sich hier, und die Abweichung ist kein Fehler. Manche Managed-Service-VPNs blockieren unaufgeforderte Verbindungen zu verbundenen Clients bewusst, weil ihr Modell Client-zu-Ressource ist, nicht Ressource-zu-Client. Lesen Sie die dokumentierte Architektur des Produkts, bevor Sie einem Kollegen versprechen, sein Laptop könne als Server dienen.
Verfolgen Sie den Rückweg, bevor Sie einen Port öffnen
Der Pfad hat drei Teile: eine Route auf dem Gateway, die auf die innere Adresse des Clients zeigt, eine Richtlinie, die den konkreten Aufrufer zulässt, und einen lauschenden Dienst auf dem Ziel. Jeder Teil scheitert anders, deshalb sagt „das VPN läuft“ fast nichts.
Die gute Nachricht: Der innere Pfad braucht keine Portweiterleitung auf dem Heimrouter des Clients. Genau darum geht es, wenn man den Dienst auf der Tunneladresse veröffentlicht statt auf der WAN-Adresse zu Hause, wo Exposition und NAT-Regeln völlig anders wären. Ein Heimrouter kann außerdem ein Hairpinning für eine Verbindung aus dem Büro verweigern, sodass die WAN-Route aus Gründen scheitert, die nichts mit Ihrem VPN zu tun haben. Bleibt der Verkehr im Tunnel, sind beide Probleme auf einmal vermieden.
Prüfen Sie auch die Zielseite. Ein Dienst, der nur an 127.0.0.1 gebunden ist, kann keine Verbindung annehmen, die über die Tunnelschnittstelle eintrifft, so korrekt die Routen des Gateways auch sein mögen. Eine Host-Firewallregel, die den Port nur aus dem lokalen Subnetz zulässt, verwirft Büroverkehr ebenfalls, und diese Regel ist unabhängig von der VPN-Richtlinie darüber.
Namen und Adressen sind Designentscheidungen
Eine Adresse im Tunnel ist nicht automatisch ein Name. Ein privater DNS-Eintrag, den Sie kontrollieren, ist klarer als die Hoffnung, ein Discovery-Protokoll überquere den Tunnel, denn Link-Local-Multicast-Namensauflösung bleibt im lokalen Segment und wird nicht zu subnetzübergreifendem DNS.
Adressstabilität zählt genauso. Beziehen VPN-Clients aus einem Pool mit kurzen Leases, ändert sich die innere Adresse des Laptops zwischen Sitzungen, und jedes Lesezeichen, jeder Firewall-Bereich und jede Monitoring-Prüfung darauf bricht still. Nutzen Sie eine Reservierung oder einen dokumentierten dynamischen Aktualisierungspfad.
Stimmen Sie den Namen mit demjenigen ab, der die VPN-Identität besitzt, damit Eintrag, Adresszuweisung und Zugriffsrichtlinie gemeinsam geändert werden statt in drei getrennten Tickets.
Testen Sie den Dienst, nicht die Mitgliedschaft
Bestätigen Sie am Ziel, was auf welcher Adresse lauscht, und bestätigen Sie dann die Sicht des Gateways auf den Rückweg:
$ ss -ltnp | grep 8080
LISTEN 0 128 10.80.0.23:8080 0.0.0.0:*
$ ip -4 addr show tun0 | grep inet
inet 10.80.0.23/24 scope global tun0
$ ip route get 10.80.0.1
10.80.0.1 dev tun0 src 10.80.0.23
Testen Sie nun von der Büroseite mit einer echten Anfrage statt mit einem Echo. Ein erfolgreiches curl gegen den Dienst beweist Route, Richtlinie und Listener auf einmal, während ein erfolgreicher Ping nur beweist, dass ICMP erlaubt ist. Scheitert die Anfrage, arbeiten Sie sich rückwärts durch die drei Teile, statt die Firewall zu öffnen und zu hoffen.
Verfügbarkeit gehört in dasselbe Gespräch. Ein Laptop schläft, roamt zwischen Netzen und trennt am Tagesende. Ein Dienst, der zu jeder Stunde antworten muss, gehört auf einen immer laufenden Host, während ein Best-Effort-Dienst beim Client bleiben kann, wenn diese Einschränkung festgehalten ist.
Veröffentlichen Sie die Ressource bewusst, mit Namen, Liste zulässiger Aufrufer und einem Eigentümer, und das entfernte Gerät wird ein unterstützter Dienst statt eines versehentlichen Servers.