Sont présentées ici les installations des programmes implémentant les protocoles SMTP, POP3 puis QMTP.
Il faut remplacer la ligne de SMTP dans /etc/inetd.conf
par la ligne suivante (désactiver l'ancienne en la préfixant par une dièse):
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env \ tcp-env /var/qmail/bin/qmail-smtpd
root$ kill -HUP pid_de_inetd
Récupérer checkpassword sur
http://pobox.com/~djb/checkpwd.html
, le compiler puis l'installer dans /usr/local/bin/.
Remplacer la ligne POP3 du fichier /etc/inetd.conf
par celle-ci :
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup \ votre.host.name /usr/local/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
root$ kill -HUP pid_de_inetd
UCSPI signifie Unix Client-Server Program Interface. Un outil UCSPI est un programme qui sait communiquer avec un certain medium de communication (par exple TCP). Il fournit de plus deux descripteurs de fichiers, l'un pour lire et l'autre pour écrire sur le medium. On peut alors lui associer un programme qui lira et écrira sur ces descripteurs sans se soucier du medium. Celà permet de créer à partir d'un programme UNIX quelconque une application client/serveur sur le medium en question. L'avantage est que le programme ainsi enveloppé ne se soucie plus du medium qu'il utilise, c'est désormais le problème de l'enveloppe UCSPI.
Les outils UCSPI sont de deux types : les clients et les serveurs
Je vous conseille fortement la lecture du texte ucspi.txt de Dan Bernstein dont je me suis largement inspiré.
Un exemple est UCSPI-TCP écrit par Dan Bernstein qui est constitué de tcpclient et tcpserver. En gros, on peut dire qu'ils permettent de faire pour un port et un programme particulier ce que fait inetd à la différence qu'ils sont très performants et paramétrables. Voici l'url de UCSPI-TCP : http://pobox.com/~djb/ucspi-tcp.html.
UCSPI-TCP va se révéler très pratique dans le système Qmail. Il permétra de transformer les programmes qmail-smtpd, qmail-qmtpd et qmail-pop3d qui ne connaissent rien à TCP en de véritables serveurs sur certains ports TCP indépendament d'inetd. On gagnera ainsi en configurabilité et surtout en performances pures.
TCPcontrol quand à lui est un contrôleur d'accès écrit par Dan Bernstein destiné à être utilisé avec UCSPI-TCP. C'est ce que l'on appelle un «TCP wrapper». Voir http://pobox.com/~djb/tcpcontrol.html. Il est à tcpserver ce que tcpd est à inetd. Consultez sa documentation pour en savoir plus. Je n'ai pas utilisé tcpcontrol dans la suite. Vous pouvez lire avec profit la FAQ de Qmail qui explique comment s'en servir pour le port SMTP.
Pour ce faire, se procurer UCSPI-TCP sur
http://pobox.com/~djb/ucspi-tcp.html, compiler et
installer les binaires dans /usr/local/bin/.
Ensuite, il faut préfixer la ligne SMTP de
/etc/inetd.conf par une dièse et relancer le daemon inetd
par un
root$ kill -HUP pid_de_inetd
Puis il faut ajouter les deux lignes suivantes à la section start du script
/etc/rc.d/init.d/qmail :
/usr/local/bin/tcpserver -v -u 7770 -g 2108 0 smtp /var/qmail/bin/qmail-smtpd \ 2>&1 | /var/qmail/bin/splogger smtpd 3 & echo $! > /var/lock/subsys/qmail-smtpd
kill `cat /var/lock/subsys/qmail-smtpd` rm -f /var/lock/subsys/qmail-smtpd
Il faut se procurer UCSPI-TPC sur
http://pobox.com/~djb/ucspi-tcp.html
, compiler puis installer les binaires dans /usr/local/bin/.
De même, récupérer checkpassword si besoin sur
http://pobox.com/~djb/checkpwd.html
, le compiler puis l'installer dans /usr/local/bin/.
Ensuite, commenter la ligne POP3 dans /etc/inetd.conf en
la préfixant par une dièse et relancer inetd par un «kill -HUP pid_de_inetd».
Il ne reste plus qu'à ajouter les deux lignes suivantes à la fin de la partie
start du fichier /etc/rc.d/init.d/qmail :
/usr/local/bin/tcpserver 0 pop3 /var/qmail/bin/qmail-popup votre.host.name \ /usr/local/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir & echo $! > /var/lock/subsys/qmail-pop3d
kill `cat /var/lock/subsys/qmail-pop3d` rm -f /var/lock/subsys/qmail-pop3d
C'est un nouveau protocole proposé par Dan Bernstein censé remplacer SMTP. Laissons à son auteur le soin de le présenter :
The Quick Mail Transfer Protocol (QMTP) is a replacement for the Simple Mail Transfer Protocol (SMTP). QMTP eliminates any need for end-of-line scanning between hosts with the same end-of-line convention. It features automatic pipelining and chunking, 8-bit transmission, prior declaration of the message size, and efficient batching. It is designed to be very easy to implement.
QMTP est associé au port TCP 209. Qmail bien sûr le supporte à travers le programme qmail-qmtpd qui se configure exactement comme qmail-smtpd.