Pour faire suite à ce billet (et à la discussion qui a suivi), à propos de l’utilisation du SSH comme serveur SOCKS4, afin de naviguer un peu plus sécuritairement, voici quelques astuces supplémentaires quant à son utilisation.
Tout d’abord, le port d’écoute par défaut d’un serveur ssh est le port 22. Mais ce n’est pas un absolu. On peut indiquer à notre serveur, d’écouter sur un autre port, ou bien sur plusieurs ports à la fois. Un port intéressant à choisir est le 443.
Pourquoi ce port? Tout simplement parce que c’est le port par défaut du web sécurisé (HTTP interroge sur le port 80 et HTTPS sur le port 443). Donc si le café bloque tous les ports à l’exception de ceux destinés au web (80 et 443), personne ne sera étonné d’avoir un flux crypté (notre connexion ssh) sur le port 443.
Alors, comment faire? Tout d’abord, on présume qu’un serveur ssh est déjà installé dans votre ordinateur à la maison, si ce n’est déjà fait, voici la commande à écrire dans un terminal:
sudo apt-get install openssh-server
Ensuite on doit indiquer à notre serveur ssh d’écouter sur un autre port. Dans un terminal:
sudo gedit /etc/ssh/sshd_config
On recherche
# What ports, IPs and protocols we listen for
Port 22
Et on écrit sous Port 22, Port 443. Ce qui donne:
# What ports, IPs and protocols we listen for
Port 22
Port 443
On enregistre et on redémarre le serveur ssh
sudo /etc/init.d/ssh restart
On peut donc maintenant refaire l’astuce avec la commande:
ssh -D1111 -p443 username@hostname
Avec un serveur mandataire.
Que faire maintenant si tout le trafique internet est filtré par un serveur mandataire (proxy)? Disons que l’on veuille accéder à notre compte bancaire et tout le trafic est filtré par un ordinateur que nous ne contrôlons pas.
Prenons le cas d’un serveur mandataire fonctionnant sous squid. Par défaut l’adresse d’écoute de serveur est le 3128 et le nom du mandataire est proxy.local.
Il faut maintenant installer une application qui nous permettra de passer notre connexion ssh à travers le serveur mandataire. On installe corksrew
sudo apt-get install corkscrew
On peut donc maintenant refaire l’astuce avec la commande dans un terminal:
ssh -D1111 -p443 username@hostname -o"ProxyCommand corkscrew proxy.local 3128 %h %p"
Et si le mandataire nécessite un login et un mot de passe:
ssh -D1111 -p443 username@hostname -o"ProxyCommand corkscrew proxy.local 3128 %h %p login motdepasse"
Ne pas oublier de laisser la fenêtre ouverte et de renseigner Firefox (Édition -> Préférences -> Avancé -> Réseau -> Paramètres) afin qu’il utilise un proxy de type SOCKS ayant comme nom d’hôte localhost sur le port 1111.
Cette astuce permettrait même de naviguer dans des sites interdits par le serveur mandataire, il ne pourrait pas filtrer votre trafic, puisqu’il serait crypté et sur le port 443, ce qui serait normal pour lui après tout!
Commentaires