Page suivante Page précédente Table des matières
10. Monter un serveur PPP/POP dial-in
Par Hassan Ali
AVERTISSEMENT : Ça a marché pour moi. Mais votre configuration peut être différente !
OBJECTIFS : Installer des services PPP et POP/IMAP sur un serveur Red Hat Linux 5.1 pour des utilisateurs appelant par le modem.
OUTILS : Les CDs Red Hat Linux 5.1
NOUS SUPPOSONS QUE : Vous avec un PC avec une installation de base Red Hat Linux 5.1 avec un noyau Linux qui supporte la transmission IP (IP forwarding).
10.1 Étape 1 : installer "mgetty"
...(si ce n'est pas déjà fait), depuis le CD Red Hat 5.1
Loguez vous comme "root", insérez le premier CD Red Hat 5.1 dans le lecteur de CD-ROM, et montez-le en utilisant la commande :
(on suppose que votre lecteur de CD-ROM est le dispositif /dev/hdb, sinon faites la modification appropriée)
# mount -t iso9660 /dev/hdb /mnt/cdrom
Allez au répertoire RPMS :
# cd /mnt/cdrom/RedHat/RPMS
Installez les fichiers rpm "mgetty"
Cela installera mgetty et tous ses cousins, mais qu'importe ! Si vous détestez la famille lointaine, débrouillez-vous et remplacez "mgetty*" par "mgetty-1.1.14-2.i386.rpm".
# rpm -Uvh mgetty*
À la fin du fichier
/etc/mgetty+sendfax/mgetty.config
, ajoutez l'ensemble de trois lignes suivant pour chaque port série connecté à un modem pour les utilisateurs appelants. Voici un exemple pour/dev/ttyS1
et/dev/ttyC15
:Notes :
# For US Robotics Sportster 28.8 with speaker off port ttyS1 init-chat "" ATZ OK AT&F1M0E1Q0S0=0 OK answer-chat "" ATA CONNECT \c \r # For Practical Peripheral 14.4 with fax disabled and prolonged # carrier wait time (90 sec) port ttyC15 init-chat "" ATZ OK AT&F1M0E1Q0S0=0S7=90+FCLASS=0 OK answer-chat "" ATA CONNECT \c \r
- AT&F1 fixe le mode matériel de contrôle de flux sur beaucoup de modems. Pour les autres modems utilisez les initialisations appropriées dans la ligne du script d'initialisation.
- Juste au cas où vous vous demanderiez pourquoi j'ai pris en exemple un port ttyC15 : bon, vous pourriez avoir un tel port si vous avez un carte série multiport. S'il vous en faut, je recommande les cartes Cyclades.
Dans le fichier
/etc/mgetty+sendfax/login.config
, cherchez la ligne qui commence par/AutoPPP/
. Assurez-vous qu'elle n'est pas en commentaire (c'est à dire qu'il n'y a pas de "#" au début de la ligne), et éditez la pour en faire :Si vous souhaitez que les noms d'utilisateurs qui se loguent (plutôt que a_ppp) apparaissent dans les fichiers de journal
/AutoPPP/ - a_ppp /etc/ppp/ppplogin
/var/run/utmp
et/var/log/wtmp
, alors la ligne ci-dessus devrait être :
/AutoPPP/ - - /etc/ppp/ppplogin
Dans le fichier
/etc/inittab
, cherchez la section qui lance les processus "getty" et ajoutez à la fin de cette section une ligne de la forme suivante pour chaque port modem. L'exemple ici est donné pour ttyS1 et ttyC15.Le nombre du début (7,8) est arbitraire (en fait, j'ai vu dans quelques cas "s1", "s2", etc. utilisés à la place). Donnez seulement un numéro différent pour chaque port. Et pourquoi pas dans l'ordre !!? Je me demande !
7:2345:respawn:/sbin/mgetty -x 3 ttyS1 8:2345:respawn:/sbin/mgetty -x 3 ttyC15
Connectez les modems aux ports série, allumez les puis initialisez "mgetty" avec la commande :
NOTE : si vous lancez "mgetty" sur un port série sans modem branché, ou avec un modem non allumé, vous aurez plein de messages d'erreur dans
# init q
/var/log/messages
ou dans les autres fichiers journaux/var/log/log_mg.ttyXX
. En fait il se pourrait que ces messages apparaissent continuellement sur votre écran. Ennuyeux, non ? Pour éviter ces ennuis, chaque port série qui n'a pas de modem branché devrait avoir ses lignes respectives neutralisées par un commentaire dans les fichiers/etc/inittab
et/etc/mgetty+sendfax/mgetty.config
.
10.2 Étape 2 : installer PPP
...(s'il n'est pas installé) depuis le premier CD Red Hat 5.1
Si le premier CD Red Hat est correctement monté (voir l'étape 1), pour installer PPP tapez la commande suivante :
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/ppp*
Éditez le fichier
/etc/ppp/options
pour obtenir ce qui suit :NOTES :
-detach crtscts netmask 255.255.255.0 asyncmap 0 modem proxyarp
- Utilisez un netmask approprié pour votre réseau. Il n' a pas besoin d'être 255.255.255.0, en fait dans mon cas c'était 255.255.255.224.
- Lisez les pages man de "pppd" pour comprendre ces options.
Éditez le fichier
/etc/ppp/ppplogin
(créez-le s'il n'existe pas) pour arriver à :Rendez le fichier exécutable à l'aide de la commande :
mesg n tty -echo /usr/sbin/pppd silent auth -chap +pap login
NOTE : nous allons utiliser l'authentification PAP, MAIS en utilisant le fichier ordinaire de mots de passe
# chmod +x /etc/ppp/ppplogin
/etc/passwd
. C'est ce que signifie "+pap login".
Pour chaque port série connecté à un modem, créez un fichier correspondant
/etc/ppp/options.ttyXX
, où "XX" est "S1" pour le port ttyS1, "S2" pour le port ttyS2, "S15" pour le port ttyS15, etc. Dans un tel fichier inscrivez la ligne suivante :où "myhost" est le hostname du serveur PPP - changez le selon le hostname réel de votre poste Linux. Si vous oubliez plus que ce que vous admettez de vous SOUVENIR, rappelez-vous le hostname de votre serveur à l'aide de la commande "hostname".
myhost:ppp01
Le mot "ppp01" utilisé ci-dessus est juste un nom choisi arbitrairement pour l'hôte virtuel associé avec une des lignes de dial-in PPP et son adresse IP respective telle que définie dans le fichier
# hostname
/etc/hosts
(dont on discutera plus tard). Dans un autre fichier/etc/ppp/options.ttyXX
, vous pourriez souhaiter taper la ligne suivante :C'est à dire que vous définiriez ici un autre hostname PPP, "ppp02". Utilisez un hostname différent pour chaque port série. Vous pouvez choisir autant de noms que votre cht'it coeur le désire ! Ils ne doivent pas être ppp01, ppp02, ppp03, etc. Ils peuvent être "junkie", "newbie", "noname", qu'importe !
myhost:ppp02
Éditez le fichier
/etc/ppp/pap-secrets
et ajoutez une ligne comme montré plus bas pour chaque adresse IP qu'il faudra assigner dynamiquement aux utilisateurs du dial-in PPP. Ceci, bien sûr, suppose que vous disposez d'un ensemble d'adresses IP que vous pouvez assignez à vos clients de dial-in :C'est à dire : pas de jeux de secrets PAP (mots de passe) pour aucun client d'où que ce soit dans le monde avec l'adresse IP désignée. Nous n'avons pas besoin de secrets PAP quand nous utiliserons
# Secrets for authentication using PAP # client server secret IP addresses * * "" 10.0.0.3 * * "" 10.0.0.4
/etc/passwd
à la place. Si vous n'êtes RÉELLEMENT pas parano, vous pouvez avoir juste une seule ligne comme ci-dessous qui servira toutes vos adresses IP (la votre et celles de vos voisins !) :
# Secrets for authentication using PAP # client server secret IP addresses * * "" *
Rendez le programme
/usr/sbin/pppd
setuid "root" à l'aide de la commande :
# chmod u+s /usr/sbin/pppd
Éditez le fichier
/etc/hosts
pour assigner des adresses IP à tous les hostnames PPP que vous avez utilisés à l'étape 2.4. Utilisez l'ensemble d'adresses IP utilisées dans l'étape 2.5 :NOTE : Remplacez "mydomain.com" par le nom de domaine effectif de votre serveur PPP. Juste au cas où vous seriez perdu, je suppose que votre serveur PPP est "myhost.mydomain.com".
10.0.0.3 ppp01 ppp01.mydomain.com 10.0.0.4 ppp02 ppp02.mydomain.com
10.3 Étape 3 : Installer les serveurs POP/IMAP
...(s'ils ne sont pas installés) depuis le premier CD Red Hat 5.1
Avec le premier CD Red Hat correctement monté, faites la commande suivante pour installer POP et IMAP :
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/imap*
Vérifiez le fichier
/etc/inetd.conf
pour voir si les services de ligne "pop-2", "pop-3", et "imap" sont tous activés (non commentés). Si ce n'est pas le cas, ôtez les commentaires (c'est à dire retirez le "#" du début). Si vous voulez seulement supporter les clients POP3, ne décommentez que la ligne "pop-3". Si POP2 et POP3 ne sont pas dans le fichier RPM "imap*", essayez de voir si vous avez un fichier RPM "ipop*" et utilisez-le à la place.
Activez les nouveaux service à l'aide de la commande :
# kill -HUP `cat /var/run/inetd.pid`
10.4 Étape 4 : activer la transmission IP
Si vous utilisez le noyau Linux déjà compilé qui est livré avec Red Hat 5.1, il n'a pas normalement le support de la transmission IP (IP forwarding). Si vous compilez votre propre noyau Linux, vous devez activer l'option réseau "IP : forwarding/gatewaying" pendant la compilation. Pour se plier à la norme RFC, le processus de démarrage par défaut n'active pas la transmission IP. Activez la transmission IP en la fixant à "yes" dans le fichier
/etc/sysconfig/network
, comme ceci :
FORWARD_IPV4=yes
Activez la transmission IP à l'aide de la commande :
ou relancez le système.
# echo "1" > /proc/net/ip_forward
10.5 Étape 5 : testez le serveur
D'abord créez des utilisateurs (s'il n'y en a pas). Vous pouvez leur donner un répertoire personnel "/home/username" et un login shell "/bin/bash" si vous voulez qu'ils aient à la fois l'accès PPP et l'accès shell. Donnez-leur un répertoire personnel "/home/username" et un programme de login "/etc/ppp/ppplogin" si vous voulez qu'ils aient l'accès PPP mais pas d'accès shell. Il vaut mieux utiliser l'outil "usercfg" pour créer les nouveaux utilisateurs. Les entrées typiques du fichier
/etc/passwd
peuvent être comme suit :Dans cet exemple, John Doe aura à la fois l'accès PPP et shell, cependant que Jane Doe aura seulement l'accès PPP. Si vous commencez à vous étonner que John Doe ait l'accès PPP, la réponse est dans la configuration /AutoPPP/ dans "mgetty" - c'est ce qui fait la magie. À chaque utilisateur qui appellera et parlera PPP, mgetty donnera le programme /etc/ppp/ppplogin
jodoe:tdgsHjBn/hkg.:509:509:John Doe:/home/jodoe:/bin/bash jadoe:t8j/MonJd9kxy:510:510:Jane Doe:/home/jadoe:/etc/ppp/ppplogin
Donc, si John Doe appelle à l'aide de l'adaptateur dial-in de Windows 95 qui est réglé pour faire une connection PPP, mgetty donnera à John Doe l'accès PPP. S'il appelle avec n'importe quel autre logiciel de communication comme par exemple HyperTerminal, (sans négociation PPP), il obtiendra le shell login normal. Ceci ne se produira jamais pour Jane Doe. Elle sera toujours accueillie par le programme "/etc/ppp/ppplogin".
En fait "mgetty" vous autorise à utiliser les mêmes lignes modem pour plusieurs protocoles. Par exemple, les clients UUCP (si vous en avez) peuvent utiliser les mêmes lignes modem que vos clients PPP ! Bien sûr, il faut donner à vos clients UUCP un répertoire personnel "/var/spool/uucppublic" et le programme de login "/usr/sbin/uucico".
En admettant que vous avez un serveur web (Apache) déjà monté (c'est du gâteau de mettre en place Apache), utilisez un fureteur web, et un client e-mail (par exemple Eudora) sur un PC distant connecté à un modem et une ligne de téléphone. Si c'est un PC Windows 95/98, réglez l'adaptateur de dial-up en spécifiant l'adresse IP du serveur PPP en tant que passerelle, utilisez les adresses IP DNS correctes, et spécifiez que le serveur assignera une adresse IP automatiquement. Dans le client POP (par exemple Eudora), réglez l'hôte SMTP et POP à l'adresse IP du serveur PPP/POP.
Maintenant, appelez le serveur et attendez la connection. Testez votre accès web, l'envoi et la réception de mail POP. Si ça ne marche pas ... Quelque chose ne tourne pas rond quelque part ;-)
10.6 Références :
- PPP-HOWTO
- NET-3-HOWTO
- "Using Linux", Bill Ball, publié par Que (environ US$30 - fortement recommandé)
- la documentation mgetty
_______________________________________________________________________________
Copyright © 1999, Hassan O. Ali
Publié dans le numéro 36 de la Linux Gazette, janvier 1999
Adaptation française : Georges Khaznadar.
Page suivante Page précédente Table des matières