Préface: Ce que je recherche, ce sont des instructions explicites, dans le même format que ci-dessus. Autrement dit, quelque chose comme exécuter: "... exécuter la commande X sur la machine A, puis la commande Y sur la machine B ..."
J'ai un proxy de chaussettes fonctionnel de mon ordinateur portable (machine A) à la machine B:
[A]$ ssh -ND 8888 B
Je peux configurer Firefox pour utiliser le proxy SOCKS sur le port local de A 8888
et naviguer sur A works. Jusqu'ici tout va bien.
Mais j'ai aussi un proxy de chaussettes entre les machines B et C:
[B]$ ssh -ND 8157 C
Je peux donc naviguer sur B comme si j'étais sur C, en définissant le proxy de chaussettes Firefox de B sur 8157
.
Existe-t-il un moyen de chaîner les deux proxys afin que je puisse utiliser Firefox localement (sur A) tout en utilisant la connexion à C?
Autrement dit, transmettre en quelque sorte toutes les demandes de chaussettes de Firefox de A à C. A et C ne peuvent pas se voir directement, mais j'ai un accès SSH racine complet partout. Toutes les machines sont Debian.
Notez que je ne veux pas transférer un seul port comme le port 80 mais je veux un proxy SOCK entièrement chaîné .
-L 8888:B:8157
sur [A]?ssh -L 8888:B:8157
échoue, nécessite un paramètre de nom d'hôte. Pouvez-vous donner une réponse plus complète et de bout en bout? Si cela fonctionne, j'accepterai.Réponses:
Je viens de confirmer que cela fonctionnait avec certaines machines virtuelles:
De A , vous ouvrez un port tunnel avant de 8888 localement 8157 sur B
-L8888:localhost:8157
. Une fois que vous avez établi une connexion à B, la commande à distancessh -t -D 8157 user@C
est exécuté, ce qui permet à votre proxy SOCKS par C . D'après ce que j'ai lu, «-t» semble être nécessaire, même si je dois encore comprendre pourquoi.Note, ceci est une commande sur le premier hôte qui invoque ssh deux fois, de A-> B et de B-> C . Vous pouvez également diviser cela en commandes distinctes, comme décrit ci-dessous.
Bonus: pour enchaîner trois mandataires ...
C'est à dire
A->B->C->D->Internet
Notez que pour chaque saut, vous avez besoin d'un redirecteur correspondant supplémentaire
-L
sur les hôtes précédents de la chaîne.Références:
la source
L'excellente réponse de glallen en utilisant SSH fera le travail. Cependant, la bonne façon d'y parvenir est d'utiliser le
proxychains
programme. ProxyChains est un outil puissant qui vous permet d'exploiter facilement plusieurs serveurs proxy en même temps. Par exemple, il est utilisé par les pirates informatiques pour cacher leur identité lors de l'exécution d'attaques sur Internet - en enchaînant un tas de procurations à travers le monde, il devient pratiquement impossible à tout enquêteur judiciaire de retracer le trafic jusqu'à eux. Cela ne veut pas dire que vous êtes un pirate malveillant - cela fonctionnera pour de nombreux cas d'utilisation différents. ;)ProxyChains est installé par défaut sur certaines distributions Linux (comme Kali Linux). Sur Ubuntu / Debian, par exemple, vous pouvez facilement l'installer en faisant:
sudo apt-get install proxychains
Proxychains recherche un fichier de configuration dans
/etc/proxychains.conf
. Une fois que vous l'avez installé, sauvegardez le fichier de configuration Proxychains existant (s'il existe) et créez-en un nouveau:mv /etc/proxychains.conf /etc/proxychains-backup.conf
nano /etc/proxychains.conf
Maintenant, collez cet exemple de configuration que j'ai écrit pour vous:
Dans cet exemple,
192.168.1.1
est l'adresse IP du premier serveur proxy SOCKS,8888
est le port que le premier proxy SOCKS écoute,192.168.1.2
est l'adresse IP du deuxième serveur proxy SOCKS,8157
est le port que le deuxième proxy SOCKS écoute, et ainsi de suite.Maintenant, tirez parti des proxychains en le faisant à
proxychains firefox
partir de la ligne de commande pour lancer Firefox. (Assurez-vous que Firefox est fermé en premier.) Maintenant, chaque fois que Firefox établit une connexion sortante, le programme proxychains encapsulera le trafic de sorte qu'il sera mandaté via tous les serveurs que vous avez spécifiés dans ce fichier de configuration. Pour être clair, dans vos préférences Firefox, vous ne devez spécifier AUCUN serveur proxy - les proxychains s'occuperont de tout dans les coulisses.Notez que, à des fins de dépannage, vous devriez probablement essayer de le faire fonctionner en utilisant 1 proxy à la fois avant d'essayer les 3.;)
Références:
proxychains-ng
(une fourchette des chaînes de proxy d'origine qui est en fait encore maintenue en 2015): https://github.com/rofl0r/proxychains-ngla source