SSH-Reverse-Dynamic-Forwarding: einen entfernten SOCKS-Listener erstellen
Erstellen Sie einen reversen dynamischen SOCKS-Listener auf einem SSH-Server, bei dem Zielverbindungen von der Clientseite aus geöffnet werden.
Normalerweise verschafft ein SSH-SOCKS-Tunnel einem Laptop den Netzwerkausgang des Servers. Reverses dynamisches Forwarding kehrt diese Anordnung um: Ein Programm auf dem entfernten Rechner kann das Netzwerk nutzen, das Ihrem SSH-Client zur Verfügung steht.
Auf einem OpenSSH-Client, der zielunabhängiges Remote-Forwarding unterstützt:
ssh -N -R 127.0.0.1:1080 [email protected]
Der SOCKS-Listener läuft auf remote.example.net und ist an dessen Loopback-Adresse gebunden. Programme dort verwenden 127.0.0.1:1080. Zielverbindungen laufen über SSH zurück und werden auf der Seite geöffnet, auf der Ihr Client läuft.
Lesen Sie die Richtung vor der IP
Die Dokumentation zu -R macht das ausgelassene Ziel bedeutsam. Eine Angabe mit port:host:hostport ist stattdessen eine feste Weiterleitung. Gehen Sie nicht davon aus, dass ein alter Client die kürzere dynamische Form unterstützt.
Die nach außen sichtbare IP ist diejenige, die das Netzwerk auf Ihrer Clientseite für diese Verbindungen verwendet. Ein Laptop hinter einem Heimrouter kann über die übersetzte öffentliche Adresse des Routers hinausgehen. Es ist nicht automatisch die IP des SSH-Servers oder eine Adresse, die dem Laptop direkt zugewiesen ist.
Halten Sie den entfernten Listener eingeschränkt. Eine Wildcard-Bindung kann anderen Rechnern erlauben, das Netzwerk Ihrer Clientseite als Ausgang zu nutzen, abhängig von der Serverrichtlinie. Selbst Loopback kann für andere berechtigte Prozesse auf dem entfernten Host erreichbar sein; es ist kein prozessweites Geheimnis.
Prüfen Sie für eine eingeschränkte Zielmenge PermitRemoteOpen und die Weiterleitungsrichtlinie des Servers. Die Route hängt auch davon ab, dass Ihr Client online bleibt. Wenn diese Verbindung schließt, verschwindet der entfernte Proxy-Pfad. Reverses Forwarding ändert, wo Verbindungen entstehen; es bietet keinen eigenständigen Proxy unabhängig von der SSH-Sitzung.