rp-pppoe pour Linux (Mandrake et Debian)

Transcription

rp-pppoe pour Linux (Mandrake et Debian)
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
rp-pppoe & Linux
Le Kit proposé par Wanadoo contient (ou a contenu à une époque) une version d'Enternet pour
Linux, soumis à la même licence que celle des versions Windows. La société "Roaring Penguin"1
propose un client sous licence GPL.
La manipulation qui suit présente l'installation et la configuration de rp-pppoe sur une distribution
Mandrake 8.1.
La distribution Debian propose un paquetage PPPoE qui n'est autre qu'une adaptation de rp-pppoe.
Présentation
Il est nécessaire d'avoir installé au préalable le démon pppd.
rp-pppoe est proposé sous la forme de paquetage RPM, autant en profiter. A l'heure où je rédige ces
lignes, Mandrake propose la version 3.1 alors que l'on trouve la version 3.3 sur le site de Roaring
Penguin. J'ai choisi d'installer le rp-pppoe-3.3-1.i386.rpm pour RedHat, qui semble fonctionner
parfaitement sur la Mandrake.
Un deuxième paquetage, rp-pppoe-gui-3.3-1.i386.rpm, permet comme son nom le laisse supposer,
de disposer d'une interface graphique pour configurer, démarrer et arrêter la connexion PPPoE. Ce
paquetage ne présente un intérêt que si vous utilisez la connexion sur une machine Linux qui vous
sert de poste de travail avec une interface graphique.
Nous allons voir comment utiliser rp-pppoe dans deux cas de figure :
•
Une configuration plutôt adaptée à une connexion permanente, initialisée au démarrage de la
machine, et qui sera utilisable par tout le monde. Cette méthode est particulièrement adaptée
si votre machine Linux est une passerelle vers votre réseau privé.
•
Une configuration plutôt adaptée à une connexion selon les besoins, initialisée
manuellement par l'utilisateur. Elle fait appel à une interface graphique. Correspond à un
usage proche de celui d'un modem RTC.
Installation
•
Installez le paquetage ppp si ce n'est déjà fait (ppp-2.4.1-2mdk sur Mandrake 8.1).
•
Assurez-vous que vous disposez d'une interface réseau convenable. Elle doit être installée,
mais pas nécessairement activée. (Eth1 dans l'exemple).
•
Installez le paquetage rp-pppoe-3.3-1.i386.rpm.
•
Installez éventuellement le paquetage rp-pppoe-gui-3.3-1.i386.rpm.
Vous avez tout ce qu'il faut. l'installation de rp-pppoe place quelques scripts utiles :
•
/etc/rc.d/init.d/adsl
qui permet de démarrer la connexion PPPoE dans les divers niveaux du SystemV que vous
1 Roaring Penguin : http://www.roaringpenguin.com/pppoe/
Page 1 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
pouvez configurer de façon graphique par kSysV, fourni dans la Mandrake 8.1.
•
adsl-connect, adsl-start et adsl-stop
qui, comme leurs noms l'indiquent, permettent de démarrer et d'arrêter la connexion PPPoE
depuis une console.
adsl-connect est un peu plus compréhensible que adsl-start au niveau de l'affichage produit.
•
adsl-setup
C'est un script qui permet de mettre à jour le fichier de configuration de rp-pppoe :
/etc/ppp/pppoe.conf, ainsi que les fichiers de mots de passe pap-secrets et chap-secrets dans
le même répertoire.
Vous pouvez bien entendu utiliser ce script, mais les fichiers de configuration sont tellement
simples...
Toutefois, attendez un peu, qu'on ait eu le temps de voir ce que la configuration nécessite
comme informations.
Le paquetage propose également quelques autres outils de diagnostics et de mise au point qui ne
devraient pas nous servir.
Configuration de la (des) carte réseau(x)
Par des moyens graphiques,
netconf permet facilement de
configurer
vos diverses
cartes réseau.
Page 2 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
Dans l'exemple, c'est l'adaptateur 2 qui sera utilisé pour
la connexion PPPoE.
Pour une connexion sur le
câble, le mieux est de désactiver cette interface. Pour le
moment, si vous utilisez les
services DHCP, la carte est
activée et est configurée
comme indiqué sur l'image.
Vous devez retrouver dans /etc/sysconfig/network-scripts un fichier nommé ifcfg-eth1 qui contient
ces informations.
Configuration de rp-pppoe, méthode permanente
La méthode que nous voyons ici est plutôt adaptée à une connexion établie de façon permanente,
lors du boot de la machine. Tous les utilisateurs pourront alors en profiter. C'est ce qu'il faudra faire
si votre machine est une passerelle vers votre réseau privé.
Si vous optez pour une utilisation plus "personnelle" où chaque utilisateur pourra à sa guise ouvrir
ou fermer la connexion, vous préférerez probablement utiliser l'interface graphique, que nous
verrons plus loin.
Le fichier pppoe.conf
Voici le fichier en intégralité. Ce qu'il est important de voir est signalé en gras surligné.
#***********************************************************************
#
# pppoe.conf
#
# Configuration file for rp-pppoe. Edit as appropriate and install in
# /etc/ppp/pppoe.conf
#
# NOTE: This file is used by the adsl-start, adsl-stop, adsl-connect and
#
adsl-status shell scripts. It is *not* used in any way by the
#
"pppoe" executable.
#
Page 3 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
# Copyright (C) 2000 Roaring Penguin Software Inc.
#
# This file may be distributed under the terms of the GNU General
# Public License.
#
# $Id: pppoe.conf,v 1.7 2001/09/14 19:07:39 dfs Exp $
#***********************************************************************
# When you configure a variable, DO NOT leave spaces around the "=" sign.
# Ethernet card connected to ADSL modem
# ici doit figurer le nom de l'interface que vous allez utiliser.
ETH=eth1
#
#
#
#
#
ADSL user name. You may have to supply "@provider.com" Sympatico
users in Canada do need to include "@sympatico.ca"
Sympatico uses PAP authentication. Make sure /etc/ppp/pap-secrets
contains the right username/password combination.
For Magma, use [email protected]
# ici doit figurer le nom d'utilisateur que votre fournisseur vous a donné.
USER=fti/xxxxxxx@fti
# Bring link up on demand? Default is to leave link up all the time.
# If you want the link to come up on demand, set DEMAND to a number indicating
# the idle time after which the link is brought down.
# Ici, vous indiquez si vous voulez utiliser une connexion permanante
# (choix par défaut)
DEMAND=no
# Ou à la demande. La valeur indiquée est le temps d'inactivité au bout duquel
# la connexion sera interrompue (en secondes probablement).
#DEMAND=300
# DNS type: SERVER=obtain from server; SPECIFY=use DNS1 and DNS2;
# NOCHANGE=do not adjust.
# Ici, vous choisissez la façon dont le ou les DNS vont être choisis
#
SERVER pour récupérer automatiquement les informations du FAI
#
(vous devrez alors exploiter USEPEERDNS)
#
SPECIFY pour indiquer vous-même le ou les DNS que vous voulez utiliser
#
(vous devrez alors exploiter DNS1 et DNS2)
# Dans cet exemple, nous utiliserons les DNS indiqués par le FAI
DNSTYPE=SERVER
# Obtain DNS server addresses from the peer (recent versions of pppd only)
USEPEERDNS=yes
DNS1=
DNS2=
# Make the PPPoE connection your default route.
# DEFAULTROUTE=no if you don't want this.
Set to
# Normalement, votre route par défaut doit pointer sur la passerelle de votre FAI
# Sauf si vous savez exactement ce que vous faites, laissez cette option à YES
DEFAULTROUTE=yes
### ONLY TOUCH THE FOLLOWING SETTINGS IF YOU'RE AN EXPERT
# Puisqu'on nous le dit...
# Tout de même, il y a une ou deux options à voir :
#
#
#
#
#
#
#
#
How long adsl-start waits for a new PPP interface to appear before
concluding something went wrong. If you use 0, then adsl-start
exits immediately with a successful status and does not wait for the
link to come up. Time is in seconds.
WARNING WARNING WARNING:
If you are using rp-pppoe on a physically-inaccessible host, set
Page 4 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
#
#
#
#
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
CONNECT_TIMEOUT to 0. This makes SURE
to connect forever after adsl-start is
give out after CONNECT_TIMEOUT seconds
connect again, making it impossible to
that the machine keeps trying
called. Otherwise, it will
and will not attempt to
reach.
# rp-pppoe essaye de reconnecter à chaque interruption de la liaison
# si la connexion n'est pas à la demande.
# l'option suivante permet éventuellement d'obliger rp-pppoe à essayer d'établir
# la connexion indéfiniment. Ici, nous nous contenterons de 30 secondes.
# Si vous devez pouvoir accéder à votre machine à distance (ssh, telnet...)
# mettez alors cette valeur à 0 pour forcer les tentatives à l'infini.
CONNECT_TIMEOUT=30
# How often in seconds adsl-start polls to check if link is up
CONNECT_POLL=2
# Specific desired AC Name
ACNAME=
# Specific desired service name
SERVICENAME=
# Character to echo at each poll.
# anything echoed
PING="."
Use PING="" if you don't want
# File where the adsl-connect script writes its process-ID.
# Three files are actually used:
#
$PIDFILE
contains PID of adsl-connect script
#
$PIDFILE.pppoe contains PID of pppoe process
#
$PIDFILE.pppd contains PID of pppd process
CF_BASE=`basename $CONFIG`
PIDFILE="/var/run/$CF_BASE-adsl.pid"
# Do you want to use synchronous PPP? "yes" or "no". "yes" is much
# easier on CPU usage, but may not work for you. It is safer to use
# "no", but you may want to experiment with "yes". "yes" is generally
# safe on Linux machines with the n_hdlc line discipline; unsafe on others.
SYNCHRONOUS=no
# Do you want to clamp the MSS? Here's how to decide:
# - If you have only a SINGLE computer connected to the ADSL modem, choose
#
"no".
# - If you have a computer acting as a gateway for a LAN, choose "1412".
#
The setting of 1412 is safe for either setup, but uses slightly more
#
CPU power.
# Option fort intéressante, surtout si la machine agit comme une passerelle
# entre le Net et votre réseau local. Cette option permet à vos hôtes du réseau
# privé d'adopter un MTU compatible avec PPPoE
CLAMPMSS=1412
#CLAMPMSS=no
# LCP echo interval and failure count.
LCP_INTERVAL=20
LCP_FAILURE=3
# PPPOE_TIMEOUT should be about 4*LCP_INTERVAL
PPPOE_TIMEOUT=80
# Firewalling: One of NONE, STANDALONE or MASQUERADE
# Personellement, je préfère m'occuper du firewall à part en écrivant mes propres règles
# dans netfilter.
FIREWALL=NONE
# Il n'est normalement pas nécessaire de modifier les autres paramètres.
# Linux kernel-mode plugin for pppd. If you want to try the kernel-mode
# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
LINUX_PLUGIN=
Page 5 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
# Any extra arguments to pass to pppoe.
# like this:
PPPOE_EXTRA=""
Normally, use a blank string
# Rumour has it that "Citizen's Communications" with a 3Com
# HomeConnect ADSL Modem DualLink requires these extra options:
# PPPOE_EXTRA="-f 3c12:3c13 -S ISP"
# Any extra arguments to pass to pppd.
# like this:
PPPD_EXTRA=""
Normally, use a blank string
Le "CLAMP MSS", est un moyen d'agir sur la taille maximale des paquets au niveau TCP. Nous
verrons ça plus en détail un peu plus loin. Il est possible de pousser cette valeur jusqu'à 1452. Au
delà, nous aurons des problèmes.
Les fichiers pap-secrets et chap-secrets
Ils ont la même allure tous les deux :
# Secrets for authentication using PAP
# client
server secret
fti/xxxxxxx@fti *
xxxxxxx
IP addresses
*
Bien entendu, le mot de passe (secret) est écrit en clair dans ces fichiers. Attention donc aux droits
d'accès... Normalement, dans ce type de configuration, seul root a accès en lecture et en écriture.
Presque toutes ces options auraient pu être configurées par l'intermédiaire du script adsl-setup.
Maintenant que l'on sait à peu près de quoi l'on parle, il n'y a plus aucun inconvénient à le faire à
votre choix, par le script ou par la mise à jour de ces fichiers.
Il ne vous reste plus qu'à configurer votre SystemV pour qu'il appelle /etc/rc.d/init.d/adsl start au
démarrage et vous aurez alors une interface ppp0 active.
Configuration de rp-pppoe pour chaque utilisateur
Dans le cas où la machine Linux est utilisée comme un poste de travail, on aura certainement intérêt
à utiliser plutôt cette méthode, à moins que l'on souhaite disposer d'une connexion permanente.
il faut lancer l'utilitaire
tkpppoe.
Le
bouton
"Properties"
permet le paramétrage du
client.
Page 6 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
L'onglet "Basic" permet la
saisie de l'identifiant de l'utilisateur.
L'onglet NIC and
permet de spécifier :
DNS
•
L'interface
utilisée.
Ethernet
•
La façon de choisir
son DNS.
L'onglet "Options"...
Attention, la connexion PPP
synchrone peut ne pas fonctionner correctement. Il faut
essayer. La connexion synchrone est moins gourmande
en ressources CPU
Il suffit maintenant d'utiliser les boutons "Start" et Stop" pour utiliser sa connexion comme on le
ferait avec un modem RTC.
La configuration, pour un utilisateur donné, n'est, bien entendu, à faire qu'une fois.
Page 7 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE
Configurer PPPoE :
© Christian CALECA
http://christian.caleca.free.fr/pppoe/
Mise en garde
La mise en oeuvre de rp-pppoe à travers l'interface graphique n'utilise pas les fichiers de
configuration vus plus haut. ses propres fichiers sont créés dans /etc/ppp/rp-pppoe-gui, ce qui
permet de disposer d'une configuration éventuellement différente pour chaque utilisateur.
Et pour la Debian...
C'est somme-toute assez similaire. La configuration testée est une Woody stable.
Utilisez le script pppoeconf, qui recherchera automatiquement l'interface attachée au modem, vous
posera les questions essentielles et configurera convenablement le client.
L'originalité de la Debian, c'est qu'elle intègre plus intimement PPPoE à la connexion PPP
"classique".
Vous démarrerez et arrêterez votre connexion PPPoE par un :
/etc/init.d/ppp start (ou stop)
Dans la pratique, le script pppoeconf effectue :
•
une mise à jour du fichier /etc/ppp/peers/dsl-provider,
•
une mise à jour du fichier /etc/ppp/peers/provider,
•
une mise à jour du fichier /etc/ppp/pap-secrets,
•
une mise à jour du fichier /etc/ppp/ppp_on_boot.dsl,
•
crée un lien symbolique /etc/ppp/ppp_on_boot qui pointe sur /etc/ppp/ppp_on_boot.dsl,
•
(et peut-être d'autres choses encore)...
Normalement, vous n'avez rien à modifier pour que ça fonctionne, mais faisons tout de même les
remarques suivantes :
•
chap-secrets reste vide, si bien que l'authentification PPP se fait en clair. Ce n'est pas très
gènant pour l'ADSL, ça peut l'être bien d'avantage pour le câble. Vous avez tout intérêt à
copier pap-secrets dans chap-secrets et à vider ensuite pap-secrets.
•
Certains paramètres qui peuvent intervenir sur le bon fonctionnement de la connexion PPP
et de son partage sur le LAN, comme le MTU et le MSS CLAMP se trouvent dans le fichier
/etc/ppp/peers/dsl-provider. N'hésitez donc pas à visiter ce fichier, qui, à peu de choses près,
correspond au pppoe.conf de rp-pppoe.
Page 8 sur 8
Réalisé à partir des pages du site, du 6 mars 2005 par Laurent BAYSSE