Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1049

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Configurer un serveur PPP </TITLE>
</HEAD>
<BODY>
<A NAME="ppp-serveur"></A> <H1>26. <A NAME="s26"></A>Configurer un serveur PPP </H1>
<P>
<A HREF="PPP-HOWTO.html#toc26">Contenu de cette section</A></P>

<P>Comme c'est mentionn&eacute; plus haut, il y a des tas de fa&ccedil;ons de faire. Ce que je
pr&eacute;sente ici est la fa&ccedil;on de faire une liaison tournante sur plusieurs
lignes t&eacute;l&eacute;phoniques (avec une carte s&eacute;rie multi-ports utilisant des Cyclades)</P>
<P></P>
<P>Si vous n'aimez pas la m&eacute;thode pr&eacute;sent&eacute;e ici, faites donc comme vous pr&eacute;f&eacute;rez.
J'aimerais toutefois ajouter des m&eacute;thodes suppl&eacute;mentaires dans les prochaines
versions de ce HOWTO. Envoyez donc moi comment vous faites !</P>
<P></P>
<P>Remarquez que cette section ne concerne que la configuration de Linux comme
serveur PPP. Je ne compte absolument pas donner d'informations sur la fa&ccedil;on de
configurer des serveurs terminaux ou autre.</P>
<P></P>
<P>M&ecirc;me si, j'ai d&eacute;j&agrave; exp&eacute;riment&eacute; l'utilisation de shadow password (et l'utilise
de temps en temps). Les informations pr&eacute;sent&eacute;es ici n'utiliserons toutefois
pas ce m&eacute;canisme.</P>
<P></P>
<H2>26.1 <A NAME="ss26.1"></A> Compiler le noyau</H2>

<P>Tous les commentaires pr&eacute;c&eacute;dent concernant la compilation du noyau et les
versions du noyau et de <CODE>pppd</CODE> sont encore valables. Cette section 
consid&egrave;re que vous avez lu les sections pr&eacute;c&eacute;dentes du document !</P>
<P></P>
<P>Pour un serveur PPP, vous <B>DEVEZ</B> ajouter le support de IP forwarding
dans votre noyau. Vous pouvez aussi inclure d'autres supports (comme le IP
fire walls, accounting etc etc).</P>
<P></P>
<P>Si vous utilisez une carte s&eacute;rie multi-port, vous devez bien entendu inclure
&eacute;galement les pilotes n&eacute;cessaires dans le noyau !</P>
<P></P>

<H2>26.2 <A NAME="ss26.2"></A> Pr&eacute;sentation du syst&egrave;me de serveur</H2>

<P>Nous offrons des comptes PPP (ou SLIP) et des comptes shell en utilisant les
m&ecirc;mes paires nom utilisateur/ mot de passe. Cela permet (pour nous) que les 
utilisateurs n'aient qu'un seul compte qu'ils peuvent utiliser pour toutes
les connexions.</P>
<P></P>
<P>Comme nous sommes une organisation &eacute;ducative, nous ne faisons pas payer le 
personnel ni les &eacute;tudiants pour leur acc&egrave;s, et nous n'avons donc pas besoin de
nous inqui&eacute;ter des probl&egrave;mes de payement.</P>
<P></P>
<P>Un firewall existe entre notre site et Internet, et cela limite les acc&egrave;s des
utilisateurs puisque les lignes d'appels sont sur notre firewall Internet 
(pour certaines raisons &eacute;videntes, le d&eacute;tails des autres firewalls internes
ne sera pas pr&eacute;sent&eacute; ici et serait de toute fa&ccedil;on inutile)</P>
<P></P>
<P>Le processus avec lequel un utilisateur &eacute;tablit une liaison PPP avec notre 
site (une fois qu'ils ont un compte bien s&ucirc;r) :
<UL>
<LI>Appeler notre ligne d'appel group&eacute; (qui est un num&eacute;ro de t&eacute;l&eacute;phone qui
se connecte sur une banque de modems - le premier modem libre est utilis&eacute;).</LI>
<LI>Connexion avec une paire valide de nom utilisateur et mot de passe</LI>
<LI>Au prompt du shell, lancement de la commande <CODE>ppp</CODE> pour lancer PPP sur
le serveur.</LI>
<LI>D&eacute;marrer PPP sur le PC (il peut utiliser Windows, DOS, Linux, MAC OS ou
n'importe quoi d'autre - ce n'est pas un probl&egrave;me).</LI>
</UL>
</P>
<P></P>
<P>Le serveur utilise un fichier <CODE>/etc/ppp/options.ttyXX</CODE> individuel pour
chacune des connexions sur le port o&ugrave; est configur&eacute; l'adresse IP distante pour
l'allocation des adresses IP dynamiques. Le serveur utilisateur route les 
clients avec proxyarp (configur&eacute; avec l'option appropri&eacute;e de pppd). Cela 
oblige la pr&eacute;sence de routed ou gated.</P>
<P></P>
<P>Quand l'utilisateur raccroche de son cot&eacute;, <CODE>pppd</CODE> le d&eacute;tecte et indique au 
modem de raccrocher, fermant en m&ecirc;me temps la liaison PPP.</P>
<P></P>

<H2>26.3 <A NAME="ss26.3"></A> Faire marcher les programmes tous ensemble</H2>

<P>Vous avez besoin des programmes suivants :
<UL>
<LI>Linux, correctement compil&eacute; avec les options n&eacute;cessaires</LI>
<LI>La version de <CODE>pppd</CODE> correspondant &agrave; votre noyau</LI>
<LI>Un programme 'getty' qui d&eacute;croche intelligemment les communications par 
modem. <BR>
Nous utilisons getty_ps2.0.7h, mais mgetty est aussi bien. Je sais que mgetty
peut s'apercevoir qu'un appel utiliser PAP/CHAP (PAP est le standard pour
Windows 95) et invoquer <CODE>ppp</CODE>d automatiquement, mais je dois encore explorer un
peu &ccedil;a.</LI>
<LI>Un serveur de nom (DNS) fonctionnel qui est accessible pour les 
utilisateurs qui se connectent.</LI>
</UL>
</P>
<P></P>
<P><B>Ce howto ne couvre pas sa configuration. Regardez la documentation de
getty de votre choix ou le serial HOWTO pour plus d'informations sur le sujet.</B></P>
<P></P>

<H2>26.4 <A NAME="ss26.4"></A> Configurer les fichiers d'options</H2>

<P>Vous avez besoin de configurer la totalit&eacute; de <CODE>/etc/ppp/options</CODE> avec 
les options standard pour les ports d'appel. Les options utiles sont :</P>
<P>
<HR>
<PRE>
asyncmap 0
netmask 255.255.254.0
proxyarp
lock
crtscts
modem
</PRE>
<HR>
</P>
<P></P>
<P>Remarque - nous n'utilisons AUCUN routage (direct) - et en particulier il
n'y a pas d'option defaultroute. La raison de cela est que tout ce dont vous
avez besoin (en tant que serveur PPP) &agrave; l'endroit o&ugrave; router les paquets
<B>venant</B> du client ppp vers votre r&eacute;seau local ou Internet et de 
router les paquets <B>vers</B> le client ppp qui viennent du votre r&eacute;seau local
ou d'Internet.</P>
<P></P>
<P>Tout ce dont vous avez besoin est la route h&ocirc;te de la machine client et 
l'utilisation de l'option 'proxyarp' de pppd.</P>
<P></P>
<P>L'option 'proxyarp' configure (surprise) une entr&eacute;e proxy ARP dans la table
ARP du serveur qui signifie en substance 'envoie moi tous les paquets destin&eacute;s
au client'. C'est la mani&egrave;re la plus simple de configurer le routage vers un
client PPP unique - mais elle ne peut &ecirc;tre utilis&eacute; pour le routage entre deux
r&eacute;seaux locaux - vous devez alors utiliser les routes r&eacute;seau r&eacute;elles qui ne
pourront pas utiliser le proxy ARP.</P>
<P></P>
<P>Vous devez certainement avoir envie de fournir des adresses IP dynamiques aux
utilisateurs qui se connectent. Vous pouvez le faire en associant une adresse
IP dynamique sur chaque port d'appel. Cr&eacute;ez alors pour chaque port d'appel
un <CODE>/etc/ppp/options.ttyXX</CODE>.</P>
<P></P>
<P>Dedans, mettez simplement l'adresse IP locale du serveur et l'adresse IP
qui doit &ecirc;tre utilis&eacute; pour ce port. Par exemple </P>
<P>
<HR>
<PRE>
kepler:slip01
</PRE>
<HR>
</P>
<P>Remarquez en particulier que vous pouvez utiliser les noms d'h&ocirc;tes valides
dans ce fichier (je trouve que c'est la seule fa&ccedil;on de se souvenir des adresses
IP des machines importantes de mon r&eacute;seau, les noms sont bien plus 
significatifs) !</P>
<P></P>

<H2>26.5 <A NAME="ss26.5"></A> Configurer pppd pour permettre aux utilisateurs de le lancer</H2>

<P>Comme configurer une liaison ppp implique de configurer un p&eacute;riph&eacute;rique dans
le noyau (une interface r&eacute;seau) et de manipuler les tables de routage, des
privil&egrave;ges sp&eacute;ciaux sont n&eacute;cessaires - en fait la totalit&eacute; des privil&egrave;ges root.</P>
<P></P>
<P>Heureusement, <CODE>pppd</CODE> est pr&eacute;vu pour marcher correctement avec set uid root.
Vous devez donc
<HR>
<PRE>
chmod u+s /usr/sbin/pppd
</PRE>
<HR>
</P>
<P></P>
<P>Quand vous listez le fichier, il doit appara&icirc;tre comme cela
<HR>
<PRE>
-rwsr-xr-x   1 root     root        74224 Apr 28 07:17 /usr/sbin/pppd
</PRE>
<HR>
</P>
<P></P>
<P>Si vous n'avez pas &ccedil;a, vous ne pourrez pas utiliser votre liaison ppp.</P>
<P></P>

<H2>26.6 <A NAME="ss26.6"></A> Cr&eacute;er un alias global pour pppd</H2>

<P>Pour simplifier les choses pour les utilisateurs de notre connexion PPP, nous
cr&eacute;erons un alias global (dans /etc/bashrc) qui est en fait une simple
commande qui lancera ppp sur le serveur d&egrave;s qu'ils seront connect&eacute;s.</P>
<P></P>
<P>Cela nous donne
<HR>
<PRE>
alias ppp=&quot;exec /usr/sbin/pppd -detach&quot;
</PRE>
<HR>
</P>
<P></P>
<P>Et il fait ceci
<UL>
<LI>exec : va remplacer le programme en cours (dans le cas d'un shell)
par le programme qui va &ecirc;tre lanc&eacute;.</LI>
<LI>pppd -detach : lance <CODE>pppd</CODE> et le laisse pas en t&acirc;che de fond. Cela
assure que <CODE>pppd</CODE> existe et qu'il n'y a pas d'autres processus qui tra&icirc;nent.</LI>
</UL>
</P>
<P>Quand un utilisateur se connecte comme cela, il va appara&icirc;tre apr&egrave;s un 'w'
<HR>
<PRE>
  6:24pm  up 3 days,  7:00,  4 users,  load average: 0.05, 0.03, 0.00
User     tty       login@  idle   JCPU   PCPU  what
hartr    ttyC0     3:05am  9:14                -
</PRE>
<HR>
</P>
<P></P>
<P>Et c'est tout... Je vous avais dit que c'&eacute;tait simple un serveur PPP de base !</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="PPP-HOWTO-27.html">suivant</A>,
Chapitre <A HREF="PPP-HOWTO-25.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="PPP-HOWTO.html#toc26">ce chapitre</A>,
 <A HREF="PPP-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="PPP-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>