Wie leite ich mein Internet durch einen SSH-Tunnel?

24

Alt F Wie richte ich einen OpenVPN-Server ohne Root-Rechte ein?

Gibt es eine Möglichkeit, einen OpenVPN-Server ohne Root-Berechtigungen einzurichten? ZB mit Konfigurationsdateien in meinem Homeverzeichnis? Wenn ja, wie stelle ich es ein?

Ich versuche, SSH in ein System einzubauen und dort einen OpenVPN-Server für den persönlichen Gebrauch einzurichten.

BEARBEITEN

Da es offensichtlich ist, dass OpenVPN Root-Rechte benötigt, ändere ich die Frage auf das Routing meines Internets mithilfe von SSH, das ich einfach einrichten kann.

Oxwivi
quelle
Mit "Userspace" meinen Sie in einem Home-Ordner ohne Root-Berechtigungen? Normalerweise wird "Userspace" als das Gegenteil von "Kernel Space" verwendet.
Lekensteyn
@Lekensteyn, ja ohne root-Berechtigung wusste ich nicht, dass User-Space auf etwas anderes verweist. Bitte zögern Sie nicht, meine Frage in etwas angemessenes zu bearbeiten. Ich habe auch über diese Antwort nachgedacht, aber ich weiß nicht, wie man Dinge ohne root-Rechte einrichtet.
Oxwivi

Antworten:

32

sshuttle ist ein transparenter Proxy-Server, der über eine SSH-Verbindung weiterleitet und einen Proxy durch Ausführen von Python-Skripten auf dem Remote-Server einrichtet . sshuttlekann unter folgenden Bedingungen ausgeführt werden:

  • Client-Computer oder -Router basieren auf Linux, FreeBSD oder Mac OS
  • Administratorrechte auf dem Client
  • Zugriff auf Remote-Netzwerk über SSH
  • Keine Administratorrechte im Remote-Netzwerk
  • Verfügbarkeit von Python auf Remote-Server

Installieren Sie sshuttleBildbeschreibung hier eingeben über das Software Center oder das Terminal:

sudo apt-get install sshuttle

Der grundlegende Befehl zum Ausführen von sshuttle mit Routing des gesamten Datenverkehrs lautet:

sshuttle -r username@sshserver:port 0/0

Nach Ausführung des Befehls wird eine sudoPasswortabfrage und anschließend das Passwort für das SSH-Konto angezeigt. Außer einer kurzen Nachricht werden keine weiteren Details angezeigt und kehren bei einem Fehler zur Shell zurück. Für weitere Statusmeldungen führen Sie den sshuttleausführlichen Modus mit dem -vFlag aus.

In diesem Beispiel wird der gesamte Internetverkehr mit Ausnahme von DNS über das VPN geleitet. -rflag kennzeichnet den Remote-Hostnamen und optional den Benutzernamen und Port, die im obigen Beispiel folgen. 0/0steht für 0.0.0.0/0die Subnetze, die über das VPN geroutet werden sollen. Die Verwendung von 0/0routet den gesamten Datenverkehr mit Ausnahme von DNS-Anforderungen an den Remoteserver. DNS-Tunelling ist unter Verwendung von -Hflag möglich.

Bitte lesen Sie die Manpage ( man sshuttle) für die Details der Optionen und Modi, unter denen ausgeführt werden sshuttlekann. Informationen zum Konzept und weitere Beispiele finden Sie auf der Projektseite .

André Paramés
quelle
Redsocks sind ebenfalls eine Überlegung wert. gleiche
merkmale
17

Sie können OpenVPN nicht ohne Root-Rechte einrichten, da dies für bestimmte Vorgänge erforderlich ist.

  • Voraussetzungen: Sie müssen die Paketweiterleitung in Ihrer (iptables?) Firewall aktivieren
  • Hinzufügen von Geräten in Betrieb: Ein spezielles virtuelles Gerät muss mit hinzugefügt werden ifconfig. Andernfalls ist keine Kommunikation zwischen Server und Client möglich

Je nach Ihren Anforderungen stehen andere Lösungen zur Verfügung. Zum Durchsuchen Ihres Servers können Sie einen SOCKS-Server einrichten.

SOCKS-Proxy

Das Einrichten eines SOCKS-Proxys ist nicht schwierig: Es ist in OpenSSH integriert. Führen Sie zum Aktivieren des SOCKS-Servers den nächsten Befehl in einem Terminal aus :

ssh user@host -D1234

Ersetzen Sie 1234 durch Ihren bevorzugten Port. In Ihrem Browser können Sie localhostals Host und 1234als Port bei SOCKS4 / 5 Server eintragen.

Unten sehen Sie ein Beispiel im Firefox-Browser:

  1. Gehen Sie zu Bearbeiten -> Einstellungen
  2. Öffnen Sie die erweiterte Abschnitt
  3. Gehen Sie zur Registerkarte Netzwerk
  4. Drücken Sie Einstellungen
  5. Wählen Sie Manuelle Proxy-Konfiguration
  6. Geben Sie localhostals SOCKS-Host ein
  7. Geben Sie 1234als Port ein (der gleiche Port wie im SSH-Befehl angegeben)
  8. Drücken Sie OK und Schließen , um die Einstellungsdialogfelder zu schließen.

Beispiel für die Einrichtung von FIrefox

Lekensteyn
quelle
1
Ich möchte mein Internet über das System leiten, auf dem ich VPN einrichten möchte.
Oxwivi
Leider können Sie die Routing-Regeln auf dem Server nicht ohne Root-Rechte ändern. Eine Lösung, die mindestens eine sichere Lösung für das Browsen bietet, ist die Verwendung eines SOCKS-Proxys, wie in der Antwort beschrieben.
Lekensteyn
1
Es ist mir gelungen, mein Internet über den SSH-Tunnel zu leiten. Soll ich Ihre Antwort so bearbeiten, dass sie genau darauf verweist, wie ich die Frage bearbeitet habe? Oder wirst du es tun?
Oxwivi
@Oxwivi: Ich werde es nachbestellen und ein Beispiel für Firefox hinzufügen.
Lekensteyn
-1

Wenn Sie nur den TCP-Verkehr Ihres Systems tunneln möchten, empfehle ich die Verwendung eines Programms namens tun2socks. Wenn Sie auch UDP-Verkehr tunneln möchten, müssen Sie udpgw auf Ihrem Server installieren.

Hier finden Sie eine Anleitung zur Installation und Verwendung dieser Programme: http://board.nwrk.biz/viewtopic.php?id=3

giri
quelle
4
Könnten Sie Ihre Antwort aktualisieren und die wichtigsten Schritte Ihres Links hier erläutern? Auf diese Weise ist diese Antwort auch dann nützlich, wenn die Website nicht mehr verfügbar ist.
Louis Matthijssen