Sommaire
Présentation
Le Socks est un protocole permettant de demander à un serveur d'ouvrir des connexions vers une destination et un port spécifiées pour chaque nouvelle connexion.
Par exemple, on peut configurer son navigateur pour utiliser un serveur Socks ; dans ce cas, quand vous voulez aller sur un site, le navigateur va demander au serveur Socks de se connecter à ce site, et vous accéderez au site en passant de façon transparente par le serveur Socks. Ainsi, le site verra une connexion venant du serveur Socks (et non de vous).
Quelques exemples d'utilisation courante :
- Un site dans un réseau interne, inaccessible depuis l'extérieur, mais accessible depuis une machine vers laquelle on peut se connecter en SSH
- Un réseau d'anonymat, comme le réseau Tor : le programme Tor lance un serveur Socks local, et toute connexion passant par ce serveur Socks, passe sur le réseau d'anonymat Tor
- Un partage de connexion Internet pour les flemmards : la machine A a accès à Internet, on lance un serveur Socks basique dessus, et la machine B, connectée en réseau avec A, utilise le serveur Socks de la machine A pour se connecter à Internet
- etc.
Dans ces différents cas, le serveur Socks fait différentes choses :
- Dans le cas du SSH, le serveur Socks va faire passer la connexion à travers le tunnel SSH
- Dans le cas de Tor, le serveur Socks va envoyer la connexion aux serveurs Tor
- Dans le cas de la partage de connexion, le serveur Socks va lui-même se connecter à la destination qu'on lui a demandée
Exemples de serveurs Socks
Serveur Socks SSH
On peut lancer un serveur Socks qui va rediriger les connexions vers une machine (à laquelle on peut se connecter par SSH), et c'est cette machine qui va alors émettre les connexions. La procédure est décrite sur AstucesSsh:Créer un tunnel Socks .
Utilisation d'un serveur Socks
Souvent, la configuration est assez simple, il suffit de chercher, dans le logiciel, la page de paramètres de connexion, et de lui dire d'utiliser le serveur Socks.
Dans Firefox
Menu Edition > Préférences (sous Linux) Menu Outils > Options (sous Windows)
Avancé > onglet Réseau > Paramètres
- Configuration manuelle du Proxy
- Mettre le nom d'hôte et le port du serveur Socks dans Hôte SOCKS
Et tester la connexion ...
Si le serveur Socks n'est pas démarré ou refuse la connexion, Firefox rame un peu et affiche :
La connexion a été refusée par le serveur proxy
Ce message apparaît aussi lorsque d'autre champs que le champ "Hôte SOCKS" contiennent quelque chose. Penser à ne remplir que "Hôte SOCKS" (IP et port).
Avec Foxy Proxy
L'extension Foxy Proxy (très populaire, et accessible sur le site de modules pour Firefox) permet de configurer divers proxies et de changer. Elle peut être très pratique pour ne pas avoir à reconfigurer la connexion à chaque fois.
Il rajoute une petite barre en bas à droite qui permet de choisir quel proxy on veut utiliser; on peut aussi spécifier qu'on veut utiliser tel proxy pour certains sites.
Voici un exemple de configuration :
- On a un serveur Socks en local, sur le port 12345
Dans Firefox, aller dans Outils > Foxy Proxy > Options
- Cliquer sur Ajouter un nouveau proxy
- Lui donner un nom sympa
- Aller dans l'onglet Informations, et remplir les champs : sélectionner Configuration manuelle, mettre localhost comme nom d'hôte, et spécifier le port
Si on valide ainsi, Foxy Proxy affiche un message d'information qui dit que le proxy ne sera pas utilisé. En laissant comme ça, le proxy ne sera utilisé que lorsque l'on spécifie manuellement (avec la barre en bas à droite par exemple) que l'on veut utiliser ce proxy.
Si on veut toujours accéder à certains sites par ce proxy, avant de valider :
- Aller dans l'onglet URL Patterns
- Cliquer sur Ajouter un nouveau motif
Spécifier le motif ; par exemple, pour toujours accéder à yahoo par le proxy, marquer *yahoo.com/* comme motif d'URL (et cocher la case Format > Jokers)
Foxy Proxy a plein d'autres options pratiques, à découvrir par vous-mêmes !
Avec tsocks
tsocks est un logiciel sous Unix permettant d'utiliser (à peu près) n'importe quel logiciel avec un tunnel Socks. Il se démarre "avant" le logiciel en question, et redirige de façon transparente toutes les connexions que le logiciel veut établir vers le serveur Socks.
(Il y a quelques logiciels qui arrivent à contourner (je ne sais pas comment) tsocks. Mais c'est encore très rare.)
Par exemple :
- On a un serveur Socks local, sur le port 12345
- Installer tsocks (il est présent en paquet dans la plupart des distributions bien)
Configurer tsocks dans /etc/tsocks.conf : changer, à la fin du fichier, le serveur (dans l'exemple, mettre server = 127.0.0.1 et server_port = 12345)
Pour lancer un logiciel, comme firefox, avec tsocks, taper
tsocks firefox
Pour lancer un shell avec tscoks, taper juste tsocks