next up previous contents
suivant: Tester notre configuration de monter: Configurer qmail précédent: Configurer inetd   Table des matières


Installer tcpserver

Si on veut de meilleures performances pour notre serveur de méls, il va falloir installer des programmes écrits aussi par Dan Bernstein : daemontools (syslog et gestion des signaux pour les daemons), checkpassword (pop3d), ucspi-tcp (inetd + TCP Wrapper)...

Il faut dans un premier temps récupérer et décompresser les archives ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz et ftp://cr.yp.to/daemontools/daemontools-0.70.tar.gz et les installer :

# make
# make setup check
#

pour chacune des deux archives. Pour tester daemontools, on peut essayer :

# ./rts > rts.out
# cmp rts.out rts.exp
#

si rien ne s'affiche, c'est gagné. Il ne reste plus qu'a vérifier les dates :

# date | ./tai64n | ./tai64nlocal
2001-05-04 09:23:14.180154500 Fri May  4 09:23:14 CEST 2001
# date | sh -c './multilog t e 2>&1' | ./tai64nlocal
2001-05-04 09:23:15.605339500 Fri May  4 09:23:15 CEST 2001
#

Les dates de début et de fin devraient être sensiblement identiques. Il ne reste plus qu'à informer l'auteur que notre installation a réussi (remplacer le nom) :

# ( echo 'Mathieu DECORE'; cat VERSION systype \
direntry.h fork.h hasflock.h hasmkffo.h hassgact.h \
hasshsgr.h haswaitp.h iopause.h select.h uint64.h ) \
| mail djb-sysdeps@cr.yp.to
#

Il ne reste plus qu'à créer un script qui lancera qmail au démarrage. Le fichier /var/qmail/rc se charge de le faire, mais s'il n'est pas satisfaisant il en existe d'autre versions dans le répertoire /var/qmail/boot.

Pour lancer qmail au démarrage, il faut un script comme celui qu'on trouvé à l'adresse suivante : http://Web.InfoAve.net/~dsill/qmail-script-dt61.exe. Ce script est à recopier sous le nom de qmail dans un des répertoires suivants (suivant la distribution et la météo du jour) : /etc/init.d, /sbin/init.d ou /etc/rc.d/init.d. Il ne reste plus qu'à créer les liens symboliques nécessaires à partir du répertoire de boot :

# ln -s qmail rc0.d/K30qmail
# ln -s qmail rc1.d/K30qmail
# ln -s qmail rc2.d/S80qmail
# ln -s qmail rc3.d/S80qmail
# ln -s qmail rc4.d/S80qmail
# ln -s qmail rc5.d/S80qmail
# ln -s qmail rc6.d/K30qmail
#

Pour terminer, il faut créer les scripts supervise comme suit (les daemontools sont disponibles à partir de l'adresse http://cr.yp.to/daemontools/install.html) :

# mkdir -p /var/qmail/supervise/qmail-send/log
# mkdir -p /var/qmail/supervise/qmail-smtpd/log
# chmod +t /var/qmail/supervise/qmail-send
# chmod +t /var/qmail/supervise/qmail-smtpd
# cat << EOF > /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc
EOF
# cat << EOF > /var/qmail/supervise/qmail-send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
EOF
# echo 20 > /var/qmail/control/concurrencyincoming
# chmod 644 /var/qmail/control/concurrencyincoming
# cat << EOF > /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 2000000 \
    /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb -c "\$MAXSMTPD" \
        -u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
EOF
# cat << EOF > /var/qmail/supervise/qmail-smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
EOF
# chmod 755 /var/qmail/supervise/qmail-send/run
# chmod 755 /var/qmail/supervise/qmail-send/log/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
# mkdir -p /var/log/qmail/smtpd
# chown qmaill /var/log/qmail /var/log/qmail/smtpd
# echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
# /etc/init.d/qmail cdb
#


next up previous contents
suivant: Tester notre configuration de monter: Configurer qmail précédent: Configurer inetd   Table des matières
2004-07-17