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