Page suivante Page précédente Table des matières
12. Configurations avancées
Les configurations précédentes décrivent la façon d'installer une station Linux pour des utilisations normales. Certains d'entre vous ont peut-être des besoins qui requièrent des configurations légèrement plus avancées. Les exemples suivants sont les plus communs. Les détails concernant AX.25, Ottawa PI et les pilotes génériques SCC ont été mis sur http://sunsite.unc.edu/mdw/HOWTO/HAM-HOWTO.html.
12.1 PPP - Protocole Point à Point
Le Protocole Point à Point est un protocole transportant d'autres protocoles, TCP/IP par exemple, sur des lignes séries, et que beaucoup de personnes utilisent à la place de SLIP. Il offre des fonctionnalités avancées, des options de corrections d'erreurs et gestion de la sécurité. Il corrige beaucoup de déficiences de SLIP et est utilisable aussi bien pour des liaisons asynchrones que synchrones.
Une caractéristique importante de PPP est l'allocation dynamique d'adresses, probablement exploitée par votre serveur PPP. Cette caractéristique permet à un client PPP de demander son adresse au serveur grâce à une requête spéciale. De cette manière, la configuration est plus propre qu'avec SLIP car la capacité à retrouver son adresse est externe au protocole.
Les auteurs de la version Linux sont
Michael Callahan, <callahan@maths.ox.ac.uk>etAl Longyear, <longyear@netcom.com>. La plupart des informations que vous trouverez ici viennent de la documentation qui accompagne les logiciels PPP. Cette documentation est complète et vous en apprendra beaucoup plus.Le code PPP de Linux est sorti de la phase de tests ALPHA et est maintenant disponible pour tout le monde. Le code PPP 1.0.0 de Linux est basé sur la version libre de PPP de Paul Mackerras pour les systèmes d'exploitation dérivés de BSD. La version 1.0.0 est basée sur la version 2.1.1 du code libre.
Le code PPP se compose de deux parties. La première est un module du noyau qui gère l'assemblage et le désassemblage des paquets. La seconde est un ensemble de protocoles appelés LCP, IPCP, UPAP et CHAP, qui négocient les options de la liaison, faisant fonctionner la liaison et gérant l'authentification.
Dois-je utiliser PPP à la place de SLIP ?
Vous utiliserez PPP à la place de SLIP pour plusieurs raisons. Les plus courantes sont :
- Votre opérateur internet ne supporte que PPP
C'est la plus évidente des raisons pour utiliser PPP au lieu de SLIP.
- Vous avez du bruit sur votre ligne série en temps normal
PPP fournit une séquence de vérification pour chaque paquet transmis, SLIP non. Si vous avez une ligne série bruitée, et que vous utilisez SLIP, votre correction d'erreur sera réalisée d'une extrémité à l'autre de la connexion IP, c'est-à-dire entre votre machine et la machine de destination, alors qu'avec PPP la détection d'erreur s'effectue localement sur la liaison entre votre machine et le serveur PPP. Ceci permet une récupération d'erreurs plus rapide.
- Vous avez besoin d'une des caractéristiques propres à PPP.
PPP propose plusieurs possibilités que ne permet pas SLIP. Vous pouvez vouloir par exemple transporter non seulement de l'IP, mais aussi du DECNET, ou des paquets AppleTalk au dessus de votre liaison série. PPP vous permet de le faire.
Où obtenir les logiciels PPP
Le logiciel PPP est disponible à :
sunsite.unc.edu
/pub/Linux/system/Networking/serial/ppp-2.1.2d.tar.gzCe fichier contient le source du noyau et les sources et binaires de pppd. La version 1.0.0 est prévu pour être utilisée avec les noyaux 1.0.x et 1.1.x. La version 2.1.2 est prévue pour les noyaux 1.2.x, et la 2.2.0 pour les noyaux 1.3.x.
Installer le logiciel PPP
L'installation du logiciel PPP est très simple.
Le pilote du noyau.
Un support pour PPP a été construit dans le noyau depuis quelque temps, dès lors vous êtes encouragés à utiliser un noyau récent. La configuration du noyau est très simple, les commandes suivantes devraient fonctionner :
Quand vous rebootez avec le nouveau noyau, vous devriez voir à peu près les messages suivants au moment du boot:# make config (rappelez-vous de répondre 'y' au support PPP) # make dep # make (pensez à installer le nouveau noyau après la recompilation!)Ceci indique que le support PPP a bien été compilé dans votre noyau.PPP: version 0.2.7 (4 channels) NEW_TTY_DRIVERS OPTIMIZE_FLAGS TCP compression code copyright 1989 Regents of the University of California PPP line discipline registered.Maintenant, essayez de regarder le contenu de
/proc/net/dev. Faites attention à ne pas utiliser more ou less dans le système de fichiersproccar ils vérifient la longueur du fichier en premier et c'est une caractéristique des fichiers deprocd'avoir une longueur nulle, aussi faites:Il devrait ressembler à quelque chose comme :# cat /dev/proc/net
Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 0 0 0 0 0 0 0 0 0 0 0 ppp0: 0 0 0 0 0 0 0 0 0 0 0 ppp1: 0 0 0 0 0 0 0 0 0 0 0 ppp2: 0 0 0 0 0 0 0 0 0 0 0 ppp3: 0 0 0 0 0 0 0 0 0 0 0Cela indique que le pilote noyau a été installé correctement.
pppd
Pour extraire le logiciel pppd et les utilitaires l'accompagnant, ce qui suit devrait convenir:
Si vous voulez recompiler pppd, tapez make dans le sous-répertoire# cd /usr/src # gzip -dc ppp-2.1.2d.tar.gz | tar xvf -pppd. Il y aura des messages d'avertissement pendant la compilation delcp.c,upap.cetchap.cmais tout sera OK.Si vous voulez recompiler chat, consultez le fichier
README.linuxdans le répertoirechat.Pour installer, taper make install dans les répertoires
chatetpppd. Ces commandes installeront les binaires de chat et pppd dans/usr/etcet la page de manpppd.8dans/usr/man/man8.
pppda besoin d'être lancé sousroot. Vous pouvez positionner le bit suid root ou juste le lancer quand vous êtes root. make install essaiera de l'installer avec le bit suid root, donc si vous êtes root quand vous l'installez tout devrait fonctionner correctement.
Configurer et utiliser les logiciels PPP
Comme SLIP, vous pouvez configurer les logiciels PPP comme client ou comme serveur. Le programme chat joue le même rôle que dip dans le sens qu'il automatise la composition du numéro de téléphone et la connexion à la machine distante. A la différence de dip, il ne convertit pas la ligne série à la discipline PPP. Ceci est réalisé par le programme pppd. pppd peut servir de serveur ou de client. Quand vous l'utilisez comme un client, il appelle le programme chat pour établir la connexion puis il reprend la main pour faire l'ioctl qui change la discipline de la ligne pour celle de ppp et ensuite il vous laisse opérer.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README livré avec le logiciel PPP.
Configurer un client PPP utilisant un modem numéroteur.
C'est peut-être ce que la plupart d'entre vous voudront faire, donc nous allons l'aborder en premier. Vous utiliserez cette configuration si votre fournisseur réseau propose des accès PPP par modem. Quand vous voulez établir la connexion vous lancez simplement pppd sans arguments. Ceci suppose que votre serveur PPP vous assignera une adresse de manière dynamique. Nous verrons plus loin le cas où vous avez une adresse statique. Le programme pppd a un certain nombre d'arguments en ligne qui peuvent modifier son comportement. Ces arguments peuvent être placés d'un fichier de configuration de telle manière que les commandes n'apparaissent pas visibles lorsque quelqu'un branché sur le système fait la commande ps. Ceci est particulièrement important quand pppd fait appel au programme chat: en effet il a besoin du mot de passe pour se connecter sur le serveur et en général vous ne souhaitez pas qu'il soit visible aux autres utilisateurs du système. Le fichier que pppd utilise s'appelle
/etc/ppp/options. Un bon point de départ pour une installation `typique' PPP peut ressembler à ceci:connect /etc/ppp/ppp-connect /dev/ttyS1 19200 crtscts modem lock asyncmap 0 defaultrouteCela signifie que:
La prochaine étape consiste à configurer le script
- pppd doit utiliser le script
/etc/ppp/ppp-connectpour numéroter via le modem et se connecter.- pppd doit utiliser le dispositif
ttyS1à19200bits par seconde, en utilisant le protocole d'échanges de données matérielcrtsctset doit respecter les signaux du modem (particulièrement la détection de porteuse) pour détecter si le modem est toujours en ligne ou si l'appel est fini.- pppd doit créer un fichier
lockpour le dispositifttypour s'assurer qu'un autre processus n'essaie pas de l'utiliser en même temps que lui.- Que la ligne est `bonne pour les 8 bits', c'est à dire que tous les caractères peuvent passer sur la ligne. L'option
asyncmapdétermine quels caractères pppd doit échapper et par défaut ceci est valable pour tous les caractères de contrôle. La plupart des serveurs PPP modernes sont aptes pour les 8 bits et mettreasyncmapà0enjoint pppd de n'échapper aucun caractère.- pppd doit créer une
defaultroutevia le dispositif ppp quand la connexion a réussi./etc/ppp/ppp-connect. Vous devriez normalement utiliser le programme chat livré, avec pppd à l'intérieur de ce script, étant données sa simplicité d'utilisation et sa brièveté. Pour commencer vous devez connaître à quoi ressemble la séquence de connexion de votre serveur PPP. Ce qui suit est un exemple fictif sur lequel je m'appuyerai.
CONNECT 14400 Bienvenue sur les serveur PPP XYZ ! login: <vous entrez votre nom d'utilisateur>^M password: <vous entrez votre mot de passe>^M Maintenant PPP:Le programme chat attend comme arguments une séquence envoi/attente, signifiant qu'il veut une série de `ce qu'il veut', suivi par `ce qu'il doit envoyer'.
/etc/ppp/ppp-connectne doit pas être accessible en lecture. Un échantillon qui colle avec l'exemple fictif ci-dessus ressemble à cela:
J'ai ajouté au script une séquence d'initialisation avant de numéroter ( C'est ATZ. Il est recommandé d'initialiser votre modem avant avant de démarrer).#!/bin/sh # Un script pour se connecter au serveur PPP XYZ NUM=5552857 UID=terryd PASSWD=secret1 # /usr/sbin/chat -v "" ATZ OK ATDT$NUM CONNECT ogin: $UID word: \\q$PASSWD PPP:Notez l'argument
"", il signifie `n'attendez rien' et est utilisé quand vous voulez démarrer une séquence d'envoi.L'argument
-venjoint à chat d'être verbeux. Dans ce mode il enverra au fichier syslog ce qui se passe pendant la connexion pour que vous puissiez voir ce qui s'est passé. Notez le\\qavant$PASSWD. Ceci enjoint à chat de ne pas écrire ce qui suit dans syslog. De cette manière votre mot de passe ne sera pas enregistré. Il est bon de fairechmod 600 /etc/ppp/ppp-connectpour être sûr que les autres utilisateurs ne puissent le lire en vue de voir votre mot de passe. Pour démarrer une session PPP avec la configuration ci-dessus, il suffit de faire : pppd et tout se passera automatiquement. Vous devriez observer le début de session dans le journal du système et quand tout est fini vous devriez voir une routedefaultdans votre table de routage quand vous utilisez la commanderoute -npointée via votre nouveau dispositifppp0.Si vous utilisez une adresse IP statique, vous pouvez l'indiquer en incluant une ligne comme ceci dans votre fichier
/etc/ppp/options:
nnn.nnn.nnn.nnn:
nnn.nnn.nnn.nnnétant votre adresse IP. Notez que cela ne marchera que si votre fournisseur de services Internet vous l'autorise. Les deux points `:' sont importants.Il y a beaucoup d'autres options que vous pouvez mettre dans votre fichier
options. Voir les pages de documentations de pppd et chat pour plus d'informations.
Configurer un client PPP sur une ligne spécialisée.
Configurer un client PPP pour une ligne spécialisée est très rapide. Vous utiliserez encore le programme pppd, mais comme vous n'aurez pas besoin d'établir la connexion, les arguments du programme chat seront plus simples.
L'exemple que je présente ici suppose que le serveur PPP ne nécessite aucune procédure particulière. J'ai fait ce choix car chaque procédure de connexion est différente. Si vous voulez simplement utiliser une liaison locale, ce script devrait vous suffire.
Cette commande ouvre le port série, ouvre ioctl pour le changer en un dispositif ppp, définira la route par défaut sur l'interface ppp. Le paramètre noipdefault signifie que le programme pppd doit demander l'adresse à utiliser pour son interface au serveur. Les messages de debug passeront par syslog. L'argument kdebug 2 génère des messages de debug de niveau 2, ce qui vous donnera plus d'informations sur le déroulement des opérations. Il utilisera le pilotepppd defaultroute noipdefault debug \ kdebug 2 /dev/cua0 9600/dev/cua0à 9600 bps.Si votre serveur PPP a besoin d'une procédure de connexion spéciale, vous pouvez facilement utiliser le programme chat comme dans l'exemple du serveur appelant pour réaliser cette fonction pour vous.
Référez-vous aux pages de man de pppd et chat pour plus d'information. Vous pouvez aussi regarder le fichier README qui vient avec le logiciel PPP.
Configurer un serveur PPP.
La configuration d'un serveur PPP est similaire à celle d'un serveur SLIP. Vous pouvez créer un compte `ppp', qui utilisera un script exécutable comme shell de connexion. L'entrée du fichier
/etc/passwdressemblera à :
ppp:EncPasswd:102:50:PPP client login:/tmp:/etc/ppp/ppploginet le script
/etc/ppp/ppploginressemblera à :
#!/bin/sh exec /usr/etc/pppd passive :192.1.2.23L'adresse indiquée sera celle qui sera assignée à la machine appelante.
Naturellement, si vous voulez que plusieurs utilisateurs puissent se connecter simultanément vous devrez créer autant de comptes et de scripts de connexion que vous voudrez autoriser d'accès PPP car vous ne pouvez utiliser qu'une seule adresse IP par script.
Où obtenir plus d'information sur PPP ou envoyer des rapports d'anomalies?
L'url http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html est une excellente référence pour obtenir des informations plus compréhensible que celles que je donne ici. La plupart des discussions sur PPP pour Linux se tiennent sur la liste de diffusion PPP.
Pour joindre le canal PPP Linux sur le serveur de listes, envoyez un courrier électronique à :
Majordomo@vger.rutgers.eduavec la ligne :
dans le corps du message. La ligne sujet est ignorée.subscribe linux-pppN'oubliez pas de joindre tout le contexte de votre problème, ainsi que toutes les informations utiles pour votre rapport d'anomalie afin que ceux qui vous assisteront comprennent bien votre problème.
Vous pouvez aussi consulter :
Les RFC 1548, 1331, 1332, 1333 et 1334. Ce sont les documents de référence pour PPP.
W. Richard Stevens décrit aussi PPP dans son livre `TCP/IP Illustrated Volume 1', (Addison-Wesley, 1994, ISBN 0-201-63346-9).
12.2 Configurer Linux comme serveur SLIP.
Si vous avez une machine qui doit être joignable par téléphone, et proposer des services réseau, vous devrez configurer votre machine en serveur. Si vous voulez utiliser SLIP comme protocole série, vous aurez le choix entre trois solutions pour configurer votre machine Linux comme serveur SLIP. Ma préférence va à la première présentée, sliplogin, car elle est la plus simple à configurer et à comprendre, mais je présenterai un résumé de chaque pour vous faire une opinion.
Serveur SLIP utilisant sliplogin
sliplogin est un programme que vous pouvez utiliser à la place du programme login normal pour les comptes SLIP. Il convertit la ligne du terminal en ligne SLIP.
L'appelant se connectera avec la procédure standard, en entrant son nom d'utilisateur puis son mot de passe, mais au lieu d'avoir un shell ensuite, sliplogin est exécuté et cherche une entrée dans son fichier de configuration (
/etc/slip.hosts) qui corresponde au nom d'utilisateur. S'il en trouve une, il configure la ligne en mode 8 bits propre et utilise un appel ioctl pour convertir la ligne à la discipline SLIP. Quand cette procédure est terminée, sliplogin lance un script qui configure l'adresse IP, le masque réseau et les routes appropriées. Ce script est généralement appelé/etc/slip.login, mais d'une manière similaire à getty, si vous avez des appelants spéciaux qui nécessitent une initialisation spéciale, vous pouvez créer des scripts appelés/etc/slip.login.loginnamequi seront exécutés à la place de celui par défaut. Il y a trois ou quatre fichiers que vous devez configurer pour que sliplogin travaille pour vous. Je vais détailler où et comment obtenir les fichiers et comment est configuré chacun en détail. Ces fichiers sont:
/etc/passwdpour les comptes utilisateurs./etc/slip.hosts, qui contient une information unique pour chaque utilisateur entrant.slip.login, qui gère la configuration de routage qui est nécessaire pour l'utilisateur.slip.tty, requis uniquement si vous configurez votre serveur pour une allocation d'adresse dynamique et contenant une table d'adresses à allouer./etc/slip.logout, qui contient les commandes à effectuer quand l'utilisateur raccroche ou se déconnecte.Où se procurer sliplogin.
sliplogin peut être obtenu à :
sunsite.unc.edu
/pub/Linux/system/Network/serial/sliplogin-2.0.tar.gzLe fichier tar contient à la fois les sources, les binaires précompilés et la page de man.
Pour être sûrs que seuls les utilisateurs autorisés pourront se servir de sliplogin, vous devez ajouter une entrée dans
/etc/groupsimilaite à celle-ci:
.. SLIP::13:radio,fred ..Quand vous installez l'ensemble sliplogin,
Makefilechangera le nom de groupe propriétaire enSLIP, dès lors seuls ceux qui appartiennent au groupe pourront l'exécuter. L'exemple donné ci-dessus montre que seuls les utilisateurs radio et fred pourront exécuter sliplogin. Pour installer les binaires dans le répertoire/sbin, et la page de man dans la section 8, faire :
# cd /usr/src # gzip -dc .../sliplogin-2.0.tar.gz | tar xvf - # <..éditez Makefile si vous n'utilisez pas les mots de passe shadow..> # make installSi vous voulez recompiler les binaires avant de les installer, ajouter la ligne
make cleanavant la lignemake install. Si vous voulez installer les binaires ailleurs, vous devrez éditer le fichierMakefilepour modifier la règle pour install. Lisez les fichiersREADMElivrés avec l'ensemble pour plus d'informations.Configurer
/etc/passwdpour les hôtes SLIP.Vous aurez besoin de créer des comptes spéciaux pour les correspondants SLIP dans votre fichier
/etc/passwd. Une convention répandue est de préfixer d'un 'S' le nom de la machine correspondante. Par exemple si la machine s'appelleradio, vous créerez une entrée dans/etc/passwdqui ressemblera à :
La façon dont le compte est appelé n'a pas d'importance, tant qu'elle a une signification pour vous. Note : l'appelant n'a pas besoin d'un répertoire personnel, comme on ne lui présentera pas de shell,Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin/tmpest donc un bon choix. Noter aussi que sliplogin est utilisé à la place du shell normal.
Configurer
/etc/slip.hosts.sliplogin scrute le fichier
/etc/slip.hostspour trouver les entrées correspondant au nom de connexion. C'est dans ce fichier que vous indiquez l'adresse IP et le masque réseau qui seront assignés à l'appelant. Des entrées pour deux hôtes, une avec une configuration statique pour l'utilisateur hôteradioet l'autre avec une configuration dynamique pour l'utilisateur hôtealbertressembleraient à :
# Sradio 44.136.8.99 44.136.8.100 0xffffff00 normal Salbert 44.136.8.99 DYNAMIC 0xffffff00 compressed #Les entrées du fichier
/etc/slip.hostssont :
- le nom de connexion de l'appelant.
- l'adresse IP de la machine serveur, c'est-à-dire votre machine.
- l'adresse IP qui sera assignée à l'appelant. Si ce champ est marqué comme
DYNAMICalors une adresse ip sera allouée suivant les informations contenues dans/etc/slip.ttydécrit plus tard. Note: vous devez utiliser au moins la version 1.3 de sliplogin pour que cela marche.- le masque réseau assigné à la machine appelante en notation hexadécimale, par exemple 0xffffff00 pour un masque de réseau classe C, ainsi pour un réseau de classe C ce sera
0xffffff00.- paramètres optionnels pour autoriser ou inhiber la compression ou d'autres possibilités.
Note : vous pouvez utiliser les noms ou les adresses IP en notation décimale pointée pour les champs 2 et 3. Si vous utilisez les noms, ils doivent être résolvables, c'est-à-dire que votre machine doit être capable de faire l'association entre le nom et l'adresse IP correspondante, sinon le script échouera au moment de l'appel. Vous pouvez tester la correspondance en utilisant le programme telnet avec comme paramètre le nom à tester. Si vous avez comme réponse `Trying nnn.nnn.nnn...' alors votre machine a réussi à trouver la correspondance. Par contre si vous avez le message `Unknown host', alors votre machine n'a pas su résoudre le nom. Si vous avez un problème mettez l'adresse en notation décimale pointée ou corrigez votre configuration de résolution. (Voir le paragraphe
Résolution de nom).Les paramètres optionnels les plus courants pour les champs
opt1etopt2sont :
- normal
pour établir SLIP sans-compression.
- compress
pour établir une compression van Jacobsen des en-têtes (cslip)
Evidemment ces deux options sont mutuellement exclusives, vous pouvez utiliser l'une ou l'autre. Pour plus d'information sur les autres options consulter les pages de man.
Configurer le fichier
/etc/slip.login.Une fois que sliplogin a recherché et trouvé dans le fichier
/etc/slip.hostsune entrée correspondante, il essaiera d'exécuter le programme/etc/slip.loginpour configurer l'interface SLIP avec son adresse IP et son masque réseau.L'exemple du fichier
/etc/slip.loginqui vient avec le paquetage sliplogin ressemble à :
#!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a SLIP line. sliplogin invokes this with # the parameters: # $1 $2 $3 $4 $5 $6 $7-n # SLIPunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig $1 $4 pointopoint $5 mtu 1500 -trailers up /sbin/route add $5 arp -s $5 <hw_addr> pub exit 0 #Vous noterez que ce script utilise simplement les commandes ifconfig et route pour configurer l'interface SLIP avec son adresse IP, l'adresse IP distante et le masque réseau, et crée une route pour l'adresse distante qui passe par l'interface SLIP. C'est exactement la même chose que si vous utilisiez la commande slattach. Notez aussi l'utilisation de Procuration ARP pour s'assurer que les autres hôtes sur le même ethernet que la machine sauront comment atteindre un hôte entrant. Le champ
hw_addrdoit être l'adresse matérielle de la carte ethernet sur la machine. Si vous n'avez pas de carte ethernet vous pouvez omettre cette ligne complètement.Configurer le fichier
/etc/slip.logout.Quand l'appel est terminé, vous voulez vous assurer que l'interface série est restaurée dans un état correct pour que les appels suivants réussissent. Ceci est réalisé grâce au fichier
/etc/slip.logout. C'est assez simple, à nouveau, je vous présente l'exemple extrait du paquetage sliplogin.
#!/bin/sh - # # slip.logout # /sbin/ifconfig $1 down /sbin/route del $5 arp -d $5 exit 0 #Il se contente de passer l'interface en mode `down' et détruit la route manuelle créée précédemment. Il utilise aussi la commande arp pour enlever tout procuration arp en place, encore une fois vous n'avez pas besoin de la commande arp si vous n'avez pas de port ethernet.
Configurer le fichier
/etc/slip.ttySi vous utilisez une allocation d'adresse ip dynamique (vous avez au moins un hôte configuré avec le mot-clé
DYNAMICdans le fichier/etc/slip.hosts), alors vous devez configurer le fichier/etc/slip.ttypour lister quelles adresses sont assignées à quel port. Vous n'avez besoin de ce fichier que si vous voulez que votre serveur alloue de manière dynamique des adresses aux utilisateurs.Le fichier est un tableau qui liste les dispositifs tty qui supporteront les connexions d'entrée SLIP et les adresses ip qui seront assignées aux utilisateurs appelant ces ports. Son format est le suivant:
# slip.tty tty-> adresse IP # format: /dev/tty?? xxx.xxx.xxx.xxx # /dev/ttyS0 192.168.0.100 /dev/ttyS1 192.168.0.101 #Ce que dit cette table est que tout appelant sur le port
/dev/ttyS0qui a son champ d'adresse dans le fichier/etc/slip.hostsréglé surDYNAMICaura comme adresse allouée192.168.0.100.Par ce biais vous n'avez besoin seulement que d'allouer une adresse par port pour tous les utilisateurs ne demandant pas une adresse fixe pour eux-mêmes. Cela vous permet de conserver le nombre d'adresses dont vous avez besoin au minimum sans gâchis.
Un serveur SLIP utilisant dip
Quelques-unes des informations ci-dessous proviennent des pages de man de dip, où la façon d'utiliser Linux comme serveur SLIP est décrite rapidement. Prenez garde aussi que ce qui suit est basé sur l'ensemble dip337j-uri.tgz et ne s'applique probablement pas à d'autres versions de dip. dip fonctionne suivant un mode où il place automatiquement une entrée pour l'utilisateur qui la réclame et configure la ligne série en tant que lien SLIP selon les informations qu'il trouve dans le fichier
/etc/diphosts. Ce mode est activé en invoquant les fichiers dip et diplogin. Ceci est donc comment utiliser dip comme serveur SLIP, en créant des comptes spéciaux où diplogin est utilisé comme shell d'entrée. La première chose que vous devez faire est de créer un lien symbolique comme suit:# ln -sf /usr/sbin/dip /usr/sbin/diploginVous devez maintenant ajouter des entrées dans vos fichiers
/etc/passwdet/etc/diphosts. Ces entrées sont formatées comme suit:Pour configurer Linux comme un serveur SLIP, vous avez besoin de créer des comptes utilisateurs, où dip (en mode esclave) est utilisé comme shell de connexion. Fred suggère de suivre la convention suivante : tous les comptes SLIP débutent avec la lettre `S' comme `Sfredm'. Un exemple d'entrée dans
/etc/passwdpour un serveur slip ressemble à:
Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin ^^ ^^ ^^ ^^ ^^ ^^ ^^ | | | | | | \__ shell de connexion | | | | | | | | | | | \_______ Répertoire de connexion | | | | \_____________ Nom d'utilisateur complet | | | \__________________ Groupe de l'utilisateur | | \______________________ ID de l'utilisateur | \________________________________ Mot de passe chiffré \___________________________________________ Nom de connexion de l'utilisateur SLIPUne fois que l'utilisateur est connecté, le programme login(1) vérifie que l'utilisateur est valide puis exécute le programme diplogin. dip, quand il est appelé en tant que diplogin, sait qu'il doit automatiquement se comporter comme un shell de connexion. Quand il est démarré en tant que diplogin, la première chose qu'il fait est d'utiliser la fonction getuid pour obtenir l'ID user de celui qui l'a invoqué. Ensuite il cherche dans le fichier
/etc/diphostsla première entrée qui correspond soit au ID user soit au nom du dispositif tty que l'appel a mis en marche et se configure alors de manière appropriée. Par un choix judicieux, soit en donnant à l'utilisateur une entrée dans le fichierdiphosts, soit en laissant à l'utilisateur la configuration par défaut, vous pouvez construire votre serveur de telle sorte que vous pouvez avoir un mélange d'utilisateurs dont les adresses sont assignées de manière statique ou de manière dynamique. dip ajoutera automatiquement une entrée `Procuration ARP' lorsque c'est demandé en mode esclave, aussi vous n'avez pas besoin de vous soucier d'ajouter manuellement de telles entrées.
Configurer
/etc/net/diphostsLe fichier
/etc/net/diphostsest utilisé par dip pour chercher la configuration pré-enregistrée des machines distantes. Ces hôtes distants peuvent être des utilisateurs qui entrent, ou bien sur des machines que avez connectées vous-mêmes.Le format général pour le fichier
/etc/net/diphostsest le suivant :
Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296 ..Les champs sont les suivants:
Un exemple d'entrée
nom de login: comme retourné par getpwuid(getuid()) ou nom de tty.non utilisé: pour compatiblité avec passwd.Adresse de l'autre machine: adresse IP de l'hôte appelant, soit sous forme numérique soit sous forme de nom.Adresse locale: adresse de cette machine,soit numérique, soit nominative.Masque de réseau: en notation décimale avec points.Champ commentaires: à votre guise.protocole: SLIP, CSLIP, etc..MTU: nombre décimal./etc/net/diphostspour un utilisateur SLIP distant peut-être:Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296qui décrit une liaison SLIP avec une adresse distante de 145.71.34.1 et un MTU de 296, ou bien:
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006qui décrit une liaison permettant la compression CSLIP avec un MTU de 1006.
Dès lors, tous les utilisateurs qui auront la permission d'avoir un accès IP statique doivent avoir une entrée dans
/etc/diphostset si vous voulez que les utilisateurs appelant un port particulier aient leur adresse allouée dynamiquement vous devez avoir une entrée pour le dispositifttyet ne pas configurer une entrée pour les utilisateurs. Vous devez vous rappeler de configurer au moins une entrée pour chaquettyde façon à ce que les utilisateurs entrant aient ait une configuration adéquate sans se soucier du modem sur lequel ils sont. Quand un utilisateur se branche, il reçoit une invite normale pour le login et le mot de passe, à laquelle il doit répondre par son ID user SLIP et son mot de passe. Si tout se passe bien, l'utilisateur ne voit pas de message spécial, il se mettra en mode SLIP pour effectuer la connexion, et sera configuré suivant les paramètres du fichierdiphosts.
Serveur SLIP utilisant le paquetage dSLIP.
Matt Dillon,
<dillon@apollo.west.oic.com>a rassemblé quelques programmes de gestion des connexions slip, aussi bien en entrée qu'en sortie. Cette collection est une collection de petits programmes et de scripts qui gèrent les connexions pour vous. Vous devrez posséder tcsh car au moins l'un des scripts en a besoin. Matt fournit une copie binaire de l'utilitaire expect car il est réclamé également par l'un des scripts. Il serait bon que vous ayez quelque expérience de expect pour que ce paquetage fonctionne pour vos liaisons, mais que cela ne vous rebute pas.Matt a bien décrit dans le fichier README les instructions nécessaires, aussi je ne m'ennuyerai pas à les répéter.
Ce paquetage peut être obtenu sur: appolo.west.oic.com
ou bien: sunsite.unc.edu/pub/linux/dillon_src/dSLIP203.tgz/pub/Linux/system/Network/serial/dSLIP203.tgzLisez le fichier
READMEet créez les entrées dans/etc/passwdet/etc/groupavant de fairemake install.
12.3 Utiliser le démon d'automontage - AMD
Cette section m'a été proposée par
Mitch DSouza, et je l'ai incluse avec un minimum de changements. Merci Mitch.
Qu'est-ce qu'un automonteur et pourquoi l'utiliser ?
Un automonteur propose un moyen pratique de monter des systèmes de fichiers à la demande. Cela permet de réduire les charges du serveur et du client et aussi apporte une grande souplesse même avec des montages autres que NFS. Il offre aussi un mécanisme de redondance grâce auquel on peut passer à un serveur secondaire si le primaire est inaccessible. Un autre montage intéressant est appelé le montage union qui donne à l'automonteur la possibilité de fusionner plusieurs répertoires en un seul. La documentation doit être examinée en détail pour tirer pleinement avantage de sa puissance.
Quelques points importants à se rappeler - (sans ordre particulier) :
- les cartes amd ne sont pas compatibles avec les cartes SUN, qui à leur tour ne sont pas compatibles avec les cartes HP et ainsi de suite. Le point clé est que amd est libre d'accès et compatible avec tous les systèmes décrit précédemment et d'autres encore, ce qui vous permet de partager les cartes sur votre réseau si vous utilisez amd partout sur votre réseau. Mitch l'utilise avec un ensemble de machines Linux/Dec/NeXt/Sun.
- Les cartes de l'automonteur Sun peuvent être converties au format amd en utilisant un script perl dans le répertoire
contrib-automount2amd.pl.- Vous devez avoir le portmapper fonctionnant avant de lancer amd.
- les montages UFS ne provoquent pas de timeout.
- les montages UFS, dans le cas de Linux seulement, ont été étendus pour gérer toutes les variétés de systèmes de fichiers natifs (i.e. minix, ext, ext2, xiafs ...) le défaut étant minix. Cette possibilité non documentée est accessible avec l'option opts comme dans :
..., opts:=type=msdos,conv=auto- Ne montez pas par dessus des répertoires existants sauf si vous utilisez l'option direct, sinon cela revient à monter votre disque sur /home alors que votre répertoire de connexion est
/home/fred.- Toujours mettre l'option de trace maximum `-x all' si vous avez des problèmes. Vérifier aussi ce que la commande :
renvoie; elle vous indiquera les problèmes.% amq -ms- GNU getopt() est parfois trop intelligent pour son propre bien. Utilisez toujours `
--à la fin des options :# /etc/amd -x all -l syslog -a /amd -- /net /etc/amd.net
Où trouver AMD, le démon d'automontage
amd peut être obtenu à :
sunsite.unc.edu
/pub/Linux/system/Misc/mount/amd920824upl67.tar.gzIl contient les binaires prêts à être installés, les sources complets et la documentation au format texinfo.
Exemple de configuration AMD
Vous ne configurez pas l'automonteur à partir du fichier
/etc/fstab, qui doit déjà contenir les informations à propos de vos systèmes de fichiers. Tout est en fait géré par des commandes.Pour monter deux systèmes de fichiers nfs en utilisant votre fichier
/etc/fstab, vous devrez mettre les deux entrées suivantes :
server-1:/export/disk /nfs/server-1 nfs defaults server-2:/export/disk /nfs/server-2 nfs defaultsCe qui signifie que vous montez nfs
server-1etserver-2sur votre disque linux dans les répertoires/nfs/server-1et/nfs/server-2.Après avoir commenté ou détruit les lignes précédentes de votre fichier
/etc/fstab, vous pouvez utiliser amd pour réaliser la même tâche en utilisant la syntaxe suivante :
/etc/amd -x all -l syslog -a /amd -- /nfs /etc/amd.server | | | | | | | | | | | | | | | | | | | | | | | | | | `------' `----' `-------' `-----' -' `--' `-------------' | | | | | | | (1) (2) (3) (4) (5) (6) (7)où :
- Le chemin complet du binaire amd (évidement optionnel) sauf si votre variable $PATH pointe dessus, si c'est le cas tapez juste `amd'.
- `
-x all' signifie trace maximum. Lire la documentation pour les autres niveaux de trace.- `
-l syslog' signifie enregistrer les messages via le démon syslog. Ce qui peut signifier les envoyer dans un fichier, ou dans une console inutilisée. Cette option (syslog) peut être remplacée par le nom d'un fichier. `-l foo' enregistrera dans un fichier nommé foo.- `
-a /amd' signifie utiliser le répertoire/amdcomme répertoire temporaire pour les points d'automontage. Ce répertoire est créé automatiquement par amd et doit être détruit avant de lancer amd dans vos srcipts/etc/rc.- `
--' indique à getopt() d'arrêter d'essayer de trouver des options à la suite. C'est particulièrement utile pour passer l'option `type:=' sur la ligne de commande, sinon getopt() tentera de la décoder de manière incorrecte.- `
/nfs' est le point de montage nfs réel. A nouveau il est automatiquement créé et ne doit pas en général contenir de sous-répertoires sauf si l'option `type:=direct' est utilisée.- La carte amd (un fichier) appelé `amd.server' contient les lignes :
# /etc/amd.server /defaults opts:=rw;type:=nfs server-1 rhost:=server-1;rfs:=/export/disk server-2 rhost:=server-2;rfs:=/export/diskUne fois lancé et pendant l'exécution, vous pouvez demander l'état des points de montage avec la commande :
% amq -msMaintenant si vous tapez :
% ls /nfsvous ne devriez voir aucun fichier. Par contre la commande :
% ls /nfs/server-1montera la machine `server-1' automatiquement. Et voilà ! amd fonctionne. Une fois le délai par défaut écoulé, le répertoire sera automatiquement démonté. Votre fichier
/etc/passwordpeut contenir les entrées suivantes :
... linus:EncPass:10:0:God:/nfs/server-1/home/linus:/bin/sh mitch:EncPass:20:10:Mitch DSouza:/nfs/server-1/home/mitch:/bin/tcsh matt:EncPass:20:10:Matt Welsh:/nfs/server-1/home/matt:/bin/cshqui signifient que lorsque Linus, Matt, ou Mitch se connecteront leur répertoire de connexion sera automatiquement monté sur le serveur approprié et démonté quand ils se déconnecteront.
12.4 Utiliser Linux comme routeur
Linux fonctionne très bien comme routeur. Vous devez faire fonctionner un démon de routage comme gated, ou si vous avez des besoins très simples utiliser des routes codées en dur. Si vous utilisez un noyau récent (1.1.*) assurez-vous de répondre `y' à :
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [y] yquand vous compilez le noyau.
Le livre d'Olaf Kirch Network Administrators Guide traite du sujet du routage et de la mise en place de réseau. Vous pouvez le lire si vous avez besoin de plus d'information. Vous trouverez les références exactes dans la section `Documentation utile'.
12.5 NIS-Sun Network Information System
Il y a un url http://sunsite.unc.edu/mdw/HOWTO/NIS-HOWTO.html que vous devez lire si vous êtes intéressés par NIS. Il détaille comment obtenir, installer et configurer le système NIS pour Linux.
Page suivante Page précédente Table des matières