12. Communiquer

Contents of this section

12.1 UUCP et modem

UUCP (Unix to Unix CoPy) te permet d'envoyer et de recevoir du mail, et de même pour les news.

Je te conseille de faire un lien entre /dev/modem et /dev/cua1 (COM2), si c'est ton périphérique. Les répertoires utilisés par UUCP sont /var/spool/uucp, /var/spool/uucpublic, /usr/lib/uucp et /var/lib/uucp.

Bon, je suppose que tu as installé le package UUCP, elm et sendmail. Pour les news, je te conseille INN, comme serveur de news, et tin ou trn, comme lecteur de news.

Les fichiers UUCP décrits ici sont au format HDB (ou, je sais que Taylor est achtement plus simple... mais j'ai pas eu le temps de refaire cette partie qui date... !).

Bon, UUCP a besoin de plusieurs fichiers de configuration qui se trouvent dans /var/lib/uucp/hdb_config.

Maintenant, ton système est configuré. Il n'y a plus qu'à tester. Lance ceci :

uucp remcomp\!\~/catalogue.Z ~/

Ta machine va se connecter sur remcomp pour récupérer le fichier catalogue.Z. Ce fichier sera déposé dans le répertoire /var/spool/uucppublic.

12.2 Appels entrants

Bon. Au point où l'on en est, tu peux appeler. Maintenant, on va configurer ta machine pour que l'on puisse t'appeler. Tout se joue dans le fichier /etc/inittab.

Tu dois décommenter une ligne par exemple :

s1:45:respawn:/sbin/agetty -h -t 60 9600 modem
|   |    |                  |    |    |     |--- Port a utiliser   
|   |    |                  |    |    |--------- Vitesse du modem
|   |    |                  |    |--- Temps au bout du quel on racroche
|   |    |                  |-------- Active le controle de flux rts/cts
|   |    |------------- A relancer lorsqu'il se termine
|   |------------------ Runlevels. 
|---------------------- Identificateur

Donc, au prochain boot, un système de login est prêt sur ton port /dev/modem (ton port série sur lequel est connecté ton modem). Le dernier problème est de le configurer. En effet, ton modem doit être positionné pour la vitesse. En fait, ca dépend du modem. Si jamais tu peux positionner des switch, rend ton modem muet (ATQ2) et surtout, mets le en auto-reponse (ATS0=1).

Si tu n'as pas de switches, fait un AT&W pour sauvegarder les paramètres.

Pour vérifier la config utiliser usrlib/uucp/uuchk/.

Si tu veux d'autres renseignements, je te conseille de lire le HOWTO UUCP.

12.3 PPP

L'objet de ce paragraphe est l'installation d'une connexion PPP.

Introduction

PPP (Point to Point Protocol) permet d'établir une connexion IP sur une voie série de manière plus efficace que SLIP (Serial Line Internet Protocol). Une fois la connexion établie, tous les protocoles supérieurs à IP (FTP, telnet, NFS, http, X...) sont disponibles.

Pour établir une connexion PPP, il faut:

PPP est supporté par un grand nombre de systèmes (même MS-Windows) et on peut normalement se connecter d'un système à l'autre. Cependant, cette documentation ne traite que le cas de Linux !

Accès à un serveur PPP

Pour accéder à un serveur PPP installé, ton noyau doit être compilé avec le support TCP/IP. Pour cela, lors du make config il faut répondre comme suit :

Networking support (CONFIG_NET) [y] y
TCP/IP networking (CONFIG_INET) [y] y
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [y] n
Network device support? (CONFIG_NETDEVICES) [y] y
PPP (point-to-point) support (CONFIG_PPP) [y] y

Tu dois en plus récupérer les sources des programmes d'accès à PPP (dans l'archive ppp-2.1.2a.tar.gz, voire b, c, ou d) de manière à installer les programmes suivants :

Tu peux par exemple installer pppd et chat dans le répertoire /usr/sbin.

Ensuite, tu dois configurer tes shell-scripts de boot de manière à configurer la couche TCP/IP (par exemple dans un fichier /etc/rc.d/rc.net qui sera lancé par /etc/rc.d/rc.local). En voici un exemple :

echo -n "/etc/rc.net: "
INETD=/sbin/inetd
PORTMAP=/sbin/portmap

# loopback
/sbin/ifconfig lo 127.0.0.1 up netmask 255.255.255.0
/sbin/route add 127.0.0.1 lo

# demarrage des demons

if [ -x $PORTMAP ]; then
        echo -n ", `basename $PORTMAP`"
        $PORTMAP
fi

if [ -x $INETD ]; then
        echo -n ", `basename $INETD`"
        $INETD
fi

echo ""

Il faut ensuite ajoute l'adresse IP de ta machine dans le fichier /etc/hosts :

     127.0.0.1          loopback localhost      # useful aliases
     199.103.124.170    pcpf pcpf.lectra.fr     # Mon beau PC en PPP

L'adresse IP de la machine correspond à celle affectée par l'administrateur du serveur PPP pour la connexion associée à un numéro de téléphone donné. Cela signifie que le copain qui se connecte 10 minutes après utilisera la même adresse IP que toi.

Enfin, tu dois configurer ton domaine dans le fichier /etc/resolv.conf :

 domain lectra.fr
 nameserver 192.1.2.1

La deuxième ligne est utilisée si tu veux utiliser un serveur de noms, bécane qui te renvoie l'adresse IP correspondant au nom de machine fourni. Si tu n'as pas de serveur de noms, tu ne pourras utiliser que des adresses numériques (199.103.124.x) ou bien tu devras mettre dans ton /etc/hosts toutes les machines auxquelles tu veux accéder avec leurs adresses IP...

Tu peux également mettre ton nom de domaine dans le fichier /etc/ppp/options qui doit exister même vide (si tu ne veux pas que pppd demande /etc/ppp/options, il faut le compiler avec l'option -DREQ_SYSOPTIONS=0).

Tu peux maintenant fébrilement tester ta connexion en utilisant un shell-script du style (attention : tout cela constitue une seule ligne) :

/usr/sbin/pppd connect '/usr/sbin/chat -v ABORT ERROR ABORT "NO CARRIER" \
ABORT BUSY "" ATB0 OK ATDTxxxxxxxx CONNECT "" ogin: ppp \
word: ppp0' /dev/modem 9600 -detach debug crtscts modem \
defaultroute 199.103.124.170:

La commande chat permet d'effectuer la connexion en appelant le numéro de téléphone de ton serveur. Attention de ne pas oublier les options de la deuxième ligne en particulier modem et defaultroute.

La spécification de la vitesse (9600) ainsi que le chat-script à utiliser (ABORT ERROR ABORT "NO CARRIER" ABORT BUSY "" ATB0 OK ATDTxxxxxxxx CONNECT) dépendent bien entendu de ton modem et de la configuration du serveur (voir également le login et le password).

L'adresse IP doit être celle déclarée en tant qu'adresse de ta machine en PPP dans /etc/hosts (tu peux également mettre le nom de ta machine en PPP).

Les informations de debug doivent sortir sur la console (si tu as configuré le syslog pour celà).

A partir de là, tu es connecté sur le réseau distant et tu peux faire par exemple:

  $ ping 199.103.124.50
  PING 199.103.124.50 (199.103.124.50): 56 data bytes
  64 bytes from 199.103.124.50: icmp_seq=0 ttl=255 time=268 ms
  64 bytes from 199.103.124.50: icmp_seq=1 ttl=255 time=247 ms
  64 bytes from 199.103.124.50: icmp_seq=2 ttl=255 time=266 ms
pour tester ta connexion. Si le ping marche et que ton réseau est connecté à l'Internet, alors tu as l'Internet chez toi !

Si ça ne marche pas, tu peux tester en tapant /sbin/ifconfig et le résultat doit ressembler à ça :

lo        Link encap Local Loopback
          inet addr 127.0.0.1  Bcast 127.255.255.255  Mask 255.0.0.0
          UP LOOPBACK RUNNING  MTU 2000  Metric 1
          RX packets 0 errors 0 dropped 0 overrun 0
          TX packets 0 errors 0 dropped 0 overrun 0

ppp0      Link encap Serial Line IP
          inet addr 199.103.124.170  P-t-P 199.103.124.50  Mask 255.255.255.0
          UP POINTOPOINT RUNNING  MTU 1500  Metric 1
          RX packets 33 errors 0 dropped 0 overrun 0
          TX packets 42 errors 0 dropped 0 overrun 0

Surtout, tu dois avoir une ligne commençant par ppp0 sinon, no good. Tu peux également tester ton routage par netstat -nr qui doit donner un truc du style :

Kernel routing table
Destination     Gateway         Genmask         Flags Metric Ref Use    Iface
199.103.124.50  0.0.0.0         255.255.255.255 UH    0      0        6 ppp0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         199.103.124.50  0.0.0.0         UG    0      0     6298 ppp0

Avec une ligne 0.0.0.0 contenant l'adresse IP de ton serveur PPP. Si tu n'as pas cette ligne, il se peut que tu ais oublié l'option defaultroute.

Configuration d'un serveur PPP

Pour cela, tu dois installer les mêmes logiciels que dans le chapitre précédent (configurer le noyau, installer pppd). En plus de ça, il faut que tu crées un login spécial pour les connexions PPP dans /etc/passwd, par exemple :

ppp::61:60:Connexion PPP:/:/usr/bin/ppp_login

Le script /usr/bin/ppp_login étant :

#!/bin/sh
# Connexion PPP --> adresse IP = 199.103.124.170
exec /usr/sbin/pppd -d -detach -ip modem proxyarp :199.103.124.170

L'option proxyarp permet à la machine connectée d'accèder à tout le réseau :

 199.103.124.170                   199.103.124.50
+-----------+      PPP link       +----------+
| pcpf      | ------------------- |  ondee   |
+-----------+                     +----------+
                                        |           Ethernet
                    ----------------------------------- 199.103.124.x

Bibliographie

Pour plus d'informations, voir le fichier README.Linux de la distribution ppp-2.1.2a.tar.gz.

Remarque : Ce fichier est dans la distribution standard de la Slackware.

12.4 Un réseau derrière une seule adresse

Une question commune est : "j'ai un accès Internet mais une seule adresse IP et je voudrais pourtant pouvoir connecter plusieurs machines".

Le NET2-HOWTO répond à cette question mais il oublie une possibilité. Cette note a pour but d'expliquer les quatre façons de résoudre le problème ci-dessus.

12.5 Sendmail

La configuration du sendmail est toujours quelque chose de particulièrement pénible et difficile. Toutefois, certains outils facilitent grandement les choses. La Slackware est d'origine fournie avec certains fichiers, qui peuvent être une solution. Toutefois, il est plus sain de reinstaller le fichier de configuration en se basant sur les docuements qui suivent :

12.6 Configuration du mail lors d'une connexion avec un provider

Les provideurs reçoivent les messages et les rendent accessibles via un serveur POP (en général mail.fournisseur.fr). Il faut donc récupérer les messages reçus par ce serveur vers la machine linux dans /var/spool/mail/utilisateur. Pour cela, tu peux utiliser le programme gwpop de Stéphane Bortzmeyer. On le trouve dans ftp://ftp.pasteur.fr/pub/Network/gwpop.

Dans ce script, définir :

$mailhost = "mail.fournisseur.fr";
$deliver= "deliver NomUserLocal ";

Puis, une fois connecté, lancer via un script (histoire de ne pas avoir à tout retaper à chaque fois :

gwpop -p MotDePasseServeurPop UserServeurPop

Une fois que le courier est reçu, la question est de savoir comment en envoyer. Il faut recompiler sendmail sans DNS. Pour cela, définir NAMED_BIND à 0 dans src/conf.h. Les versions récentes de sendmail ont par défaut un comportement qui peut être génant. Les messages accentués sont automatiquement convertis en Quoted Printable si le serveur auquel il se connecte n'annonce pas qu'il supporte le protocole ESMTP 8bit. Si on trouve cette initiative génante, il faut définir MIME8TO7 à 0 dans src/conf.h.

Voici le fichier de règles qu'il faut indiquer via le kit sendmail Jussieu :

#!/bin/sh
#
# Regles pour le domaine lolonet
#
Domaine="MonNomdeDomaineAvecUnPoint"
AdressesInternes=RIEN
V8="o"
Aliases="/etc/aliases"
SendmailSt="/etc/sendmail.st"
SendmailHf="/etc/sendmail.hf"
Mqueue="/var/spool/mqueue"
et le fichier de config :
#!/bin/sh
Host="NomDeMaMachine"
AdressesLocales=TOUT_DOMAINE
RelaisExterieur="smtp.[mail.fournisseur.fr]"
ReecritureadressesLocales="fournisseur.fr"
RevAliases="hash -N /etc/revaliases"
MailerLocal='/usr/bin/deliver DFMPlmnrs deliver $u'
SansDNS=1

Il suffit ensuite de modifier le configurateur en décommentant la ligne suivante:

CPP="$CPP -traditional"

puis générer le fichier de config :

./configurateur regles.lolonet Machine.config >sendmail.cf.Machine

Si on a désactivé MIME8TO7 dans sendmail, commenter la ligne du sendmail.cf générée :

# O EightBitMode=mime

et copier le fichier dans /etc

Il est nécessaire de définir l'adresse IP du serveur SMTP dans /etc/hosts. Enfin, il faut réécrire l'adresse locale pour que les messages envoyés aient un champ From correspondant à l'adresse fourni par le fournisseur. Il suffit d'ajouter dans /etc/revaliases une ligne du style:

NomLocal:       NomFournisseur@fournisseur.fr

et ensuite regénérer la base avec :

/usr/sbin/sendmail -bi -oA/etc/revaliases

Voila ! Les mails sont stoqués dans /var/spool/mqueue. Lorsque tu es connecté par PPP et que tu souhaites envoyer tous tes mails, il suffit de faire

/usr/sbin/sendmail -q 


Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter