<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de Michauko &#187; ssh</title>
	<atom:link href="http://michauko.org/blog/tag/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://michauko.org/blog</link>
	<description>Si le titre de l&#039;article ne te fait pas mal au crâne, ce blog est pour toi :)</description>
	<lastBuildDate>Tue, 24 Aug 2010 08:45:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tunnels TCP via SSH, putty etc</title>
		<link>http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/</link>
		<comments>http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 08:01:53 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[reseau et sécu]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tunnels]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=181</guid>
		<description><![CDATA[Salut, Je reprends cette doc écrite il y a 5 ans et anciennement disponible en bon gros HTML-vi-powered dispo ici : http://michauko.org/docs/ssh_au_boulot/ Les photos d&#8217;écrans datent de l&#8217;époque. Mais comme le concept n&#8217;a pas bougé&#8230;. et l&#8217;interface de PuTTY très peu aussi&#8230;. Je passe cette doc sur mon blog suite à une discussion sympa sur [...]]]></description>
			<content:encoded><![CDATA[<p>Salut,<br />
Je reprends cette doc écrite il y a 5 ans et anciennement disponible en bon gros HTML-vi-powered dispo ici : http://michauko.org/docs/ssh_au_boulot/<br />
Les photos d&#8217;écrans datent de l&#8217;époque. Mais comme le concept n&#8217;a pas bougé&#8230;. et l&#8217;interface de PuTTY très peu aussi&#8230;.<br />
Je passe cette doc sur mon blog suite à une discussion sympa sur le <a href="http://blog.sckyzo.com/2009/02/13/x11-forwarding-en-ssh-via-putty-windows/">blog de Sckyzo</a><br />
Let&#8217;s go<br />
<em><strong>En relisant l&#8217;article, je vois que c&#8217;était vraiment vulgarisé pour être accessible au plus grand nombre, pardonnez donc les imprécisions techniques et le baratin simplifié &#8211; MERCI</strong></em><br />
<P>&#8211;<P><br />
J&#8217;ai écrit ce document pour 2 raisons. La première est que j&#8217;en ai marre d&#8217;expliquer sans cesse à mes amis cette méthode, la deuxième est que c&#8217;est vraiment une méthode très pratique, puissante et qui n&#8217;a que quelques limitations (et encore – voir chapitre à venir : VPN sur SSH).</p>
<h1>1. Avez-vous besoin de SSH au boulot ?</h1>
<p>Vous êtes 8h par jour au boulot et le proxy chargé de la sécurité de l&#8217;entreprise se charge surtout de vous bloquer quelques sites web et quelques protocoles réseaux à priori non professionnels. En gros, il vous emmerde à longueur de temps et vous aimeriez pouvoir faire les choses suivantes depuis votre boulot :</p>
<ul>
<li>Lire vos mails en POP, IMAP (par un client mail classique plutôt que via le web et l&#8217;interface nullissime de votre fournisseur).</li>
<li>Utiliser Jabber, ICQ, MSN (ou autre protocole) depuis le boulot pour pouvoir rester en contact avec belle-maman.</li>
<li>Prendre le contrôle à distance (VNC, pcAnywhere etc) de votre PC perso avec sa ligne ADSL pour faire je ne sais quoi. D&#8217;autant plus que des outils comme VNC ne gèrent tout simplement PAS les proxys.</li>
<li>Suivre les résultats du football ou consulter un site d&#8217;actualités – en général le proxy bloque largement les sites foot, jeux, facebook et bien d&#8217;autres.</li>
<li>et plein d&#8217;autres choses encore&#8230;</li>
</ul>
<p>Dans ce document, je présenterai le concept ainsi que la mise en oeuvre de la solution (sous Linux ou Windows).</p>
<h1>2. Principe général</h1>
<p>SSH est un outil qui permet de se connecter à une machine distante en mode texte. Sous Linux, on accède à un shell, sous Windows, on pourra voir ça comme l&#8217;accès à une fenêtre DOS, à priori pas très utile, certes. Ca ressemble donc de loin à une connexion telnet, sauf que c&#8217;est laaaaargement plus sécurisé (je n&#8217;en débattrai par ici mais vous pouvez me croire sur parole) et beaucoup plus puissant.<br />
SSH permet notamment de faire du transfert de fichiers (SFTP) et surtout, des tunnels de communication, dans les deux sens (vous comprendrez plus tard). Un tunnel va servir à encapsuler (capturer) des flux réseaux entre le SSH client (votre PC en entreprise avec accès web restreints qu&#8217;on veut contourner) et votre serveur SSH (votre PC à la maison avec ADSL branché 24/24).</p>
<p>Tout se résume à ça : le client SSH établit une connexion avec le serveur SSH à travers le proxy en utilisant une connexion autorisée par le proxy (méthode CONNECT vers un port autorisé). Ensuite, grâce à ça, des tunnels vous permettront de faire passer presque n&#8217;importe quoi à travers le proxy (voir chapitre 4 sur les limitations de ce système).</p>
<p>Le client SSH que j&#8217;utilise est putty (premier lien sur google), c&#8217;est un client libre, gratuit etc, qui permet de faire du telnet, du ssh et surtout d&#8217;utiliser les fonctionnalités de ssh, les tunnels par exemple. Il sait aussi se connecter à travers un proxy.</p>
<h1>3. Mise en place</h1>
<h2>3.1. Côté serveur SSH</h2>
<p>Chez vous, il faut d&#8217;abord installer un serveur SSH.</p>
<h3>3.1.1. Installation</h3>
<p>Sous Linux, vous trouverez forcemment un paquet correspondant à votre distribution. Exemple sous Debian, tapez « apt-get install ssh » et ça devrait le faire.</p>
<p>Sous Windows, c&#8217;est moins simple. Je ne connais pas d&#8217;implémentation libre directement fonctionnelle sous Windows. Et comme vous n&#8217;allez quand même pas payer la version payante de www.ssh.com, vous devrez utiliser www.cygwin.com pour installer un « environnement Linux dans votre Windows ». Cet environnement comprend ensuite la plupart des outils Linux, dont OpenSSH bien sûr. Deux options (au moins) s&#8217;offrent à vous :</p>
<ul>
<li>Installer cygwin de manière classique avec ce qu&#8217;il faut, notamment le paquet ssh (il vous faudra lire un peu de doc à priori).</li>
<li>Utiliser le projet sshwindows qui propose un programme d&#8217;installation global comprenant un cygwin minimaliste et sshd associé. Je n&#8217;ai pas testé personnellement cette solution.</li>
</ul>
<p>Présentation barbare de l&#8217;installation de cygwin : dans les grandes lignes, vous téléchargez le setup.exe puis vous choisissez un miroir de téléchargement, vous installez le minimum vital (par défaut je crois) et vérifiez bien que le paquet ssh est inclus. Au final, vous obtenez une sorte de raccourci façon « fenêtre DOS », sauf que vous êtes dans un environnement Linux et disposez de sa panoplie d&#8217;outils en ligne de commande et même graphique si vous cherchez bien (pour peu que vous ayez installé les paquets qu&#8217;il faut).</p>
<h3>3.1.2. Génération des clefs</h3>
<p>Si vous ne connaissez pas le principe d&#8217;authentification par clefs de SSH, sachez juste que vous devez générer une paire de clefs cryptées utilisées pour la communication entre le serveur et les clients. Même si dans ce document je ne vais pas détailler l&#8217;authentification par clefs, mais juste par mot de passe, cette paire de clefs est nécessaire pour l&#8217;identification du serveur et pour les premières étapes de l&#8217;établissement de la connexion (par mot de passe).<br />
Si vous avez installé SSH sous Debian, le programme d&#8217;installation génère automatiquiment les clefs, pour les solutions, je ne sais pas. Sous cygwin par exemple, vous devrez donc générer ces clefs via la commande « ssh-keygen -t dsa ». Vous pourrez voir ces clefs dans « /etc/ssh », les fichiers sont ssh_host_dsa_key*.</p>
<h3>3.1.3. Etape supplémentaire pour Cygwin</h3>
<p>Un détail sous cygwin (encoooooore), il faut que vous lisiez les docs pour savoir comment lancer le serveur SSH en tant que service Windows plutôt qu&#8217;à la main le matin en partant au boulot&#8230; (cherchez des infos sur le programme cygrunsrv.exe). Pour la version « packagée » par le projet sshwindows, je ne sais pas, lisez la doc.</p>
<p>Sous Linux, ce sera forcemment fait automatiquement.</p>
<h3>3.1.4. Changement du port du serveur SSH</h3>
<p>SSH tourne sur le port 22 par défaut et vous pouvez être quasimment sûr que le proxy du boulot bloque ce port. Donc vous ne pourrez pas atteindre votre serveur depuis chez vous. Ajoutez donc dans le fichier de configuration de sshd (/etc/ssh/sshd_config) une ligne « Port 443 » après la ligne « Port 22 » ou remplacez cette dernière. Redémarrez le service. On choisit le port 443 car c&#8217;est le port https par défaut et le proxy du boulot tolèrera forcemment ce port (au pire, prenez le port 80, http). De plus, https et SSH présentent des similitudes (la couche SSL) et donc utiliser le port 443 a l&#8217;avantage d&#8217;être plus discret (voir chapitre 4.2.).<br />
Si votre firewall le tolère, vous pouvez aussi faire un forward du port 443 vers le 22 en ne laissant que la ligne « Port 22 » dans sshd_config.</p>
<h3>3.1.5. Votre firewall</h3>
<p>Enfin, vous avez certainement chez vous un firewall, n&#8217;oubliez pas d&#8217;ouvrir le port 443 ou 22 (voir chapitre précédent).<br />
Vous avez très probablement aussi une adresse IP dynamique et donc il faut que vous vous trouviez un nom de domaine (essayez www.dyndns.org, ils ont un service gratuit et vous aurez un nom du style chezmoi.dyndns.org mis à jour à chaque reconnexion de votre ADSL). Sinon, vous devrez récupérer votre adresse IP tous les matins et priez pour que l&#8217;ADSL ne tombe pas auquel cas vous risqueriez de changer d&#8217;IP.</p>
<p>Je suppose maintenant que votre serveur est lancé, accessible depuis l&#8217;extérieur et qu&#8217;il fonctionne correctement.</p>
<h2>3.2. Côté client SSH</h2>
<h3>3.2.1. Récupération des paramètres proxy</h3>
<p>Pour les utilisateurs d&#8217;Internet Explorer, allez dans Outils -> Options Internet -> Connexions -> Paramètres réseaux. Vous aurez 2 possibilités, soit l&#8217;adresse et le port sont directement écrit :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel1.png" alt="tunnel1" title="tunnel1" width="384" height="361" class="alignnone size-full wp-image-194" /></p>
<p>Soit votre entreprise utilise un script d&#8217;autoconfiguration :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel2.png" alt="tunnel2" title="tunnel2" width="384" height="361" class="alignnone size-full wp-image-196" /></p>
<p>Dans ce dernier cas, téléchargez ce script en recopiant l&#8217;adresse dans votre navigateur. Ouvrez-le, c&#8217;est un fichier texte. C&#8217;est simple à comprendre et en général, les dernières lignes vous donnent le proxy qui permet d&#8217;atteindre les sites extérieurs (Internet). La fin ressemble à quelque chose comme « PROXY host:port ».</p>
<p>Si vous utilisez un autre navigateur (je l&#8217;espère pour vous <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , vous saurez sûrement où trouver ces informations.</p>
<h3>3.2.2. Installation de putty (client SSH)</h3>
<p>Téléchargez putty. Il n&#8217;y a pas d&#8217;installation, pas besoin d&#8217;être admin de son poste. Vous n&#8217;avez besoin que de putty.exe sinon prenez le zip qui contient tous les binaires. Le paramétrage se fait comme suit :<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel3.png" alt="tunnel3" title="tunnel3" width="426" height="435" class="alignnone size-full wp-image-197" /></p>
<p>Vous saisissez dans le menu « Session » l&#8217;adresse du PC chez vous (IP ou DNS), précisez le protocole SSH et modifiez le port où tourne le serveur SSH (443 à priori – voir chapitres précédents).</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel4.png" alt="tunnel4" title="tunnel4" width="426" height="435" class="alignnone size-full wp-image-198" /></p>
<p>Dans le menu « Connection », activez l&#8217;envoi de paquets vides réguliers, toutes les 10 secondes par exemple. La connexion SSH se faisant via la méthode CONNECT (comme pour du https), le proxy risque fort de la couper régulièrement si aucun trafic n&#8217;est généré.<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel5.png" alt="tunnel5" title="tunnel5" width="426" height="435" class="alignnone size-full wp-image-200" /></p>
<p>Dans le menu « Proxy », vous indiquez le type de proxy, à priori HTTP, son adresse, son port et l&#8217;utilisateur/mot de passe si besoin. La ligne « telnet command » représente en gros le début de la communication entre putty et le proxy pour permettre la connexion au serveur distant (le PC chez vous). Tentez la ligne suivante : « connect %host %port HTTP/1.1\nHost: %host » si la ligne par défaut ne fonctionne pas.</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel6.png" alt="tunnel6" title="tunnel6" width="426" height="435" class="alignnone size-full wp-image-201" /></p>
<p>Enfin, dans le menu « SSH », vous précisez que vous utilisez le protocole en version 2 et activez la compression – c&#8217;est toujours ça de gagné.</p>
<p>Retournez dans le menu « Session », donnez un nom à votre session et faites « Save » à nouveau. Puis « Open ».</p>
<h3>3.2.3. Le moment de vérité</h3>
<p>Faites « Open », si tout va bien, vous obtiendrez un écran du genre :<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel7.png" alt="tunnel7" title="tunnel7" width="278" height="106" class="alignnone size-medium wp-image-203" /></p>
<p>Connectez vous et ça roule. Dans les autres cas, vérifiez bien les informations saisies et éventuellement changez le type de proxy. Parmi les 25 entreprises que j&#8217;ai pu visiter (grandes multinationales comprises), seules 2 ont refusé cette connexion, la première car le proxy était un logiciel merdico-archaïque de Microsoft qui avait déjà du mal à fonctionner normalement avec IE, la deuxième car le proxy était buggé et avait l&#8217;air de ne pas respecter le protocole « normal » entre putty et le serveur ssh (d&#8217;après les traces que j&#8217;ai analysées, le serveur SSH était atteint puis tout partait n&#8217;importe comment).</p>
<p>A ce niveau là, si la connexion est établie et que vous pouvez accéder à votre machine, c&#8217;est banco, vous pourrez « tuyauter » n&#8217;importe quoi via SSH <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>3.3. Les tunnels</h2>
<h3>3.3.1. Créer un port mapping</h3>
<p>Dans le menu « Tunnels », créez un tunnel vers vos serveurs de messagerie (ATTENTION, lisez le chapitre 4.1.3 à propos du forward de messagerie) :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel8.png" alt="tunnel8" title="tunnel8" width="426" height="435" class="alignnone size-full wp-image-205" /></p>
<p>Cette fois-ci, lorsque la fenêtre putty sera ouverte et que vous serez signé sur le serveur SSH, il y aura eu création d&#8217;un port mapping du port local 10110 du poste client vers le port 110 du serveur POP de votre provider (le tout via le relai SSH <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Idem pour les ports 10025/smtp:25. J&#8217;ai choisi des numéros de ports locaux (10110 et 10025) différents des vrais ports notamment pour la compréhension. Rien (ou presque) ne vous empêcherait de mapper les port 25 et 110 vers les ports 25 et 110 des serveurs POP et SMTP de monprovider.com.</p>
<p>Ca veut dire que si un programme de messagerie (mozilla, thunderbird, outlook express, lotus notes etc) s&#8217;adresse à votre propre machine (localhost) sur le port 10025, c&#8217;est bien le serveur SMTP de monprovider.com:25 qui répondra. Idem pour le port 10110/110, c&#8217;est le serveur POP qui répondra. A partir de là, configurez votre client mail en indiquant que les serveurs POP et SMTP de monprovider.com sont respectivement localhost (sur port 10110) et localhost (sur port 10025).<br />
Lorsque le client mail fera une requête, c&#8217;est putty qui interceptera la communication et dira au serveur d&#8217;effectuer la requête à partir de l&#8217;autre bout du tunnel vers le serveur:port précisé. Et voilà ! (j&#8217;espère que c&#8217;est clair <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Attention : vérifiez bien que votre client mail n&#8217;utilise aucun proxy pour les connexions locales ! (exemple : « outlook express » utilise la configuration de IE, veillez bien à cocher dans IE la case qui précise de ne « pas utiliser de proxy pour les connexions locales », ça devrait être fait par défaut).</p>
<p>Avec un beau schéma, ça donne ça :<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel9.png" alt="tunnel9" title="tunnel9" width="710" height="476" class="alignnone size-full wp-image-209" /><br />
Maintenant que vous savez faire ça, vous pouvez mapper n&#8217;importe quoi et vous coimprendrez rapidement que le port mapping n&#8217;est pas la solution pour tous les problèmes. Exemple, si vous voulez faire de l&#8217;IRC, le serveur que vous joindrez ne sera pas toujours le même suivant les réseaux que vous voulez utiliser.</p>
<h3>3.3.2. Tunnel dynamique (pour ICQ par exemple)</h3>
<p>La limitation des port mapping apparaît rapidement car il faut définir absolument toutes les connexions dont vous avez besoin, ce qui peut être très lourd. Imaginez que vous vouliez mapper certains sites web interdits, comme www.pleindetrucsinterdits.com. Vous n&#8217;avez qu&#8217;à créer un port mapping du style « localhost:12345 -> www.pleindetrucsinterdits.com:80 ». Ca fonctionne – pas dans tous les cas à cause des « virtual hosts » (Merci Toine) &#8211; mais il ne faut pas avoir 50 sites à mapper sinon c&#8217;est l&#8217;enfer.</p>
<p>Une autre limitation est que vous ne pouvez tout simplement pas de cette manière vous connecter à certains services comme ICQ par exemple : en effet, vous pourriez faire un port mapping vers le serveur d&#8217;authentification login.icq.com:5190 par exemple, mais le reste de la communication ne se fera pas car il y a ensuite tout un tas de ports dynamiques alloués qui entrent en jeu. Impossible donc.</p>
<p>La solution est le mapping dynamique. En gros, vous créez un port d&#8217;écoute (port 1080 dans la suite du texte) qui se charge de prendre toute trame réseau qui rentre telle quelle et de la « faire exécuter » depuis l&#8217;autre bout du tunnel. Ca ressemble à un proxy n&#8217;est-ce pas ? En effet, c&#8217;est bien un service que l&#8217;on utilise pour contacter n&#8217;importe quel site/port inaccessible depuis le réseau où l&#8217;on est. C&#8217;est pas beau ça ?<br />
Ca veut notamment dire que dans l&#8217;application qui doit utiliser ce « proxy », vous devez préciser que le nouveau proxy est localhost:1080 et non pas le proxy de l&#8217;entreprise.</p>
<p>Dans putty, créez un tunnel « Dynamic » sur le port 1080 par exemple :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel10.png" alt="tunnel10" title="tunnel10" width="282" height="165" class="alignnone size-full wp-image-211" /></p>
<p>Ca donne ça :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel11.png" alt="tunnel11" title="tunnel11" width="275" height="125" class="alignnone size-full wp-image-212" /></p>
<p>Et globalement, on peut donc schématiser ça comme ça :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel12.png" alt="tunnel12" title="tunnel12" width="713" height="482" class="alignnone size-full wp-image-213" /></p>
<p>ATTENTION : une fois ce système mis en place, n&#8217;oubliez pas de dire à l&#8217;application concernée que le proxy pour sortir n&#8217;est plus le proxy de l&#8217;entreprise mais le « proxy » de type SOCKS 4 (si vous avez besoin de le préciser) situé sur localhost, port 1080 ! Pigé ?</p>
<p><strong>(MAJ 2009)</strong><br />
Si vous n&#8217;arrivez pas à faire utiliser ce proxy à votre navigateur, pourquoi ne pas installer un vrai proxy sur votre serveur relai et le mapper via un tunnel normal ? (un &#8220;squid&#8221; local à votre serveur relai fera l&#8217;affaire)</p>
<h3>3.3.3. Tunnel remote ? Ou comment exporter un serveur local (interne) vers l&#8217;extérieur</h3>
<p>Enfin, sur l&#8217;interface de putty, vous avez peut-être remarqué une fonctionnalité inexplorée jusqu&#8217;à présent : les tunnels « remote », par opposition aux tunnels « locaux ». Ca permet non pas de mapper un port local vers un couple machine/port distant mais de faire l&#8217;inverse : mapper un couple machine/port local vers un port distant (sur la machine PC ADSL). Vous ne voyez pas à quoi ça peut servir ? Lisez la suite :</p>
<p>Attention : c&#8217;est mal de faire ça <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  car ça vous permet de rendre accessible un serveur d&#8217;Intranet (par exemple) à partir de votre machine extérieure (PC ADSL) et donc potentiellement accessible à tout le monde depuis le web si vous ne faites pas attention à votre configuration réseau !</p>
<h1>4. Compléments d&#8217;informations</h1>
<h2>4.1. Limitations</h2>
<h3>4.1.1. Bande passante</h3>
<p>Gardez à l&#8217;esprit que vous faites tout passer par la machine chez vous, certainement plus lente en débit que l&#8217;accès web de l&#8217;entreprise notamment pour l&#8217;upload (le retour de communication de votre PC ADSL vers putty). Donc si vous mappez des sites web interdits, ne vous étonnez pas si ça raaaaame, surtout si votre client favori de peer-to-peer tourne plein pot&#8230;</p>
<h3>4.1.2. Jouer en réseau ?</h3>
<p>Décidemment, votre boulot vous passionne&#8230; Bon désolé, c&#8217;est pas possible. La plupart des jeux en réseaux fonctionnent en mode non connecté (UDP) et c&#8217;est pas possible de relayer de l&#8217;UDP avec cette solution. Si vous voulez quand même, cherchez des infos sur un soft qui s&#8217;appelle ZeBeDee, j&#8217;avais pas eu le temps de creuser à l&#8217;époque.</p>
<p><strong>(MAJ 2009)</strong> Sinon, pensez VPN, hamachi&#8230;</p>
<h3>4.1.3. Remarques sur la messagerie</h3>
<p>A propos du mapping vers des serveurs de messagerie, notez que les fournisseurs bloquent en général l&#8217;accès à leur propre SMTP si l&#8217;IP émettrice n&#8217;est pas sur une plage appartenant à l&#8217;opérateur. Pour éviter le spam d&#8217;inconnus. Donc évitez de passer par le SSH d&#8217;un copain ayant son accès web chez un autre fournisseur pour atteindre votre SMTP, ça risque de ne pas fonctionner. Exemple : vous voulez utiliser le SMTP de wanadoo en passant par une passerelle SSH chez Nerim.</p>
<p>Dans le même ordre d&#8217;idées, il faut en général faire du POP avant de pouvoir envoyer un mail, ça s&#8217;appelle pop before smtp me semble-t-il et c&#8217;est aussi fait pour s&#8217;assurer à peu près que l&#8217;adresse IP de l&#8217;émetteur du mail n&#8217;est pas un inconnu car il s&#8217;est authentifié par un login/password pour accéder au POP.</p>
<h2>4.2. « Légalité » de la chose</h2>
<p>Si vous avez peur qu&#8217;un gros baraqué de l&#8217;équipe réseaux débarque dans votre bureau en disant « qui c&#8217;est l&#8217;abruti qui fait du SSH ? », n&#8217;ayez pas peur.<br />
Premièrement, la connexion au serveur SSH ne se traduit que par une ligne dans les logs du proxy, une ligne du style « CONNECT votrenom.dyndns.org:443 », exactement comme si vous vous connectiez au site https de votre banque. C&#8217;est même mieux vu qu&#8217;il n&#8217;y aura qu&#8217;une ligne alors que pour un vrai site web en http(s), il y a aura une ligne par ressource (image, page web etc).<br />
Deuxièmement, au niveau volumétrie de données échangées, étudions l&#8217;exemple de la lecture de vos mails : on utilise grâce au tunnel SSH un protocole dédié à la lecture de mail et l&#8217;envoi (POP/SMTP). Ca consommera laaaaaaaargement moins de bande passante que de lire les même mails par l&#8217;interface web (bourrée de pubs par exempe). De plus, comme ça ramera moins que le chargement complet de pages web, vous mettrez moins de temps à lire vos mails.<br />
Rassuré ?<br />
Une nuance tout de même, si un psychopathe réalise qu&#8217;il s&#8217;agit de SSH sur port 443 et non de HTTPS, il devrait se poser des questions tout de même. Je n&#8217;ai pas encore rencontré de tels psychopathes.</p>
<p>Enfin, rappelez vous quand même la charte informatique que vous avez signée en rentrant dans votre entreprise.</p>
<h2>4.3. Partage de tunnels ?</h2>
<p>Si vous souhaitez faire profiter de votre tunnel un collègue qui tient absolument à suivre aussi le match de football bloqué par le proxy, regardez les options de putty/ssh pour permettr l&#8217;accès aux ports mappés depuis autre part que votre poste local. Exemple : votre collègue entrerait l&#8217;adresse ip de votre machine et un port mappé pour accéder à un site web particulier&#8230;</p>
<h2>4.4. Bug dans putty</h2>
<p>Je ne sais pas si ce bug est toujours d&#8217;actualité, mais à un moment donné, il fallait absolument mettre le tunnel dynamique en dernier dans la liste des tunnels, sinon il ne fonctionnait pas.</p>
<h2>4.5. Transfert de fichier ?</h2>
<p>Installez filezilla, il permet de faire du SFTP. Vous n&#8217;aurez pas besoin de tunnels SSH mais je tenais à signaler cet outil, libre, gratuit etc etc.<br />
Il vous suffit de déclarer le proxy de l&#8217;entreprise dans les préférences puis de créer une connexion de type SFTP (changez le port en 443) et le tour est joué.</p>
<p>Sinon, sous Windows, le produit commercial « Total Commander » permet d&#8217;utiliser votre tunnel dynamique (SOCKS 4).</p>
<h2>4.6. Méthodes alternatives</h2>
<p>Si SSH ne vous plait pas (pauvre fou), vous pouvez toujours vous renseigner sur les outils suivants : httport, httptunnel (linux only je crois). Ils font un peu le même genre de choses, mais en laaaaaaaargement moins bien.<br />
Les deux encapsulent votre trafic réseau dans des trames HTTP, c&#8217;est lourd, c&#8217;est lent etc. Le seul avantage de httport est que les éditeurs vous fournissent des serveurs (htthost) publics, donc pas besoin d&#8217;avoir un serveur relai chez vous ou chez un ami, mais ils rament, sauf si vous payez <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Quitte à mettre en place un outil pour faire relai, optez pour SSH !<br />
<strong>(MAJ 2009)</strong><br />
A noter stunnel pour faire du tunnel SSL pur (si votre admin réseau a grillé votre communication SSH sur un port SSL&#8230;<br />
<strong>(MAJ 2009)</strong><br />
Quelques liens récemment donnés par Toinator et que je n&#8217;ai pas creusé. Lui oui, c&#8217;est du lourd apparement.<br />
Un bon gros guide :<br />
<a href="http://dag.wieers.com/howto/ssh-http-tunneling/">http://dag.wieers.com/howto/ssh-http-tunneling/</a><br />
sslh : en PERL (fixme : retrouver l&#8217;url)<br />
<a href="http://www.rutschle.net/tech/sslh.shtml">sshl</a> : le même recodé en C pour raisons d&#8217;optimisations<br />
<h1>5. Remerciements</h1>
<ul>
<li>Toinator pour la relecture et quelques précisions, l&#8217;initiation à ce genre d&#8217;outils et le chapitre à venir sur le VPN over SSH, si on peut dire.
</li>
<li>Mandraxe</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Orange Business Everywhere : pour les costards-cravates avant tout&#8230;</title>
		<link>http://michauko.org/blog/2008/08/06/orange-business-everywhere-pour-les-costards-cravates-avant-tout/</link>
		<comments>http://michauko.org/blog/2008/08/06/orange-business-everywhere-pour-les-costards-cravates-avant-tout/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 17:16:13 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[coup de gueule]]></category>
		<category><![CDATA[reseau et sécu]]></category>
		<category><![CDATA[orange business everywhere]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=143</guid>
		<description><![CDATA[La loose&#8230;. pour dépanner à distance pendant mes congés (sympa le mec non ?), j&#8217;ai installé cet accès 3G-edge-++-gprs-truc-machin de chez Orange. Génial, je teste avant de quitter le bureau, c&#8217;est mieux. Lancement d&#8217;une connexion SSH&#8230;.. timeout&#8230; Deux/trois tests plus tard, je vois le plan : ok pour les ports standards de bureautik-man à la [...]]]></description>
			<content:encoded><![CDATA[<p>La loose&#8230;. pour dépanner à distance pendant mes congés (sympa le mec non ?), j&#8217;ai installé cet accès 3G-edge-++-gprs-truc-machin de chez Orange. Génial, je teste avant de quitter le bureau, c&#8217;est mieux. Lancement d&#8217;une connexion SSH&#8230;.. timeout&#8230;<span id="more-143"></span></p>
<p>Deux/trois tests plus tard, je vois le plan : ok pour les ports standards de bureautik-man à la plage (lire ses mails, naviguer sur Internet) mais le reste&#8230;.. zob.<br />
En gros, j&#8217;ai pu voir vite fait que ça passait pour les ports 80, 443, 465, 993 et 1194. Le reste j&#8217;ai pas cherché. A tous les coups, le 25, 143, 110 doivent passer aussi. Sans compter la miriade de saloperies de ports réseaux d&#8217;un Exchange / Active Dir. Ca doit marcher aussi, sinon comment faire pour vite vite reprendre sa propale depuis son transat ?</p>
<p>Alors bon, le VPN passe, donc c&#8217;est bon me direz-vous. Justement pas. S&#8217;il s&#8217;agit de dépanner le VPN ou si vous avez mis des restrictions sur le VPN (histoire que le VPN ne soit pas nécessairement une énorme porte ouverte dans l&#8217;entreprise), ça vous fait une belle jambe que le VPN fonctionne.</p>
<p>Conclusions :<br />
1) Obligé de se taper des SSH sur port 443, des tunnels à gogo lorsque le VPN est trop restrictif&#8230;<br />
2) Tu parles d&#8217;un accès web, tu peux même pas faire ce que tu veux. Pourtant, dès lors que le port 25 est ouvert, si la motivation principale est comme d&#8217;hab d&#8217;endiguer le spam des zombies etc, franchement, le mal est fait. Ca sert à rien de bloquer le reste.<br />
3) Ou alors j&#8217;ai raté une conf quelque part pour ouvrir le port 22 ? je doute</p>
<p>C&#8217;est mes yeux ou c&#8217;est vraiment de l&#8217;accès restreint ce genre de connexion ?</p>
<p>Enfin, bientôt en vacances, c&#8217;est déjà ça&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/08/06/orange-business-everywhere-pour-les-costards-cravates-avant-tout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSHFS</title>
		<link>http://michauko.org/blog/2008/01/18/sshf/</link>
		<comments>http://michauko.org/blog/2008/01/18/sshf/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 13:44:27 +0000</pubDate>
		<dc:creator>ours</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[autres outils]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[fstab]]></category>
		<category><![CDATA[fuse]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sshfs]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/2008/01/18/elle-seche-ses-fesses/</guid>
		<description><![CDATA[En fait, il s&#8217;agit d&#8217;un cas d&#8217;utilisation de FUSE (Filesystem in User SpacE) avec SSH (Secure SHell). Pour faire simple, FUSE permet de créer à un utilisateur non root de créer ses propres systèmes de fichier virtuels, pour accéder un peu à n&#8217;importe quoi: le contenu d&#8217;une image de CD, le contenu d&#8217;un dossier stocké [...]]]></description>
			<content:encoded><![CDATA[<p>En fait, il s&#8217;agit d&#8217;un cas d&#8217;utilisation de FUSE (<a href="http://michauko.org//en.wikipedia.org/wiki/Filesystem_in_Userspace" title="FUSE on Wikipedia">Filesystem in User SpacE</a>) avec SSH (<a href="http://www.openssh.org" title="OpenSSH web site">Secure SHell</a>).<br />
<br />
Pour faire simple, FUSE permet de créer à un utilisateur non root de créer ses propres systèmes de fichier virtuels, pour accéder un peu à n&#8217;importe quoi: le contenu d&#8217;une image de CD, le contenu d&#8217;un dossier stocké sur un serveur distant.<br />
<br />
Dans le cas qui nous intéresse, le but est d&#8217;accéder à un dossier distant accessible uniquement via SSH/SFTP, afin de travailler dessus comme si nous étions en local, sur notre cher ordinateur personnel fonctionnant sous <a href="http://www.debian.org">Debian GNU/Linux</a> (au moins la dernière version stable: Etch, avec un kernel Linux version 2.6.14 ou plus récent).
</p>
<p><span id="more-102"></span></p>
<h3>Paquets requis:</h3>
<ul>
<li>pour la partie FUSE (gérée par le kernel):  <code>fuse-utils</code> et <code>fuse-source</code> (si vous utilisez un noyau custom) ;</li>
<li>pour sshfs, <code>sshfs</code>.</li>
</ul>
<h3>La config de base, step by step:</h3>
<ol>
<li>ouvrir un terminal ;</li>
<li>se logguer en root (<code>su -</code>);</li>
<li><code>aptitude install fuse-utils sshfs</code> (ça devrait aussi installer <code>libfuse2</code> qui est une dépendance de <code>fuse-utils</code>);</li>
<li>éventuellement <code>aptitude install fuse-source</code>, puis <code>module-assistant build fuse</code>, &#8230; (mais bon, ça vous avez l&#8217;habitude non?);</li>
<li>faire en sorte que les utilisateurs de l&#8217;ordinateur qui utiliseront FUSE/sshfs fassent partie du groupe <i>fuse</i> (<code>adduser leloginquivabien fuse</code>);</li>
<li>éventuellement, chargez le module <i>fuse</i> (<code>modprobe fuse</code>).</li>
</ol>
<p>Et voilà!
</p>
<h3>Utilisation à la mano, en ligne de commande:</h3>
<p>
C&#8217;est assez simple, dans votre terminal il vous suffit de taper une commande dont le synopsis est:</p>
<ul> <code>sshfs login@server:/chemin/du/dossier /point/de/montage [ -o idmap=user ]</code></p>
<li> <code>login</code> est votre identifiant sur le serveur distant</li>
<li> <code>server</code> est le nom du serveur distant ou son adresse IP</li>
<li><code>/chemin/du/dossier</code>&#8230; facile <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li><code>/point/de/montage</code> l&#8217;endroit sur votre ordinateur où vous voulez trouver vos fichiers distants.</li>
<li><code>-o idmap=user</code> est utile uniquement si vos ID utilisateurs sont différents sur le serveur et votre machine, ça vous permet d&#8217;avoir un résultat lisible quand vous faire un <code>ls -l</code> dans <code>/point/de/montage</code> &#8230;</li>
</ul>
<p>Donc, par exemple, je peux faire <code>sshfs guillaume@guillaume.theflyingbear.net:/home/guillaume/public_html ~/mon_site</code> pour accéder dans le répertoire <code>mon_site</code> à ma p&#8217;tite page ouaib.<br />
Plus dangereux, je peux faire <code>sshfs root@un_serveur:/etc /qqpart</code> pour accéder au répertoire <code>/etc</code> d&#8217;un serveur mal configuré <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />
</p>
<h3>Trucs et astuces (imaginez les bricol girls ou les garage babes vous l&#8217;annonçant, c&#8217;est plus sexy&#8230;)</h3>
<p>
<code>sshfs</code> vous demandera le mot de passe qui correspond à votre login sur le serveur distant à chaque fois que vous voudrez monter votre répertoire distant. Pour éviter cela, vous pouvez utiliser l&#8217;authentification par clef de SSH, en utilisant une clef sans phrase secrète (ssh-keygen(1) est votre ami)&#8230;
</p>
<h3>TODO</h3>
<p>Utilisation de FUSE+sshfs avec <code>mount</code> et le le fichier <code>/etc/fstab</code></p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/01/18/sshf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
