Startpagina > Netwerkbeheer > ssh-socks

ssh-socks: SOCKS proxy instellen

ssh-socks is een concept of script dat een lokale SOCKS-proxyserver instelt via een SSH-verbinding. Hiermee kunt u het netwerkverkeer van lokale applicaties veilig tunnelen via een externe server. Het wordt voornamelijk gebruikt voor het omzeilen van firewalls, het verbeteren van de beveiliging en het verkrijgen van toegang tot specifieke netwerkomgevingen.

Overzicht

ssh-socks maakt gebruik van de dynamische poortdoorsturingsfunctie (-D optie) van SSH om een SOCKS-proxy op de lokale machine te creëren. Via deze proxy kan het verkeer van uw webbrowser of andere applicaties via de externe SSH-server naar het internet worden geleid. Dit geeft het effect alsof u vanaf de externe server internettoegang heeft.

Belangrijkste toepassingen

  • Toegang tot geografisch beperkte content
  • Verbeterde beveiliging op openbare Wi-Fi
  • Toegang tot interne bedrijfsnetwerkbronnen
  • Omzeilen van firewalls

Belangrijkste opties

ssh-socks maakt voornamelijk gebruik van de opties van het 'ssh'-commando. Hieronder staan de veelgebruikte 'ssh'-opties voor het instellen van een SOCKS-proxy.

Proxy-instellingen

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`ssh-socks` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Voorbeelden van gebruik

Dit zijn typische voorbeelden van het gebruik van ssh-socks. [user] en [remote_host] moeten worden vervangen door de daadwerkelijke gebruikersnaam en het externe serveradres.

Basis SOCKS-proxy instellen

ssh -D 8080 user@remote_host

Stelt een SOCKS-proxy in op lokale poort 8080 en maakt verbinding met de externe server. Dit commando bezet de terminal.

SOCKS-proxy op de achtergrond uitvoeren

ssh -fN -D 8080 user@remote_host

Voert de proxy op de achtergrond uit, zodat u de terminal kunt blijven gebruiken. -N voorkomt het uitvoeren van externe commando's en -f stuurt het naar de achtergrond.

Webpagina benaderen via proxy (curl)

curl --socks5-hostname localhost:8080 http://example.com

Benadert een webpagina met het curl-commando, gebruikmakend van de eerder ingestelde SOCKS-proxy (localhost:8080).

Webpagina benaderen via proxy (wget)

wget -e use_proxy=yes -e http_proxy=socks5://localhost:8080 http://example.com

Benadert een webpagina met het wget-commando, gebruikmakend van de eerder ingestelde SOCKS-proxy (localhost:8080).

Installatie

ssh-socks is doorgaans geen zelfstandig commando dat aparte installatie vereist. In plaats daarvan kunt u de functionaliteit van het 'ssh'-commando gebruiken om het direct in te stellen, of het voor het gemak maken als een shell-alias of een eenvoudig script.

Instellen als shell-alias

alias ssh-socks='ssh -fN -D 8080'

U kunt het 'ssh-socks'-commando definiëren door de volgende regel toe te voegen aan uw ~/.bashrc- of ~/.zshrc-bestand. Na de wijziging moet u 'source ~/.bashrc' of 'source ~/.zshrc' uitvoeren om deze toe te passen.

Gebruiksinstructies

Na het instellen van de alias kunt u het gebruiken als 'ssh-socks user@remote_host'. Als u het poortnummer wilt wijzigen, moet u de aliasdefinitie aanpassen.

Instellen als een eenvoudig script

#!/bin/bash

PORT=${1:-8080}
HOST=$2

if [ -z "$HOST" ]; then
  echo "Gebruik: ssh-socks [poort] user@remote_host"
  echo "Standaard poort: 8080"
  exit 1
fi

shift
if [ $# -eq 1 ]; then
  HOST=$1
else
  HOST=$2
fi

ssh -fN -D $PORT "$HOST"

echo "SOCKS-proxy wordt uitgevoerd op localhost:$PORT. (PID: $(pgrep -f "ssh -fN -D $PORT $HOST"))"

U kunt een uitvoerbaar script maken op een locatie zoals /usr/local/bin/ssh-socks. Deze methode maakt het mogelijk om poorten of andere opties flexibeler als argumenten te ontvangen.

Script gebruiksinstructies

Na het maken van het script, verleent u uitvoerrechten met 'chmod +x /usr/local/bin/ssh-socks' en kunt u het gebruiken als 'ssh-socks user@remote_host' of 'ssh-socks 9000 user@remote_host'.

Tips & Aandachtspunten

Dit zijn nuttige tips en aandachtspunten bij het gebruik van ssh-socks.

Webbrowser instellingen

De meeste webbrowsers ondersteunen SOCKS-proxy-instellingen. In de netwerkinstellingen van de browser kunt u 'SOCKS Host' instellen op 'localhost' en 'Port' op de ingestelde poort (bijv. 8080).

  • Firefox: Instellingen -> Netwerkinstellingen -> Handmatige proxyconfiguratie -> SOCKS-host
  • Chrome/Edge: Gebruik systeem proxy-instellingen (afhankelijk van OS-instellingen)

Gebruik van SSH-configuratiebestand (~/.ssh/config)

Door instellingen voor externe hosts vooraf te definiëren in het ~/.ssh/config-bestand, kunt u commando's beknopter gebruiken.

  • Host myproxy Hostname remote_host User user DynamicForward 8080 ExitOnForwardFailure yes ServerAliveInterval 60 ServerAliveCountMax 3

Voorbeeld van SSH-configuratiebestand

ssh -fN myproxy

Na de bovenstaande configuratie kunt u de proxy uitvoeren met het commando 'ssh -fN myproxy'.

Proxy beëindigen

Om een op de achtergrond draaiende SSH SOCKS-proxy te beëindigen, moet u het betreffende SSH-proces vinden en killen.

  • ps aux | grep 'ssh -fN -D 8080' (om het proces-ID te achterhalen)
  • kill [PID]

Veiligheidsoverwegingen

Aangezien al het verkeer via de externe server wordt geleid via de SOCKS-proxy, is het belangrijk om de beveiliging en betrouwbaarheid van die server te verifiëren. Het gebruik van een proxy via een onbetrouwbare server brengt het risico met zich mee dat gegevens worden onderschept of gemanipuleerd.


Hétzelfde categoriecommando