accueil > Gestion réseau > ssh-socks

ssh-socks : Configuration d'un proxy SOCKS

ssh-socks est un concept ou un script qui établit un serveur proxy SOCKS local via une connexion SSH. Il permet de tunneliser de manière sécurisée le trafic réseau des applications locales via un serveur distant. Il est principalement utilisé pour contourner les pare-feux, renforcer la sécurité et accéder à des environnements réseau spécifiques.

Aperçu

ssh-socks utilise la fonctionnalité de transfert de port dynamique (-D) de SSH pour créer un proxy SOCKS sur la machine locale. Ce proxy permet de rediriger le trafic des navigateurs web ou d'autres applications via le serveur SSH distant vers Internet, donnant l'impression de naviguer depuis le serveur distant.

Cas d'utilisation principaux

  • Accès à du contenu géo-restreint
  • Renforcement de la sécurité sur les Wi-Fi publics
  • Accès aux ressources du réseau interne de l'entreprise
  • Contournement des pare-feux

Options principales

ssh-socks utilise principalement les options de la commande 'ssh'. Voici les options 'ssh' couramment utilisées pour configurer un proxy SOCKS.

Configuration du proxy

Commande générée :

Essayez de combiner les commandes.

Description:

`ssh-socks` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Voici des exemples typiques d'utilisation de ssh-socks. [user] et [remote_host] doivent être remplacés par le nom d'utilisateur réel et l'adresse du serveur distant.

Configuration de base du proxy SOCKS

ssh -D 8080 user@remote_host

Configure un proxy SOCKS sur le port local 8080 et se connecte au serveur distant. Cette commande occupe le terminal.

Exécution du proxy SOCKS en arrière-plan

ssh -fN -D 8080 user@remote_host

Exécute le proxy en arrière-plan pour pouvoir continuer à utiliser le terminal. -N empêche l'exécution de commandes distantes, et -f le met en arrière-plan.

Accès à une page web via le proxy (curl)

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

Utilise le proxy SOCKS configuré (localhost:8080) pour accéder à une page web avec la commande curl.

Accès à une page web via le proxy (wget)

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

Utilise le proxy SOCKS configuré (localhost:8080) pour accéder à une page web avec la commande wget.

Installation

ssh-socks n'est généralement pas une commande indépendante nécessitant une installation séparée. Au lieu de cela, vous pouvez l'utiliser en exploitant les fonctionnalités de la commande 'ssh' pour le configurer directement, ou le créer sous forme d'alias de shell ou de script simple pour plus de commodité.

Configuration en tant qu'alias de shell

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

Vous pouvez définir la commande 'ssh-socks' en ajoutant la ligne suivante à votre fichier ~/.bashrc ou ~/.zshrc. Après modification, vous devez appliquer les changements avec 'source ~/.bashrc' ou 'source ~/.zshrc'.

Utilisation

Après avoir configuré l'alias, vous pouvez l'utiliser comme 'ssh-socks user@remote_host'. Pour changer le numéro de port, vous devez modifier la définition de l'alias.

Configuration via un script simple

#!/bin/bash

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

if [ -z "$HOST" ]; then
  echo "Usage: ssh-socks [port] user@remote_host"
  echo "Port par défaut : 8080"
  exit 1
fi

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

ssh -fN -D $PORT "$HOST"

echo "Le proxy SOCKS est en cours d'exécution sur localhost:$PORT (PID: $(pgrep -f "ssh -fN -D $PORT $HOST"))"

Vous pouvez créer un script exécutable à un emplacement tel que /usr/local/bin/ssh-socks. Cette méthode permet de passer le port ou d'autres options en arguments de manière plus flexible.

Utilisation du script

Après avoir créé le script, accordez-lui les permissions d'exécution avec 'chmod +x /usr/local/bin/ssh-socks', puis utilisez-le comme 'ssh-socks user@remote_host' ou 'ssh-socks 9000 user@remote_host'.

Conseils et précautions

Voici des conseils utiles et des points à considérer lors de l'utilisation de ssh-socks.

Configuration du navigateur web

La plupart des navigateurs web prennent en charge la configuration de proxy SOCKS. Dans les paramètres réseau du navigateur, spécifiez 'localhost' comme 'Hôte SOCKS' et le port configuré (par exemple, 8080) comme 'Port'.

  • Firefox : Paramètres -> Paramètres réseau -> Configuration manuelle du proxy -> Hôte SOCKS
  • Chrome/Edge : Utiliser les paramètres proxy du système (dépend des paramètres de l'OS)

Utilisation du fichier de configuration SSH (~/.ssh/config)

En définissant à l'avance les paramètres pour l'hôte distant dans le fichier ~/.ssh/config, vous pouvez utiliser la commande de manière plus concise.

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

Exemple d'utilisation du fichier de configuration SSH

ssh -fN myproxy

Après avoir configuré comme ci-dessus, vous pouvez exécuter le proxy avec la commande 'ssh -fN myproxy'.

Arrêt du proxy

Pour arrêter un proxy SSH SOCKS exécuté en arrière-plan, vous devez trouver le processus SSH correspondant et le tuer.

  • ps aux | grep 'ssh -fN -D 8080' (pour trouver l'ID du processus)
  • kill [PID]

Considérations de sécurité

Étant donné que tout le trafic transite par le serveur distant via le proxy SOCKS, il est important de vérifier la sécurité et la fiabilité de ce serveur. L'utilisation d'un proxy via un serveur non fiable présente un risque d'interception ou de manipulation des données.


Commandes de la même catégorie