13. Si votre serveur PPP utilise PAP (Password Authentification Protocol)

Contenu de cette section

Si le serveur sur lequel vous vous connectez a besoin de l'authentification PAP ou CHAP, vous avez un petit peu plus de travail.

Pour les fichiers de configuration précédents, ajouter les lignes suivantes :


#
# force pppd a utiliser le nom utilisateur de FAI comme 'nom d'hote' pendant
# le processus d'authentification
name <le nom de votre FAI>       # vous devez editer cette ligne
#
# Si vous avez un *serveur* PPP vous devez forcer PAP ou CHAP en decommentant
# l'une des lignes suivantes. Ne pas les utiliser si vous etes un client qui
# se connecte sur un serveur PPP (meme s'il utilise PAP ou CHAP) puisque cela
# forcera le serveur a s'authentifier aupres de votre machine (alors que cela
# ne sera certainement pas possible - et la liaison echouera).
#+chap
#+pap
#
# Si vous utilisez des secrets ENCRYPTES dans le fichier /etc/ppp/pap-secrets,
# alors decommentez la ligne suivante.
# Remarque: ce n'est pas pareil que d'utiliser les mots de passe MS encryptes
# comme ils peuvent etres avec MS RAS sur Windows NT.
#+papcrypt

13.1 Utiliser MSCHAP

Microsoft Windows NT RAS peut être configuré pour utiliser une variation particulière de CHAP (Challenge/Handshake Authentication Protocol). Dans l'archive des sources de PPP, vous devriez trouver un fichier appelé README.MSCHAP80 qui parle de cela.

Vous pouvez déterminer si le serveur demande une authentification utilisant ce protocole en activant le deboguage dans pppd. Si le serveur demande une authentification MS CHAP, vous devriez voir les lignes


rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]

L'information critique ici est auth chap 80.

Pour utiliser MS CHAP, vous devez recompiler pppd. Veuillez consulter les instructions dans le fichier README.MSCHAP80 des sources de PPP pour obtenir les instructions sur la façon de compiler en utilisant cette variante.

Vous devez remarquer que le code présent supporte uniquement des clients Linux PPP connectés sur un serveur MS Windows NT. Mais NE supporte PAS la configuration d'un serveur PPP Linux pour utiliser l'authentification MSCHAP80 pour les clients.

13.2 Le fichier de secrets de PAP/CHAP

Si vous utilisez l'authentification PAP ou CHAP, alors vous devez créer les fichiers . Ce sont


/etc/ppp/pap-secrets
/etc/ppp/chap-secrets

Il doivent être possédés par root, le groupe root et avoir les permissions 740 pour la sécurité.

Le premier point à remarquer au sujet de PAP et CHAP est qu'ils sont conçus pour authentifier les ordinateurs mais pas les utilisateurs

"Humm? Qu'est ce que ça change ? " Me demandez vous.

Hé bien, une fois que l'ordinateur a établi une connexion PPP avec le serveur, n'importe quel utilisateur de votre système peut utiliser cette connexion - pas seulement vous. C'est pourquoi vous pouvez configurer un réseau à large domaine en reliant deux réseaux locaux avec PPP.

PAP peut (et CHAP DOIT) demander une authentification bidirectionnelle - c'est un nom et un code secret qui est nécessaire pour chaque ordinateur avec lequel il est impliqué. Cependant, ce n'est pas la façon dont tous les serveurs PPP fonctionnent pour offrir l'authentification PAP des appels PPP.

Il a été dit que votre FAI vous donnerait certainement un nom utilisateur et un mot de passe pour vous permettre de vous connecter sur son système et ensuite sur Internet. Votre FAI se fiche de connaître le nom de votre ordinateur, vous devrez donc utiliser votre nom utilisateur chez votre FAI comme nom pour votre machine.

Cela est possible avec l'option name username de pppd. Donc, si vous utilisez le nom donné par votre FAI, ajoutez la ligne


name votre_utilisateur nom_chez_votre_FAI

dans votre fichier /etc/ppp/options.

Techniquement, vous devrez utiliser user votre_utilisateur nom_chez_votre_FAI pour PAP, mais pppd est suffisamment intelligent pour interpréter l'option name comme user si nécessaire pour utiliser PAP. L'avantage d'utiliser l'option name est qu'elle est également valide pour CHAP.

Puisque PAP permet d'authentifier les ordinateurs, techniquement, vous devez aussi spécifier un nom d'ordinateur distant. Toutefois, comme de nombreuses personnes ont plus d'un seul FAI, vous pouvez utiliser un caractère générique (*) pour le nom d'ordinateur distant dans le fichier de secrets.

Il est aussi intéressant de remarquer que de nombreux FAI utilise des banques de modems multiples connectés sur différents serveurs de terminaux - tous ont un nom différent, mais sont accessibles avec un seul numéro d'appel. Il peut alors être difficile dans certaines circonstances de savoir à l'avance quel est le nom de l'ordinateur distant, puisque cela dépendra du serveur de terminal sur lequel vous vous connecterez !

13.3 Le fichier de secrets de PAP

Le fichier /etc/ppp/pap-secrets ressemble à


# Authentication Secrete avec PAP
# client        serveur       secret     adresses_IP_locale_acceptable

Les quatre champs sont séparés par des espaces et le dernier peut être omis (c'est l'adresse dynamique ou sans doute statique de votre FAI).

Supposons que votre FAI vous ait donné un nom utilisateur fred et un mot de passe flintstone vous aurez l'option name fred dans /etc/ppp/options[.ttySx] et vous configurerez votre /etc/ppp/pap-secrets comme suit


# Authentication Secrete avec PAP
# client        serveur       secret     adresses_IP_locale_acceptable
fred            *       flintstone

Cela signifie que pour une machine locale fred (pppd lui impose de s'appeler comme cela même si ça n'est pas son nom de machine réel) et pour n'importe quel serveur, utiliser le mot de passe (secret) "flintstone".

Remarquez que vous ne devez pas spécifier d'adresse IP locale, à moins que vous ne deviez FORCER une adresse locale statique particulière. Même si vous essayez cette option, il y a peu de chances qu'elle marche puisque la plupart des serveurs PPP (pour des raisons de sécurité) ne permettent pas au système distant de configurer l'adresse IP qu'ils reçoivent.

13.4 Le fichier de secrets de CHAP

Cette méthode nécessite une méthode authentification mutuelle - c'est à dire que vous devez permettre à votre machine d'authentifier le serveur distant ET le serveur distant d'authentifier votre machine.

Donc, si votre machine s'appelle fred et que le serveur distant s'appelle barney il faut définir sur fred name fred remotename barney et sur la machine distante name barney remotename fred dans les fichiers /etc/ppp/options.ttySx respectifs.

Le fichier /etc/chap-secrets de fred ressemblera à


# Authentication Secrete avec CHAP
# client        serveur       secret     adresses_IP_locale_acceptable
fred            barney      flintstone
barney          fred        wilma

et pour barney


# Authentication Secrete avec CHAP
# client        serveur       secret     adresses_IP_locale_acceptable
barney          fred    flintstone
fred            barney  wilma

Remarquez en particulier que les deux machines doivent avoir des entrées pour une authentification bidirectionnelle. Cela permet à la machine locale d'authentifier elle-même la machine distante ET la machine distante d'authentifier elle-même la machine locale.

13.5 Supporter plusieurs connexions authentifiées avec PAP

Certains utilisateurs ont plus d'un serveur sur lesquels ils se connectent en utilisant PAP. A partir du moment où votre nom utilisateur est différent sur chacune des machines sur lesquelles vous vous connectez, il n'y a pas de problème.

Mais, nombreux sont les utilisateurs qui ont le même nom utilisateur sur deux (ou plus, voire même tous les) systèmes où ils se connectent. Le problème revient donc à choisir la bonne ligne du fichier /etc/ppp/pap-secrets.

Comme vous pouvez le supposer, PPP fournit un mécanisme pour régler cela. PPP permet de définir un << pseudonyme >> pour le serveur distant final de la connexion en utilisant l'option remotename de pppd.

Supposons que vous vous connectiez sur deux serveurs PPP utilisant le même nom utilisateur fred. Vous configurerez votre /etc/ppp/pap-secrets avec


fred    pppserveur1      barney
fred    pppserveur2      wilma

Maintenant, pour se connecter sur pppserveur1 vous utiliserez name fred remotename pppserver1 dans votre ppp-options et pour pppserveur2 name fred remotename pppserver2.

Puisque vous pouvez sélectionner le fichier d'options à utiliser avec pppd en utilisant l'option file filename, vous pouvez définir un script pour se connecter sur chacun de vos serveurs PPP, qui choisira le fichier d'options correct et mettra la bonne option remotename.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre