14/05/2009

Le tunnel SSH facile

tunnel-sshUn tunnel SSH permet d’utiliser n’importe quel serveur SSH comme proxy. C’est une alternative intéressante à certaines utilisations d’un VPN (et bien plus facile à mettre en oeuvre):

  • Accéder au réseau local du serveur SSH
  • Se balader sur internet avec l’IP du serveur SSH
  • Contourner un firewall trop restrictif
  • Sécuriser ses communications sur un réseau public douteux

Roidelapluie m’a aujourd’hui montré à quel point il était facile de créer un tunnel SSH remplissant ces fonctions.

Le serveur proxy

laptopPrérequis : un accès utilisateur sur un serveur SSH. J’appellerai client l’ordinateur sur lequel vous êtes et serveur le serveur SSH.

L’idée générale est donc de faire tourner sur le client un serveur proxy relayant toutes les connexions vers le serveur. Cela se fait en une seule commande:

ssh -ND 9999 utilisateur@serveur

Une fois authentifié sur le serveur SSH, laissez l’invite de commande tourner. Vous avez désormais un serveur proxy SOCKS (compatible v4 et v5) tournant sur localhost:9999

Les applications clientes

Vous pouvez maintenant simplement régler votre système, votre navigateur ou toute autre application pour utiliser un serveur proxy SOCKS, uniquement SOCKS. Vous pouvez par exemple vérifier que ça a bien fonctionné pour Firefox en comparant votre IP avant et après.

your-ip

Si le logiciel que vous souhaitez faire passer dans le tunnel ne supporte pas les proxys ou que vous voulez quelque chose de plus universel qu’un réglage logiciel au cas par cas, vous pouvez installer proxychains. Modifiez la dernière ligne de /etc/proxychains.conf pour qu’elle ressemble à ceci:

socks5 127.0.0.1 9999

Il suffit ensuite de lancer l’application en ajoutant proxychains avant la commande:

proxychains links2 "http://myip.dk"
  1. | #1

    Ah, je connaissais pas cette possibilité avec ssh, perso, je tape cette commande :
    ssh -N -f @ -L::
    Ceci permet de créer un tunnel ssh avec comme entrée localhost: et comme sortie à destination de :
    Ca peut être utile pour lire ses mails par exemple ou pour faire mumuse avec un script perso et co… J’utilise ça pour faire par exemple du tunnel ssh dans du tunnel ssh dans ma fac où il est impossible de sortir en ssh du réseau local autrement qu’en passant par leurs serveurs (oui, je sais, leur vision de la sécurité est étrange).

    Niveau tunnel, ocmme je l’ai dit dans un autre commentaire, il pourrait être intéressant de parler une fois de ip over dns et http tunneling qui peuvent dépanner dans certaines conditions…

    Fred

  2. brik anas
    | #2

    bonjour S’il vous plaît je veaux un exposée parle en monter un réseau local avec un Windows 2003 Server étape étape et merci

  3. | #3

    @brik anas Désolé nous ne présentons que des solutions Open Source et Libre. Google est ton ami j’imagine

  4. Paul
    | #4

    Bonjour,

    Je cherche à faire un tunnel SOCKS5 sur de l’IPV6, mais ca ne fonctionne pas:
    ssh -6 -D 8180 -p 443 root@2001:xxx:1f06:142::2

    curl –socks5 localhost:8180 http://www.google.fr –> host not found

    En IPV4, le tunnel fonctionne.

    Des idées?

    Merci

  5. | #5

    Pour faire d’un poste Windows un serveur SSH il reste, à ma connaissance, FreeSSHD, MobaSSH et CopSSH (le dernier étant une implémentaion d’OpenSSH et de Cygwin). Mais il sont, a part MobaSSH, assez vieux mais peut-être qu’ils sont toujours fonctionnels sous windows 7 et 8.

  1. | #1
  2. | #2
  3. | #3