J'ai finalement réussi à accomplir cela avec ssh
seulement:
- démarrer un proxy SOCKS local sur votre ordinateur client (à l'aide de
ssh -D
)
- se connecter au serveur distant et configurer une redirection de port inverse (
ssh -R
) vers votre proxy SOCKS local
- configurer le logiciel serveur pour utiliser le proxy transféré
1. Démarrez le proxy de chaussettes local en arrière-plan
Connectez-vous à localhost via SSH et ouvrez le proxy SOCKS sur le port 54321.
$ ssh -f -N -D 54321 localhost
-f
exécute SSH en arrière-plan.
Remarque: Si vous fermez le terminal où vous avez démarré la commande, le processus proxy sera tué. N'oubliez pas de nettoyer après vous-même en fermant la fenêtre du terminal lorsque vous avez terminé ou en tuant le processus vous-même!
2. se connecter au serveur distant et configurer la redirection de port inverse
Liez le port distant 6666 au port local 54321. Cela rend votre proxy de chaussettes local disponible pour le site distant sur le port 6666.
$ ssh root@target -R6666:localhost:54321
3. configurer le logiciel serveur pour utiliser le proxy transféré
Configurez simplement yum, apt, curl, wget ou tout autre outil prenant en charge SOCKS pour utiliser le proxy 127.0.0.1:6666
.
Voilá! Tunnelage heureux!
4. facultatif: configurez le logiciel serveur pour utiliser le proxy transféré
J'ai trouvé que l'installation proxychains
sur le serveur cible rend les choses beaucoup plus faciles.
Il permet à n'importe quel logiciel d'utiliser le proxy SOCKS (même telnet
), en utilisant une LD_PRELOAD
astuce pour rediriger les requêtes TCP et DNS de commandes arbitraires vers un proxy.
Configuration /etc/proxychains.conf
pour utiliser le proxy de chaussettes transféré:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
Tunnel outils arbitraires (qui utilisent TCP) avec proxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update