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.