<?xml version="1.0" encoding="UTF-8"?>
<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>Trux &#187; ssh</title>
	<atom:link href="http://trux.info/tag/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://trux.info</link>
	<description>Partage de mes astuces et découvertes</description>
	<lastBuildDate>Tue, 09 Jun 2009 19:47:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reverse SSH, ou comment se faufiler entre NAT et Firewall</title>
		<link>http://trux.info/2009/05/reverse-ssh-ou-comment-se-faufiler-entre-nat-et-firewall/</link>
		<comments>http://trux.info/2009/05/reverse-ssh-ou-comment-se-faufiler-entre-nat-et-firewall/#comments</comments>
		<pubDate>Fri, 15 May 2009 06:58:35 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://trux.info/?p=122</guid>
		<description><![CDATA[ssh est un outil merveilleux : il permet de se connecter à un hôte et exécuter des commandes à distances de manière sécurisée.
Il permet également de tunneler un port local vers un port distant d&#8217;une autre machine. Ainsi tout ce qui est envoyé sur le port local va être transmis au port distant via la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.openssh.com/">ssh</a> est un <a href="http://doc.ubuntu-fr.org/ssh">outil merveilleux</a> : il permet de se connecter à un hôte et exécuter des commandes à distances de manière sécurisée.</p>
<p>Il permet également de tunneler un port local vers un port distant d&#8217;une autre machine. Ainsi tout ce qui est envoyé sur le port local va être transmis au port distant via la communication ssh sécurisée. Cette manipulation s&#8217;avère très pratique pour sortir d&#8217;un réseau dont seuls les ports 22 et 80 sont ouverts.</p>
<p>Je viens d&#8217;apprendre récemment comment faire l&#8217;inverse : tunneler un port d&#8217;une machine distante vers un port d&#8217;une machine locale. Ainsi tout ce qui est envoyé sur le port de la machine distante va être transmis au port de la machine locale. En résumé, si votre machine locale est sur un réseau protégé par un NAT et un firewall, çette manipulation met en place une backdoor vers le réseau protégé.<br />
<span id="more-122"></span><br />
Par exemple, vous avez une machine, nommée dest, qui est sur un réseau NATé protégé par un firewall. On ne peut pas s&#8217;y connecter en ssh par l&#8217;extérieur car le pare feu bloque ce port (ou bien il le redirige sur une autre machine qui ne vous intéresse pas). Prenons maintenant une autre machine, nommée middle, qui se trouve à l&#8217;extérieur du réseau protégé. Il suffit de créer un reverse tunnel pour exposer le port 22 de la machine dest sur un autre port de la machine middle. Cette commande est à exécuter au préalable sur dest :</p>
<pre>destuser@dest$ ssh -R 2200:localhost:22 middleuser@middle</pre>
<p>Tant que la connexion ssh est active, le port 2200 de middle est en écoute et transmet les paquets au port 22 de dest.Ensuite de l&#8217;extérieur, depuis chez vous sur votre machine home, il suffit de se connecter à middle de manière classique, puis de se connecter une nouvelle fois en utilisant le port exposé, 2200, pour se connecter à dest.</p>
<pre>user@home$ ssh middleuser@middle
middleuser@middle$ ssh destuser@localhost -p 2200
destuser@dest$</pre>
<p>Voilà, vous êtes connecté à dest.</p>
<p>Si vous pouvez sortir sur le port 2200 directement, vous n&#8217;êtes pas obligé de faire ce double saut. Vous pouvez vous connecter directement au port 2200 de la machine middle :</p>
<pre>user@home$ ssh destuser@middle -p 2200</pre>
<p>Si vous ne pouvez pas sortir sur un autre port que le prt 22 et que vous voulez vous connecter en une seule commande, on peut rajouter un petit tunnel supplémentaire entre le port 2200 de la machine home et le port 2200 de la machine middle :</p>
<pre>user@home$ ssh -L2200:localhost:2200 middleuser@middle</pre>
<p>et on se connecte alors ainsi :</p>
<pre>user@home$ ssh destuser@localhost -p 2200</pre>
<p>Dans cet exemple, j&#8217;ai présenté une connexion vers le port 22, pour ssh, mais le plus souvent, vous avez déjà établi un mécanisme permettant une connexion à votre réseau domestique. Dans ce cas cette astuce peut être pratique quand vous êtes à l&#8217;extérieur, pour exposer temporairement le port d&#8217;un service de votre réseau local à l&#8217;extérieur (au hasard, des ports POP et IMAP pour relever votre mail). Attention à bien protéger les accès dans ce cas.</p>
]]></content:encoded>
			<wfw:commentRss>http://trux.info/2009/05/reverse-ssh-ou-comment-se-faufiler-entre-nat-et-firewall/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
