web-dev-qa-db-fra.com

Comment configurer un proxy SOCKS local qui tunnelise le trafic via SSH?

Supposons que j'ai accès à un serveur SSH prenant en charge le tunneling et que je suis sur un PC qui exécute * ubuntu, comment puis-je configurer un proxy SOCKS local qui tunnelise le trafic via ce serveur SSH avant d'accéder à Internet?

29
pzkpfw

Le fichier binaire ssh que vous utilisez lorsque vous vous connectez à un serveur exécutant ssh prend en charge l'exécution d'un proxy SOCKS prêt à l'emploi, avec l'indicateur -D. Exemple:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337 indique à ssh de lancer un serveur SOCKS sur le port 1337 localement.
  • -f place le processus en arrière-plan.
  • -C Active la compression.
  • -q active le "mode silencieux", puisque le but ici est uniquement de tunnelliser, nous ne nous soucions pas vraiment de la sortie d'erreur, etc.
  • -N indique à ssh qu'aucune commande ne sera envoyée (-f se plaint si nous ne spécifions pas cela).
  • -p spécifie quel port utiliser; évidemment, la valeur par défaut est 22 et la déclaration ci-dessus est inutile, mais incluse pour des raisons de clarté.

Lorsque votre serveur SOCKS est opérationnel, vous devez simplement vous assurer que votre application (généralement un navigateur Web) tente de se connecter au proxy SOCKS local et non à Internet.

Dans Firefox 29 (expliqué ici à titre d'exemple), cela se fait en allant dans le menu (les trois saucisses en haut à droite), suivi de Préférences> Avancé> Réseau> (Connexion)> Paramètres ... - assurez-vous uniquement remplissez le champ SOCKS! Étant donné que votre proxy est sur le même système, vous pouvez utiliser localhost ou 127.0.0.1 pour pointer vers le port que vous avez défini sur le même système.

Si vous avez également besoin que vos demandes DNS soient tunnellisées (si ce n’est pas le cas, vos recherches DNS indiqueront les sites Web que vous essayez de visiter), vous pouvez simplement vérifier le "DNS distant" ou effectuer cette configuration complète dans about:config. Dans le dernier cas, ouvrez-le et définissez les valeurs suivantes:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

Vous pouvez également avoir besoin de ce paramètre pour exclure certains domaines ou sites du tunneling:

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

Cette réponse a été écrite depuis la France mais a été tunnelisée via la Suède :)

44
pzkpfw