Übersicht
ssh-socks nutzt die dynamische Portweiterleitungsfunktion (-D-Option) von SSH, um einen SOCKS-Proxy auf dem lokalen Rechner zu erstellen. Über diesen Proxy kann der Datenverkehr von Webbrowsern oder anderen Anwendungen über den entfernten SSH-Server ins Internet geleitet werden. Dies hat den Effekt, als würde man über den entfernten Server auf das Internet zugreifen.
Hauptanwendungsfälle
- Zugriff auf geografisch eingeschränkte Inhalte
- Verbesserung der Sicherheit in öffentlichen WLANs
- Zugriff auf interne Netzwerkressourcen eines Unternehmens
- Umgehung von Firewalls
Wichtige Optionen
ssh-socks nutzt hauptsächlich die Optionen des 'ssh'-Befehls. Hier sind die häufig verwendeten 'ssh'-Optionen für die SOCKS-Proxy-Einrichtung:
Proxy-Einrichtung
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`ssh-socks` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Dies sind typische Anwendungsbeispiele für ssh-socks. [user] und [remote_host] müssen durch den tatsächlichen Benutzernamen und die Adresse des entfernten Servers ersetzt werden.
Grundlegende SOCKS-Proxy-Einrichtung
ssh -D 8080 user@remote_host
Richtet einen SOCKS-Proxy auf dem lokalen Port 8080 ein und stellt eine Verbindung zum entfernten Server her. Dieser Befehl belegt das Terminal.
SOCKS-Proxy im Hintergrund ausführen
ssh -fN -D 8080 user@remote_host
Führt den Proxy im Hintergrund aus, sodass das Terminal weiterhin genutzt werden kann. -N verhindert die Ausführung von Remote-Befehlen, und -f verschiebt den Prozess in den Hintergrund.
Zugriff auf eine Webseite über den Proxy (curl)
curl --socks5-hostname localhost:8080 http://example.com
Greift mit dem curl-Befehl auf eine Webseite zu, indem der zuvor eingerichtete SOCKS-Proxy (localhost:8080) verwendet wird.
Zugriff auf eine Webseite über den Proxy (wget)
wget -e use_proxy=yes -e http_proxy=socks5://localhost:8080 http://example.com
Greift mit dem wget-Befehl auf eine Webseite zu, indem der zuvor eingerichtete SOCKS-Proxy (localhost:8080) verwendet wird.
Installation
ssh-socks ist in der Regel kein eigenständiger Befehl, der eine separate Installation erfordert. Stattdessen können Sie die Funktionalität des 'ssh'-Befehls nutzen, um ihn direkt einzurichten, oder ihn zur Bequemlichkeit als Shell-Alias (Alias) oder einfaches Skript erstellen.
Einrichtung als Shell-Alias
alias ssh-socks='ssh -fN -D 8080'
Sie können den 'ssh-socks'-Befehl definieren, indem Sie die folgende Zeile zu Ihrer ~/.bashrc- oder ~/.zshrc-Datei hinzufügen. Nach der Änderung müssen Sie 'source ~/.bashrc' oder 'source ~/.zshrc' ausführen, um sie anzuwenden.
Verwendung
Nach der Alias-Einrichtung können Sie ihn wie folgt verwenden: 'ssh-socks user@remote_host'. Um die Portnummer zu ändern, müssen Sie die Alias-Definition bearbeiten.
Einrichtung als einfaches Skript
#!/bin/bash
PORT=${1:-8080}
HOST=$2
if [ -z "$HOST" ]; then
echo "Verwendung: ssh-socks [Port] user@remote_host"
echo "Standard-Port: 8080"
exit 1
fi
shift
if [ $# -eq 1 ]; then
HOST=$1
else
HOST=$2
fi
ssh -fN -D $PORT "$HOST"
echo "SOCKS-Proxy läuft auf localhost:$PORT (PID: $(pgrep -f "ssh -fN -D $PORT $HOST"))"
Sie können ein ausführbares Skript unter einem Pfad wie /usr/local/bin/ssh-socks erstellen. Diese Methode ermöglicht eine flexiblere Übergabe von Ports oder anderen Optionen als Argumente.
Verwendung des Skripts
Nachdem Sie das Skript erstellt haben, gewähren Sie ihm Ausführungsrechte mit 'chmod +x /usr/local/bin/ssh-socks' und verwenden Sie es dann wie 'ssh-socks user@remote_host' oder 'ssh-socks 9000 user@remote_host'.
Tipps & Hinweise
Hier sind einige nützliche Tipps und Dinge, die Sie bei der Verwendung von ssh-socks beachten sollten.
Webbrowser-Einstellungen
Die meisten Webbrowser unterstützen SOCKS-Proxy-Einstellungen. Geben Sie in den Netzwerkeinstellungen des Browsers 'localhost' als 'SOCKS-Host' und den eingerichteten Port (z. B. 8080) als 'Port' an.
- Firefox: Einstellungen -> Netzwerkeinstellungen -> Manuelle Proxy-Konfiguration -> SOCKS-Host
- Chrome/Edge: System-Proxy-Einstellungen verwenden (abhängig von den OS-Einstellungen)
Verwendung der SSH-Konfigurationsdatei (~/.ssh/config)
Sie können die Befehle kürzer gestalten, indem Sie die Einstellungen für den entfernten Host in der Datei ~/.ssh/config vordefinieren.
- Host myproxy Hostname remote_host User user DynamicForward 8080 ExitOnForwardFailure yes ServerAliveInterval 60 ServerAliveCountMax 3
Beispiel für die Verwendung der SSH-Konfigurationsdatei
ssh -fN myproxy
Nach der oben genannten Konfiguration können Sie den Proxy mit dem Befehl 'ssh -fN myproxy' ausführen.
Proxy beenden
Um einen im Hintergrund laufenden SSH SOCKS-Proxy zu beenden, müssen Sie den entsprechenden SSH-Prozess finden und beenden.
- ps aux | grep 'ssh -fN -D 8080' (PID ermitteln)
- kill [PID]
Sicherheitsüberlegungen
Da der gesamte Datenverkehr über den entfernten Server geleitet wird, ist es wichtig, die Sicherheit und Vertrauenswürdigkeit dieses Servers zu überprüfen. Die Verwendung eines Proxys über einen nicht vertrauenswürdigen Server birgt das Risiko, dass Daten abgefangen oder manipuliert werden.