VPN-Server (Brückenkopf) ohne Root?

7

Wie kann ich einen VPN-Server auf einem Host einrichten, auf dem ich kein Root habe?

Ich habe die folgenden Einschränkungen:

  • Auf dem Server A habe ich kein Root. Ich kann nur in meinem Home-Verzeichnis arbeiten. Insbesondere kann ich auch keine tunGeräte erstellen .
  • Auf dem Client B habe ich die vollständige Kontrolle und kann installieren, was ich will.
  • SSH-Portweiterleitung (-L / -R) und SOCKS-Proxy (-D) funktionieren, in meinem Fall jedoch nicht. Die Software auf meinem Client verwendet viele verschiedene Ports, daher würde ich gerne SOCKS verwenden, sie wird jedoch auch auf Kernel-Ebene ausgeführt, sodass ich sie nicht davon überzeugen kann tsocks, den Proxy zu verwenden. Eine Sache, die funktionieren würde, wäre, meine Client-Software in einer VM auf B auszuführen und die gesamte VM zu socken - aber ich würde diesen Weg wirklich lieber nicht gehen.
  • Ich benötige keine privilegierten Ports, daher sollte Nicht-Root auf A in Ordnung sein.
  • Es muss kein "echtes" VPN sein, aber etwas Ähnliches würde ausreichen. Mein Prozess auf B sollte in der Lage sein, mit Prozessen auf A (und verbundenen Geräten) so zu kommunizieren, als ob sie sich auf einem Computer befinden, ohne sie neu zu schreiben.

Ich glaube nicht, dass es einen eleganten Weg gibt, dies zu tun - der richtige Weg wäre, einfach den Administrator von A zu fragen oder B in dasselbe Netz zu stecken -, aber jetzt bin ich nur neugierig, ob dies als Beweis getan werden kann des Konzepts.

jdm
quelle

Antworten:

7

Nun, dieser Zugriff "Ich habe kein Root" auf Server A kann ein Problem bei der Erstellung einer guten VPN-Lösung sein, da:

  • IP-IP-Tunneling erfordert eine Schnittstellenmanipulation.
  • pptp erfordert auch Root-Rechte, um Schnittstellen zu erstellen.
  • OpenVPN kann sogar als nicht privilegierter Benutzer ausgeführt werden. Es müssen jedoch einige Tricks ausgeführt werden, z. B. das Zulassen des ipBefehls sudo , um die Erstellung einer tunSchnittstelle zu ermöglichen .
  • strongSwan mit reduzierten Berechtigungen erfordert CAP_NET_ADMINoder CAP_NET_RAWfunktioniert, und das Ausführen des IKE-Dämons als Nicht-Root-Benutzer unterbricht die Unterstützung für das Aktualisierungsskript von iptables.

Was dir bleibt, mein Freund: Verlasse dich auf SSH Socken Proxy . Führen Sie auf Ihrem lokalen Computer und als Root Folgendes aus:

ssh -C2qTnN -D 8080 username@serverA

Mittel : Komprimierung, nur SSH2, Leise, Pseudo-Tty-Zuweisung erzwingen, Standard von / dev / null umleiten und den SSH-Client für die Verbindungsfreigabe in den "Master" -Modus versetzen.

Jetzt müssen Sie nur noch Ihre Anwendung ausführen. Wenn es native SOCKSv5-Unterstützung wie Firefox bietet, müssen Sie lediglich "localhost: 8080" als Proxyserver konfigurieren.

Wenn Ihre Anwendung diesen Proxy nicht nativ unterstützt, führen Sie ihn mit Proxy- Ketten aus . Einfach auf Ihrem Client installieren und los geht's.

Die einzige Lösung, die Sie nicht übernehmen möchten, scheint leider die einzige zu sein.

Links:


quelle