Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 1172

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>3.&nbsp;Compr&eacute;hension du probl&egrave;me</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.70.1" name="generator"><link rel="start" href="index.html" title="Petit guide du per&ccedil;age de pare-feux"><link rel="up" href="index.html" title="Petit guide du per&ccedil;age de pare-feux"><link rel="prev" href="ar01s02.html" title="2.&nbsp;Introduction"><link rel="next" href="ar01s04.html" title="4.&nbsp;La solution s&eacute;curis&eacute;e&nbsp;: percer en utilisant ssh"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">3.&nbsp;Compr&eacute;hension du probl&egrave;me</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s02.html">Pr&eacute;c&eacute;dent</a>&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="ar01s04.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N1019C"></a>3.&nbsp;Compr&eacute;hension du probl&egrave;me</h2></div></div></div><p>
Quand vous comprenez un probl&egrave;me, vous avez fait la moiti&eacute; du chemin vers la solution.
</p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="N101A1"></a>3.1.&nbsp;Donner un nom aux choses</h3></div></div></div><p>
Si vous voulez que cette m&eacute;thode fonctionne, vous devrez comprendre comment elle fonctionne pour que, si quelque chose ne marche pas, vous sachiez o&ugrave; chercher.
</p><p>
La premi&egrave;re &eacute;tape pour comprendre le probl&egrave;me est de donner un nom aux concepts appropri&eacute;s.
</p><p>
Comme d&rsquo;habitude, nous allons ci-apr&egrave;s appeler &laquo;&nbsp;client&nbsp;&raquo; la machine qui d&eacute;cide d&rsquo;initialiser la connexion, ainsi que les programmes et les fichiers sur cette machine. R&eacute;ciproquement, nous appelerons &laquo;&nbsp;serveur&nbsp;&raquo; celui qui attend les connexions et les accepte, ainsi que les programmes et fichiers sur cette machine. Le per&ccedil;age de pare-feu est utile lorsque les deux machines sont s&eacute;par&eacute;es par un pare-feu, de telle sorte qu&rsquo;il est possible pour le serveur d&rsquo;accepter certaines connexions, alors qu'il n'est pas certain que le client puisse en accepter. Un tunnel sera cr&eacute;&eacute; entre les deux machines, ce qui permet un trafic IP complet malgr&eacute; le pare-feu.
</p><p>
Habituellement, lorsque l&rsquo;on perce un pare-feu, le client est la machine derri&egrave;re le pare-feu&nbsp;: il a un acc&egrave;s limit&eacute; &agrave; internet, mais peut d&rsquo;une fa&ccedil;on ou d&rsquo;une autre ouvrir une connexion ou une autre sur le serveur. Le serveur est une machine avec un acc&egrave;s complet &agrave; internet, qui va servir de proxy pour le client afin qu&rsquo;il acc&egrave;de &agrave; internet. Dans un VPN, les r&ocirc;les peuvent &ecirc;tre invers&eacute;s, avec le client &eacute;tant sur internet et le serveur servant de proxy au client afin d&rsquo;acc&eacute;der &agrave; certains r&eacute;seaux priv&eacute;s.
</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="N101AC"></a>3.2.&nbsp;Le probl&egrave;me principal</h3></div></div></div><p>
Le probl&egrave;me principal pour le per&ccedil;age de pare-feu est de cr&eacute;er un tunnel&nbsp;: une connexion continue d&rsquo;une machine cliente vers une machine serveur de l&rsquo;autre c&ocirc;t&eacute; du pare-feu, qui permet un &eacute;change bidirectionnel d&rsquo;informations. Optionnellement, cette connexion devrait &ecirc;tre s&eacute;curis&eacute;e. Le probl&egrave;me annexe est de transformer cette connexion en un acc&egrave;s IP complet pour une utilisation transparente par les programmes normaux.
</p><p>
Pour le probl&egrave;me principal, nous consid&eacute;rerons que soit (1) vous pouvez &eacute;tablir des connexions TCP/IP normales du c&ocirc;t&eacute; client du pare-feu vers un port sur une machine serveur o&ugrave; un sshd tourne ou peut &ecirc;tre mis en fonctionnement, ou (2) vous pouvez d&rsquo;une fa&ccedil;on ou d&rsquo;une autre &eacute;tablir une connexion telnet &agrave; travers un proxy telnet. Au cas o&ugrave; vous ne pourriez pas, nous allons vous diriger vers un autre logiciel qui permet de percer un tunnel &agrave; travers un pare-feu. Bien que nous ne donnions qu&rsquo;une solution s&eacute;curis&eacute;e dans le premier cas, vous pouvez bidouiller votre propre solution s&eacute;curis&eacute;e dans les autres cas, si vous comprenez le principe (si vous ne le comprenez pas, quelqu&rsquo;un, par exemple moi, peut le faire pour vous contre r&eacute;mun&eacute;ration).
</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="N101B3"></a>3.3.&nbsp;Le probl&egrave;me annexe</h3></div></div></div><p>
Pour le probl&egrave;me annexe, les &eacute;mulateurs d&rsquo;IP
 (<span><strong class="command">pppd</strong></span> ou <span class="productname">SLiRP</span>&trade;)
sont lanc&eacute;s de chaque c&ocirc;t&eacute; du tunnel.
</p><p>
Du c&ocirc;t&eacute; qui veut un acc&egrave;s IP complet vers l&rsquo;autre c&ocirc;t&eacute;, il vous faudra lancer
 <span><strong class="command">pppd</strong></span>.
De l&rsquo;autre c&ocirc;t&eacute;, vous devez lancer <span><strong class="command">pppd</strong></span>
si vous voulez un acc&egrave;s IP complet dans l&rsquo;autre sens, ou <span class="productname">SLiRP</span>&trade; si vous voulez emp&ecirc;cher tout acc&egrave;s. Consultez votre documentation <span><strong class="command">pppd</strong></span> ou <span class="productname">SLiRP</span>&trade;
habituelle pour plus d&rsquo;informations, si vous avez des besoins sp&eacute;cifiques qui ne sont pas trait&eacute;s dans les exemples ci-dessous.
 </p><p>
Bien qu&rsquo;il s&rsquo;agisse d&rsquo;un concept banal, &ccedil;a n&eacute;cessite n&eacute;anmoins quelques astuces toutes b&ecirc;tes afin de fonctionner, car (a) si vous utilisez une quelconque session shell programm&eacute;e interactive pour d&eacute;marrer l&rsquo;&eacute;mulateur d&rsquo;IP du serveur de n&rsquo;importe quel c&ocirc;t&eacute;, il vous faut synchroniser correctement le d&eacute;marrage de l&rsquo;&eacute;mulateur d&rsquo;IP de l&rsquo;autre c&ocirc;t&eacute;, afin de ne pas envoyer des salet&eacute;s dans la session shell, et (b) les &eacute;mulateurs d&rsquo;IP sont con&ccedil;us pour &ecirc;tre lanc&eacute;s sur une interface &laquo;&nbsp;tty&nbsp;&raquo; : vous devez donc convertir votre interface tunnel en une tty.
 </p><p>
Le point (a) ne repr&eacute;sente rien de plus que le probl&egrave;me de synchronisation habituel, et n&rsquo;existe m&ecirc;me pas si vous utilisez <span><strong class="command">ssh</strong></span>,
qui s&rsquo;occupe de mani&egrave;re transparente du lancement de commande du serveur.
 </p><p>
Le point (b) requiert l&rsquo;utilisation d&rsquo;un simple utilitaire ext&eacute;rieur. Nous en avons fait un, <span><strong class="command">cotty</strong></span> juste dans ce but.
</p><p>
&lt; PIQUAGE DE CRISE&gt;
</p><p>
Entre autres probl&egrave;mes d&eacute;biles d&ucirc;s &agrave; l&rsquo;&eacute;troitesse d&rsquo;esprit des concepteurs de <span><strong class="command">pppd</strong></span> (ceci n&rsquo;est plus le cas dans les versions r&eacute;centes de Linux), on peut seulement le lancer soit par un dispositif dans <code class="filename">/dev</code> ou par le tty courant. On ne peut pas le lancer par une paire de tunnels (ce qui serait la conception &eacute;vidente). C&rsquo;est parfait pour le  <span><strong class="command">pppd</strong></span> du serveur s&rsquo;il y en a un, puisqu&rsquo;il peut utiliser le <code class="filename">tty</code> des sessions
 <span><strong class="command">telnet</strong></span> ou <span><strong class="command">ssh</strong></span>; mais pour le
<span><strong class="command">pppd</strong></span> du client, cela entra&icirc;ne un conflit en cas d&rsquo;utilisation de
 <span><strong class="command">telnet</strong></span> pour &eacute;tablir une connexion.
</p><p>
En effet, <span><strong class="command">telnet</strong></span> veut, &eacute;galement, &ecirc;tre sur un tty, il se comporte <span class="emphasis"><em>presque</em></span> correctement avec deux tunnels, &agrave; part qu&rsquo;il insistera encore pour faire des iotctl au tty courant, avec lequel il va interf&eacute;rer&nbsp;; l&rsquo;utilisation de <span><strong class="command">telnet</strong></span> sans un tty impose &eacute;galement un r&eacute;gime tel que toute la connexion &eacute;chouera sur des ordinateurs &laquo;&nbsp;lents&nbsp;&raquo; (<span><strong class="command">fwprc</strong></span> 0.1 fonctionnait parfaitement sur un P/MMX 233, un d&eacute;lai d&rsquo;attente de 6 sur un 6x86-P200+, et aucun sur un 486dx2/66). L&rsquo;un dans l&rsquo;autre, lors de l&rsquo;utilisation de <span><strong class="command">telnet</strong></span>, vous avez besoin de <span><strong class="command">cotty</strong></span> comme d&eacute;mon pour copier la sortie d&rsquo;un tty sur lequel fonctionne pppd sur un autre tty sur lequel fonctionne <span><strong class="command">telnet</strong></span>, et inversement.
</p><p>
Si je trouve l&rsquo;abruti (probablement un gars de <span class="productname">MULTICS</span>&trade; bien que il a d&ucirc; y avoir des gens d&rsquo;<span class="productname">UNIX</span>&trade; assez b&ecirc;tes pour copier cette id&eacute;e) qui a invent&eacute; le principe des dispositifs &laquo;&nbsp;tty&nbsp;&raquo; gr&acirc;ce auxquels on lit et on &eacute;crit &agrave; partir d&rsquo;un &laquo;&nbsp;m&ecirc;me&nbsp;&raquo; pseudo fichier, au lieu d&rsquo;avoir des couples de tunnels propres, je l&rsquo;&eacute;trangle&nbsp;!
</p><p>
&lt;/JE ME CALME&gt;
</p></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s02.html">Pr&eacute;c&eacute;dent</a>&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;<a accesskey="n" href="ar01s04.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">2.&nbsp;Introduction&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%">&nbsp;4.&nbsp;La solution s&eacute;curis&eacute;e&nbsp;: percer en utilisant ssh</td></tr></table></div></body></html>