|
|
Ce document est disponible en: English Castellano Deutsch Francais Nederlands Turkce |
par Stefan Blechschmidt <sb(at)sbsbavaria.de> L´auteur: Electricien confirmé, je me suis retrouvé, en 1990, devant une station de travail à faire le développement d'une station de contrôle et de commutation. J'ai, bien évidement été infecté par un � virus � inconnu mais c'était parfait. Traduit en Fran�ais par: Iznogood <iznogood(at)iznogood-factory.org> Sommaire: |
Automail pour fli4lRésumé:
Qui utilise ce routeur sur disquette de http://www.fli4l.de/ ? La plus part de ces
utilisateurs connaissent le problème du routeur utilisé en mode
dial-on-demand dans un réseau avec un serveur de courriels interne.
Lorsque le routeur établit la connexion, le serveur de courriels doit le savoir
pour recevoir et envoyer du courriel. |
Notre dessin montre le concept d'un réseau que nous allons prendre pour exemple dans cet article. WS1 à WS3 représentent les stations de travail connectées au WWW par le biais du routeur. Le service-host est responsable pour le courriel interne et externe. L'envoi du courriel est traité par un MTA. La réception se fait avec fetchmail et le traitement ultérieur par procmail. Les boîtes au lettres de l'hôte de service sont fournies par les stations de travail via POP3 ou IMAP
Si l'une des stations de travail établit une connexion sur le WWW, l'hôte de service ne le sait pas. Il serait possible de l'en informer avec l'aide d'une tâche cron pour envoyer et recevoir des courriels à des heures prédéterminées. La manière plus élégante serait d'informer l'hôte de service que la connexion a été établie, lui permettant de traiter le courriel.
Comme le routeur est lancé depuis une disquette, il n'y a pas de script complexe ou de programme pour contrôler le serveur de courriels depuis le routeur.
Lorsque l'hôte de service est informé sur l'ouverture d'une connexion, il devrait être possible de lancer une requête pour démarrer le processus de réception et d'envoi de courriels.
Avec fli4l a été adjoint le programme wget, dont la taille est d'environ 100 ko. Il devrait rentrer très facilement sur la disquette. Avec wget, nous pouvons établir une connexion avec le service hôte en même temps que la connexion. Cela sera possible par inetd, qui ouvrira un port sur l'hôte de service, attendant une connexion du routeur. Avec la connexion, un script démarrera des processus supplémentaires pour envoyer et recevoir des courriels.
Le script est écrit en Perl. Vous pouvez le télécharger sur (mailstart.pl.gz).
La connexion active le fichier .../opt/etc/ppp/ip-up. C'est le bon endroit pour établir une connexion à notre hôte de service. En ajoutant la ligne :
wget -t 1 --spider MAILSERVER:PORT/xyz &> /dev/null
nous le réalisons.
Avec l'aide du super serveur inetd, le programme mailstart [1] est activé. Pour ce faire, nous devons éditer les fichiers
/etc/inetd.conf
/etc/services
Dans ce fichier, nous assignons le port auquel wget doit accéder. La ligne :
mailstart 4000/tcp # Mailstart
le fait.
/etc/inetd.conf
Dans ce fichier, nous définissons quel programme doit être démarré. inetd contrôle son exécution et écrit les événements dans /var/log/syslog.
La ligne :
mailstart stream tcp nowait root /usr/sbin/tcpd /root/bin/mailstart
termine cette étape. Le premier nom doit être le même que celui noté dans le fichier /etc/services.
Le programme peut être ajusté avec les variables, à un serveur particulier.
$protokoll
Avec la variable $protokoll, nous pouvons définir si les appels doivent être écrits dans le journal. Mettre la variable à 1 écrira les appels dans /var/log/mailstart.log. Si la variable est positionnée à 0 aucun journal ne sera créé.
Default: 1 create log
$protokoll_ziel
Avec cette variable, nous pouvons déterminer la cible du journal.
Default: /var/log/mailstart.log
$mailholen
Nous saisissons ici le nom du programme qui traite les courriels. L'utilisateur doit être root pour démarrer ce programme ou le nom doit être entré dans /etc/inetd.conf. Si quelqu'un d'autre veut utiliser le programme, la commande doit être démarrée avec su USER -c \"COMMAND PARAMETER\" . Si la commande fait plusieurs mots de long, elle doit être mise entre guillemets et dont être protégée avec des \.
Default (one line): su postmaster -c \"fetchmail -t 40 -a -L /var/log/fetchmail/fetchmail.log -f /home/postmaster/.fetchmailrc\"
$mailsenden
Vous avez ici la place du programme utilisé pour envoyer les courriels. Pour démarrer ce programme, l'utilisateur doit être root ou le nom doit être saisi dans /etc/inetd.conf . Si une autre personne veut utiliser le programme, la commande doit démarrer avec su USER -c \"BEFEHL PARAMETER\". Si la commande fait plusieurs mots de long, elle doit être mise entre guillemets et protégée avec \.
Default: sendmail -q
Au fait, une partie du programme est une petite documentation POD qui fournit une petite description. Vous pouvez obtenir la description avec perdoc mailstart.
Avant le test, le super serveur nécessite d'être redémarré ; /etc/init.d/inetd restart le fera. Vous pouvez maintenant tester avec telnet localhost mailstart la réponse du serveur. Vous devriez avoir un affichage identique à ceci :
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. HTTP/1.1 220 OK Date: Sun, 20 Jul 2003 10:45:46 GMT Server: mailstart/perl (sbsbavaria) Last-Modified: Sun, 20 Jul 2003 10:45:46 GMT Content-Type: text/txt Content-Length: 11 1234567890 Connection closed by foreign host.
Voilà, c'est fait. J'espère que vous avez le résultat souhaité avec
ma description. Si ce n'est pas le cas, nous avons un problème.
- Vous, parce que cela ne fonctionne pas.
- Moi, parce que n'ai pas pu vous donner de bonnes informations:-).
|
Site Web maintenu par l´équipe d´édition LinuxFocus
© Stefan Blechschmidt, FDL LinuxFocus.org |
Translation information:
|
2003-09-06, generated by lfparser version 2.42