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
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.
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 !
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.
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.
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
.