<?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>Labo IT &#187; Linux</title>
	<atom:link href="http://www.laboit.net/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.laboit.net</link>
	<description>A lot of experiences on new technologies.</description>
	<lastBuildDate>Sun, 13 Jun 2010 13:01:18 +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>Implement a HTTP tunnel on a Linux server</title>
		<link>http://www.laboit.net/2009/05/15/implement-a-http-tunnel-on-a-linux-server/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=implement-a-http-tunnel-on-a-linux-server</link>
		<comments>http://www.laboit.net/2009/05/15/implement-a-http-tunnel-on-a-linux-server/#comments</comments>
		<pubDate>Fri, 15 May 2009 17:55:05 +0000</pubDate>
		<dc:creator>Alexandre VIOT</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bypass]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[websense]]></category>

		<guid isPermaLink="false">http://www.laboit.net/?p=196</guid>
		<description><![CDATA[In this article, we will learn how to set up a HTTP tunnel between a PC and a Linux server with the SSH protocol to secure our transactions through a firewall or another. Before to begin any technical part, I will try to explain the operation of Port Forwarding and why implement it. To understand [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In this article, we will learn how to set up a <strong>HTTP tunnel</strong> between a PC and a Linux server with the SSH protocol to secure our transactions through a firewall or another.</p>
<p style="text-align: left;">
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">Before to begin any technical part, I will try to explain the operation of Port Forwarding and why implement it.</p>
<p style="text-align: justify;">To understand this concept, I refresh your memories on the communication of computer:</p>
<p style="text-align: justify;">
<p style="text-align: justify;">To exchange informations, computers need an <strong>IP address</strong> and a <strong>port</strong> number. The port number is important because it&#8217;s thanks to it that the communication exists. Client and server have to communicate on the same port number.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">Now, we decrypt the <strong>Port Forwarding</strong>. The Port Forwarding consist of redirect informations sent on a port number of a computer to a different port number on another computer.</p>
<p style="text-align: justify; padding-left: 30px;"><span id="more-196"></span></p>
<p style="text-align: justify;">A picture to better understand this redirection:</p>
<p style="text-align: justify; padding-left: 30px;"><img class="aligncenter size-full wp-image-106" title="translation2" src="http://www.laboit.net/wp-content/uploads/2009/04/translation2.png" alt="translation2" width="553" height="133" /></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">In this example, the number port 6000 of client will be encapsulated on port 22. When the request arrives on the server on the port 22, it will be decapsulated et sent on 80.</p>
<p style="text-align: justify;">To simplify, the Port Forwarding swap the port number of communication.</p>
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify; padding-left: 30px;">
<h2 style="text-align: left;">Why implement it</h2>
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">We can ask the question of why implement it. <strong>Port forwarding</strong> with SSH is used when you want<strong> secure</strong> an communication between two computers.</p>
<p style="text-align: justify;">Maybe you have a firewall in your company which allows only the port number 22 and you want to access the internal FTP server. Or a filter on your HTTP requests (Websense, SurfControl) and you want bypass it. Bu avoid this control remains under your responsibility.</p>
<p style="text-align: justify;">How informations communicate , with and without Port Forwarding?</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-107" title="schemahttptunneling1" src="http://www.laboit.net/wp-content/uploads/2009/04/schemahttptunneling1.png" alt="schemahttptunneling1" width="553" height="248" /></p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Explication</strong>:</p>
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">The <strong><span style="color: #000080;">Blue path (1)</span></strong> is the communication in a normal situation. When you request a web page, your request is filtered by the firewall and redirected to Internet. If the website is in the blacklist, then access will be denied.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">The <strong><span style="color: #ff0000;">Red path (2)</span></strong> is the communication with <strong>Port Forwarding</strong>.Your internet request is encapsulated in a secure tunnel and sent to your remote server.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">When you encrypt your transaction between your PC and the server, it means that the firewall can&#8217;t inspect your request.</p>
<p style="text-align: justify;">Once the remote server has received your request, it will go for you on internet and download the web page. Everything in a <strong>secure connection</strong>.</p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;"><strong>Result:</strong> Secure exchange between two hosts, unable to inspect the content.</p>
<h2 style="text-align: left;">How implement it</h2>
<p style="text-align: justify;">I used for this article a Debian distribution, but this solution works also on Mandriva.</p>
<p style="text-align: justify;">We need :</p>
<p style="text-align: justify; padding-left: 60px;">- A<strong> Linux </strong>server</p>
<p style="text-align: left; padding-left: 60px;">- A client on Microsoft <strong>Windows</strong></p>
<p style="text-align: left; padding-left: 60px;">-  <strong>Putty</strong></p>
<p style="text-align: left;">The server configuration is divided into <strong>4</strong> steps.</p>
<ol>
<li> OpenSSH Installation.</li>
<li>Certificates for SSH.</li>
<li>Configuration of file SSH.</li>
<li>User creation.</li>
</ol>
<p style="text-align: left;">And for client configuration into<strong> 2</strong> steps.</p>
<ol>
<li>Configuration of Putty.</li>
<li>Configuration of your browser.</li>
</ol>
<h2 style="text-align: left;">Server Configuration</h2>
<h5 style="text-align: left;">OpenSSH Installation</h5>
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">Port Forwarding is based on the SSH protocol. So the first step is to install <strong>OpenSSH</strong>.</p>
<pre class="brush: bash;">apt-get install openssh-server</pre>
<p style="text-align: left; padding-left: 30px;"><strong> </strong></p>
<p style="text-align: left;"><strong>Note:</strong> Don&#8217;t forget to update your sources with:</p>
<pre class="brush: bash;">apt-get update</pre>
<h5 style="text-align: left;">Generating certificates for SSH</h5>
<p style="text-align: left;">Once you have installed the service SSH, you must have <strong>certificates</strong> to validate the connection.</p>
<p style="text-align: left;">A certificate contains a private key and public key which allow you to encrypt your communications.</p>
<p style="text-align: justify;">During the installation, it is possible that generation of certificates were done automatically. For more security, we are going to recreate them.</p>
<p style="text-align: justify;">
<p style="text-align: left;">To create certificates:</p>
<p style="text-align: left;">
<pre class="brush: bash;">ssh-keygen -t dsa -b 1024</pre>
<p style="text-align: left;">
<pre class="brush: bash;">ssh-keygen -t rsa -b 1024</pre>
<p style="text-align: justify;">The system asks you to specify the path et name for your certificates. I advise you to put them in <strong>/etc/ssh</strong></p>
<h5 style="text-align: left;">Configuration of file SSH</h5>
<p style="text-align: justify;">The next step is the modification of  configuration file of SSH to accepts tunnels and modify certificate&#8217;s paths.</p>
<p style="text-align: justify;">You linux server can also connect to another remote server in SSH. It will be client.</p>
<p style="text-align: justify;">This is why there are two configurations for SSH files: a file named <strong>ssh_config</strong> for the client connection and a <strong>sshd_config</strong> file which allows us to configure our SSH server.</p>
<p style="text-align: left;">We modify the file <strong>sshd_config</strong></p>
<p style="text-align: left;">
<pre class="brush: bash;">vi /etc/ssh/sshd_config</pre>
<p style="text-align: justify;">In first time, we specify new certificate&#8217;s path.</p>
<p style="text-align: left;">To do this, modify lines which contain <strong>HostKey</strong>:</p>
<pre class="brush: bash;"># HostKeys for protocol version 2
HostKey /etc/ssh/certifLaboIT
HostKey /etc/ssh/certifLaboITdsa
</pre>
<p style="text-align: justify;">To allow<strong> SSH tunneling</strong>,  add this command at the end of the file:</p>
<pre class="brush: bash;">#Permit Tunnel
PermitTunnel yes
</pre>
<p style="text-align: left;">It is possible to change the listening port of the server. In case of the port number 22 is blocked by your firewall.</p>
<div id="result_box" style="text-align: left;" dir="ltr">This requires changing the line containing the word:</div>
<pre class="brush: bash;">#What ports, IPs and protocols we listen
Port 22
</pre>
<p style="text-align: justify;">Quit Vim editor and don&#8217;t forget to save your modifications.</p>
<p style="text-align: left;">SSH configuration is now complete.</p>
<p style="text-align: left;">We need to <strong>restart the service</strong> with command:</p>
<pre class="brush: bash;">/etc/init.d/ssh restart</pre>
<h5 style="text-align: left;">User creation</h5>
<p style="text-align: justify;">To avoid login with root account, we create a new user:</p>
<pre class="brush: bash;">useradd LaboIT</pre>
<pre class="brush: bash;">passwd LaboIT</pre>
<p style="text-align: justify;">Server configuration is now complete.</p>
<p style="text-align: justify; padding-left: 30px;">
<h2 style="text-align: left;">Client Configuration</h2>
<p style="text-align: left;">It is important to understand what we are going to do.</p>
<p style="text-align: justify; padding-left: 30px;">
<div id="result_box" style="text-align: justify;" dir="ltr">As a first step we will configure Putty to listen on an<strong> unused</strong> port (example 9999) then we will open an SSH connection to the server. This will create the port forwarding.</div>
<div id="result_box" style="text-align: left;" dir="ltr">In a second step, we specify on our web browser to send all requests to this new port.</div>
<p style="text-align: justify;">
<p style="text-align: justify;">All client requests will be encapsulated in a tunnel by Putty dynamically to use the <strong><span style="color: #ff0000;">red path (2)</span></strong>.</p>
<h5 style="text-align: left;">Configuration of Putty</h5>
<p style="text-align: left;">You can download Putty at this address: <a onclick="javascript:pageTracker._trackPageview('/outbound/article/www.chiark.greenend.org.uk');" href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html">http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</a></p>
<p style="text-align: left;">The configuration of the PuTTY executable will be in 2 steps:</p>
<ol>
<li>
<div id="result_box" style="text-align: left;" dir="ltr">Information of the server&#8217;s IP address and its listening port.</div>
</li>
<li>
<div id="result_box" style="text-align: left;" dir="ltr">Creation on the client of a new dynamic port.</div>
</li>
</ol>
<p style="text-align: left; padding-left: 30px;">
<p style="text-align: left;">For the first step, we will fill in the connection information:</p>
<p style="text-align: left; padding-left: 30px;"><img class="aligncenter size-full wp-image-111" title="putty1" src="http://www.laboit.net/wp-content/uploads/2009/04/putty1.png" alt="putty1" width="400" height="384" /></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p style="text-align: justify;">Specify the <strong>IP address</strong> or <strong>FQDN</strong> of the server in the <span style="color: #ff0000;">red box</span>. And then in the <span style="color: #ffff00;">yellow box</span> specify the port is in your configuration <strong>sshd_config</strong> file</p>
<p style="text-align: left;">Second step, creation of new port:</p>
<p style="text-align: left; padding-left: 30px;"><img class="aligncenter size-full wp-image-112" title="putty2" src="http://www.laboit.net/wp-content/uploads/2009/04/putty2.png" alt="putty2" width="400" height="383" /></p>
<p style="text-align: center;">
<p style="text-align: left; padding-left: 30px;">
<p style="text-align: left;">To create a dynamic, port verify that the <strong>dynamic</strong> option is selected and then in the field source port enter <strong>9999</strong>. Once this done, click <strong>Add</strong> to add to the <strong>ports forwarded</strong>.</p>
<p style="text-align: left;">To open the connection to the remote server, click <strong>Open</strong>.</p>
<p style="text-align: left; padding-left: 30px;">
<p style="text-align: left;">
<h5 style="text-align: left;">Configuration of your browser.</h5>
<div id="result_box" style="text-align: left;" dir="ltr">This is the last step, which is the more easier.</div>
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">You must specify your favorite browser where it should exit. Indeed, it should not use the<span style="color: #0000ff;"> <strong><span style="color: #000080;">blue path (1)</span></strong></span><strong> </strong>but the <strong><span style="color: #ff0000;">Red (2)</span></strong>.</p>
<p style="text-align: left; padding-left: 30px;">
<div id="result_box" style="text-align: left;" dir="ltr">We need change address of <strong>Host SOCKS</strong>. This information is generally in the connection settings.</div>
<p style="text-align: left; padding-left: 30px;">
<p style="text-align: left;">For the connection host address specify <strong>127.0.0.1</strong>, which is your PC. And in port, you must specify <strong>9999</strong>, that was informed earlier.</p>
<p style="text-align: left; padding-left: 30px;"><img class="aligncenter size-full wp-image-113" title="proxyconfig" src="http://www.laboit.net/wp-content/uploads/2009/04/proxyconfig.png" alt="proxyconfig" width="400" height="220" /></p>
<p style="text-align: left;">
<p style="text-align: left;">You just have to accept the changes and go to your favorite pages.</p>
<p style="text-align: left;">Remember that if your company has set up a filter is for a good reason. So do not overuse. You are solely responsible for your actions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laboit.net/2009/05/15/implement-a-http-tunnel-on-a-linux-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mettre en place un tunnel HTTP</title>
		<link>http://www.laboit.net/2009/04/29/mettre-en-place-un-tunnel-http/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mettre-en-place-un-tunnel-http</link>
		<comments>http://www.laboit.net/2009/04/29/mettre-en-place-un-tunnel-http/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 13:20:04 +0000</pubDate>
		<dc:creator>Alexandre VIOT</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[forwarding]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[websense]]></category>

		<guid isPermaLink="false">http://www.laboit.net/?p=105</guid>
		<description><![CDATA[Dans cet article, nous allons mettre en place un tunnel HTTP entre un client et un serveur Linux grâce au service SSH afin de sécuriser nos transactions à travers un pare-feu ou autre. Avant de commencer toute partie technique, je vais essayer de vous expliquer le fonctionnement du Port Forwarding et pourquoi le mettre en [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><span lang="fr">Dans cet article, nous allons mettre en place un <strong>tunnel HTTP</strong> entre un client et un serveur Linux grâce au service SSH afin de sécuriser nos transactions à travers un pare-feu ou autre.</span></p>
<p style="text-align: justify;">Avant de commencer toute partie technique, je vais essayer de vous expliquer le fonctionnement du <strong>Port Forwarding</strong> et pourquoi le mettre en place.</p>
<p style="text-align: justify;">Pour bien comprendre cette notion, un petit rappel sur le mode de communication entre les ordinateurs est peut être nécessaire:</p>
<p style="text-align: justify;">Afin de s’échanger des informations, les ordinateurs ont besoin d’une <strong>adresse IP</strong> ainsi que d’un <strong>numéro de port</strong>.  Le numéro de port est très important car c’est grâce à lui que la communication va pouvoir se faire. Le client et le serveur doivent communiquer sur le même numéro de port pour s’entendre.</p>
<p style="text-align: justify;">Prenons  un exemple de la vie quotidienne : si vous décidez de rendre visite à une personne dans un immeuble, vous avez son adresse postale (<strong>Adresse IP</strong>) et son numéro d’appartement (<strong>Port</strong>). Si vous vous trompez de numéro d’appartement, la communication ne pourra pas se faire.</p>
<p style="text-align: justify;">Déchiffrons maintenant le terme de <strong>Port Forwarding </strong>ou <strong>Redirection de Port </strong>en français. Le <strong>Port Forwarding</strong> consiste à rediriger les informations envoyées sur un port  d’un ordinateur vers un port différent de l’ordinateur distant.</p>
<p style="text-align: justify; padding-left: 30px;"><span id="more-105"></span></p>
<p style="text-align: justify;">Une image pour mieux comprendre cette redirection :</p>
<p style="text-align: justify; padding-left: 30px;"><img class="aligncenter size-full wp-image-106" title="translation2" src="http://www.laboit.net/wp-content/uploads/2009/04/translation2.png" alt="translation2" width="553" height="133" /></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p style="text-align: justify; padding-left: 30px;">
<p style="text-align: justify;">Dans cet exemple, le port 6000 du client sera <strong>encapsulé</strong> sur le port 22. Lorsque la requête arrivera sur le serveur via le port 22, elle sera <strong>décapsulée</strong> et envoyées sur le port 80.</p>
<p style="text-align: justify;">Pour simplifier, le port Forwarding consiste à échanger le port de communication via un autre port.</p>
<h2 style="text-align: left;">Pourquoi le mettre en place</h2>
<p style="text-align: justify;">On peut se poser la question de pourquoi le mettre en place. Le <strong>Port Forwading</strong> avec SSH est utile lorsque vous voulez une <strong>sécuriser</strong> communication entre deux ordinateurs.</p>
<p style="text-align: justify;">Vous avez peut être dans votre entreprise un pare-feu qui n’autorise que le port 22 et vous devez accédez au serveur FTP interne de la société. Ou  tout simplement un filtrage de vos requêtes HTTP (Websense, SurfControl) et vous voulez le contourner, mais esquiver ce contrôle reste sous votre entière responsabilité.</p>
<p style="text-align: justify;">Comment communiquent les informations, avec et sans Port Forwarding ?</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-107" title="schemahttptunneling1" src="http://www.laboit.net/wp-content/uploads/2009/04/schemahttptunneling1.png" alt="schemahttptunneling1" width="553" height="248" /></p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Explication</strong>,</p>
<p style="text-align: justify;">Le <strong><span style="color: #000080;" lang="en">chemin bleu (1)</span> </strong>est la communication en temps normal. Lorsque vous demandez une page, votre requête est filtrée par le pare-feu puis redirigé vers internet. Si le site est dans la blacklist, alors l’accès vous sera refusé.</p>
<p style="text-align: justify;">Le <span style="color: #ff0000;" lang="en"><strong>chemin rouge (2)</strong></span> est la communication par la <strong>redirection de port</strong>. Votre demande internet est encapsulée dans un tunnel  complètement <strong>sécurisé</strong> puis est envoyée sur votre serveur distant.</p>
<p style="text-align: justify;">Le fait de chiffrer<strong> </strong>la transaction entre votre pc et le serveur signifie que le firewall <strong>ne pourra pas filtrer</strong> votre demande.</p>
<p style="text-align: justify;">Une fois que le serveur distant a reçu votre requête,  il va aller à votre place chercher sur internet la page web et vous la renvoyer en <strong>connexion sécurisée</strong>.</p>
<p style="text-align: justify;"><strong>Résultat</strong> <img src='http://www.laboit.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> es échanges sécurisés entre les deux hôtes, impossible de lire le contenu.</p>
<h2 style="text-align: left;">Comment mettre en place</h2>
<p style="text-align: justify;">J’ai utilisé pour rédiger cet article une distribution Debian, mais cette solution a également été testée sous une distribution Mandriva.</p>
<p style="text-align: justify;">Voici les équipements nécessaires :</p>
<p style="text-align: justify; padding-left: 60px;">- Un serveur<strong> Linux</strong></p>
<p style="text-align: left; padding-left: 60px;">- Un client sous Microsoft <strong>Windows</strong></p>
<p style="text-align: left; padding-left: 60px;">- L’utilitaire <strong>Putty</strong></p>
<p style="text-align: left;">La configuration du serveur se décompose en <strong>4</strong> étapes :</p>
<ol>
<li>Installation d’OpenSSH</li>
<li>Génération des certificats pour SSH</li>
<li>Configuration du fichier</li>
<li>Création d’un utilisateur</li>
</ol>
<p style="text-align: left;">Et la configuration du client en <strong>2</strong> étapes.</p>
<ol>
<li>Configuration de l’utilitaire Putty</li>
<li>Configuration du navigateur Internet</li>
</ol>
<h2 style="text-align: left;">Configuration du serveur</h2>
<h5 style="text-align: left;">Installation d’OpenSSH</h5>
<p style="text-align: justify;">La redirection de port étant basée sur le protocole SSH, la première chose à faire est d’installer l’utilitaire <strong>Openssh</strong>.</p>
<pre class="brush: bash;">apt-get install openssh-server</pre>
<p style="text-align: left;"><strong>Note </strong>: N’oubliez pas mettre à jour vos dépôts avec la commande :</p>
<pre class="brush: bash;">apt-get update</pre>
<h5 style="text-align: left;">Génération des certificats pour SSH</h5>
<p style="text-align: left;">Une fois le service installé, il est nécessaire d’avoir des <strong>certificats </strong>pour la connexion soit valide<strong>.</strong></p>
<p style="text-align: left;">Un certificat contient une clef privée et une clef publique qui vont vous permettre de chiffrer vos communications.</p>
<p style="text-align: justify;">Lors de l’installation, il est possible que la génération des certificats se soient fait automatiquement. Mais pour plus de sécurité nous allons en recréer.</p>
<p style="text-align: justify;">Nous allons générer deux types de certificats, un <strong>DSA </strong>et un <strong>RSA, </strong>qui sont deux algorithmes de chiffrement. Ils seront générés grâce à l’utilitaire <strong>ssh-keygen</strong>.</p>
<p style="text-align: left;">Pour créer les certificats :</p>
<pre class="brush: bash;">ssh-keygen -t dsa -b 1024</pre>
<pre class="brush: bash;">ssh-keygen -t rsa -b 1024</pre>
<p style="text-align: justify;">Le système vous demande ensuite de préciser le chemin et le nom pour les certificats. Je vous conseille de les mettre dans <strong>/etc/ssh</strong></p>
<h5 style="text-align: left;">Configuration du fichier SSH</h5>
<p style="text-align: justify;">Maintenant que le service est installé et que les certificats sont créés, il faut modifier le fichier de configuration de ssh pour accepter les tunnels et modifier le chemin des certificats.</p>
<p style="text-align: justify;">Il ne faut pas oublier que notre serveur peut également se connecter sur une machine distante en SSH. Il sera donc client à son tour.</p>
<p style="text-align: justify;">C’est pour cela qu’il existe deux fichiers de configurations pour SSH : un fichier nommé <strong>ssh_config</strong> pour la connexion cliente et un fichier <strong>sshd_config</strong> qui va nous permettre de configurer notre serveur SSH.</p>
<p style="text-align: left;">Nous modifions donc le fichier <strong>sshd_config</strong></p>
<pre class="brush: bash;">vi /etc/ssh/sshd_config</pre>
<p style="text-align: justify;">Dans un premier temps, nous allons spécifier les nouveaux certificats que nous venons de créer.</p>
<p style="text-align: left;">Pour cela modifier les lignes qui contiennent <strong>HostKey </strong>en précisant vos certificats.</p>
<pre class="brush: bash;"># HostKeys for protocol version 2
HostKey /etc/ssh/certifLaboIT
HostKey /etc/ssh/certifLaboITdsa
</pre>
<p style="text-align: justify;">Pour autoriser SSH à faire du <strong>Tunneling</strong>, rajouter cette commande à la fin du fichier :</p>
<pre class="brush: bash;">#Permit Tunnel
PermitTunnel yes
</pre>
<p style="text-align: left;">Il est également possible de changer le port d’écoute du serveur. Au cas où le port 22 serait bloqué par un pare-feu.</p>
<p style="text-align: left;">Il faut pour cela modifier la ligne contenant le mot :</p>
<pre class="brush: bash;">#What ports, IPs and protocols we listen
Port 22
</pre>
<p style="text-align: justify;">Quittez l’éditeur Vim en n’oubliant pas de sauvegarder vos modifications.</p>
<p style="text-align: left;">La configuration de SSH est désormais terminée.</p>
<p style="text-align: left;">Il ne reste plus qu’à <strong>redémarrer le service</strong> avec  la commande:</p>
<pre class="brush: bash;">/etc/init.d/ssh restart</pre>
<h5 style="text-align: left;">Création d’un utilisateur</h5>
<p style="text-align: justify;">Pour éviter de se connecter avec le compte root sur le serveur, nous allons créer un autre utilisateur.</p>
<pre class="brush: bash;">useradd LaboIT</pre>
<pre class="brush: bash;">passwd LaboIT</pre>
<p style="text-align: justify;">La configuration du serveur est désormais terminée. Nous pouvons maintenant passer à celle du client.</p>
<h2 style="text-align: left;">Configuration du Client</h2>
<p style="text-align: left;">Il faut bien comprendre ce que nous allons faire par la suite.</p>
<p style="text-align: justify;">Dans un premier temps, nous allons configurer Putty pour qu’il écoute sur un port <strong>non utilisé</strong> (par exemple le 9999) puis nous allons ouvrir une connexion SSH vers le serveur. Cela va créer le port Forwarding.</p>
<p style="text-align: justify;">Dans un second temps, nous spécifierons à notre navigateur web d’envoyer toutes nos requêtes vers ce nouveau port.</p>
<p style="text-align: justify;">Toutes les requêtes du client seront donc <strong>encapsulées</strong> <strong>dans un tunnel</strong> par Putty dynamiquement pour passer par le <span style="color: #ff0000;" lang="en"><strong>chemin rouge (2)</strong></span> vu plus haut.</p>
<h5 style="text-align: left;">Configuration de l’utilitaire Putty</h5>
<p style="text-align: left;">Vous pouvez télécharger Putty à cette adresse : <a onclick="javascript:pageTracker._trackPageview('/outbound/article/www.chiark.greenend.org.uk');" href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html">http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</a></p>
<p style="text-align: left;">La configuration de l’exécutable Putty se fera en 2 étapes :</p>
<ol>
<li>Renseignement de l’adresse IP du serveur et de son port d’écoute.</li>
<li>Création sur le client d’un nouveau port dynamique.</li>
</ol>
<p style="text-align: left;">Pour la première étape, nous allons renseigner les informations de connexion :</p>
<p style="text-align: left; padding-left: 30px;"><img class="aligncenter size-full wp-image-111" title="putty1" src="http://www.laboit.net/wp-content/uploads/2009/04/putty1.png" alt="putty1" width="400" height="384" /></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p style="text-align: justify;">Spécifiez dans la case rouge l’<strong>adresse IP</strong> ou le <strong>FQDN</strong> du serveur. Puis dans la case jaune, indiquez le port qui se trouve dans votre fichier de configuration <strong>sshd_config</strong></p>
<p style="text-align: left;">Deuxième étape, Création du nouveau port :</p>
<p style="text-align: left; padding-left: 30px;"><img class="aligncenter size-full wp-image-112" title="putty2" src="http://www.laboit.net/wp-content/uploads/2009/04/putty2.png" alt="putty2" width="400" height="383" /></p>
<p style="text-align: center;">
<p style="text-align: left;">Pour créer un port dynamique, vérifiez que l’option <strong>Dynamic</strong> soit sélectionnée puis dans le champ <span style="color: #ff0000;" lang="en"><strong>Source port</strong></span> indiquez <strong>9999</strong>. Une fois ceci fait, cliquez sur <strong>Add </strong>pour l’ajouter dans les <strong>Forwarded Ports</strong>.</p>
<p style="text-align: left;">Pour ouvrir la connexion au serveur distant,  cliquez sur le bouton <strong>Open</strong>.</p>
<p style="text-align: left;">Bien sur, vous devez spécifier un couple <strong>utilisateur/password</strong> valide lors de la connexion au serveur.</p>
<h5 style="text-align: left;">Configuration du navigateur Internet</h5>
<p style="text-align: left;">Voici la dernière étape, qui de plus, est la plus facile.</p>
<p style="text-align: justify;">Vous devez indiquer à votre navigateur web préféré par où il doit sortir. En effet, il ne doit plus utiliser  le<span style="color: #000080;" lang="en"> <strong>chemin bleu (1)</strong></span> mais le <span style="color: #ff0000;" lang="en"><strong>rouge (2)</strong></span>.</p>
<p style="text-align: left;">Il faut que l’on change l’adresse de <strong>Hote SOCKS</strong>. Cette information est généralement dans les paramètres de connexion.</p>
<p style="text-align: left;">Pour l’adresse de connexion hôte, spécifiez <strong>127.0.0.1</strong>, c’est votre PC. Et en port, vous devez indiquez <strong>9999</strong>, celui qu’on a renseigné plus haut.</p>
<p style="text-align: left; padding-left: 30px;"><img class="aligncenter size-full wp-image-113" title="proxyconfig" src="http://www.laboit.net/wp-content/uploads/2009/04/proxyconfig.png" alt="proxyconfig" width="400" height="220" /></p>
<p style="text-align: left;">
<p style="text-align: left;">Vous n’avez plus qu’à valider les changements et de vous rendre sur vos sites favoris.</p>
<p style="text-align: left;">N’oubliez pas que si votre entreprise a mis en place un filtrage, c’est pour une bonne raison. Donc n’en abusez pas. Vous êtes le seul responsable de vos actes</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laboit.net/2009/04/29/mettre-en-place-un-tunnel-http/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
