Vous êtes sur la page 1sur 11

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

Installation de qmail sur Ubuntu Server 10.04 Lucid


Posted on 19 juin 2010 Dans ce billet je vais expliquer comment installer qmail sous Ubuntu dans les rgles de lart . Quest ce que je veux dire par la ? Ubuntu (et Debian) propose une mthode dinstallation base sur le paquet qmail-src, dun autre cot DJB (le crateur de qmail) prconis une mthode et bien entendu les deux sont diffrentes. Dans ce tuto je vais utiliser la mthode de DJB. Dans cette partie, je ne vais pas traiter de la mise ne place dun service de messagerie complet (a viendra), mais juste la mise en place de qmail en tant que MTA et sa configuration minimale. Typiquement ce genre dinstallation sera utilise sur un serveur qui a surtout besoin denvoyer des mails mais qui ne gre pas de boite mails (un serveur web par exemple, dans mon cas a va tre pour un serveur de mailing-list)
PR- REQUIS

On va considrer que vous avez: Un serveur sous Ubuntu (server ou pas) connect au net. Le minimum vital dinstall (divers outils dadmin et de dev entre autre un compilateur). De mon cot je vais utiliser une machine virtuelle sous openvz, avec un Ubuntu minimal. On va avoir besoin des lments suivant: netqmail: netqmail est la version de qmail maintenue par les gourous de qmail. Concrtement il y a juste quelque retouches par rapport au qmail dorigine pour que le code reste compatible avec les distribs modernes . ucspi-tcp : ce module va grer la partie tcp de notre installation en particulier pas le biais de tcp-server. daemontools: qui va veiller a ce que nos diffrents lments soient UP
INSTAL L AT IO N DE UCSPI-T CP

On ne vas pas se casser la tte, on va se contenter dutiliser le gestionnaire de paquets:

apt-get install ucspi-tcp

1 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

INSTAL L AT IO N DE DAEMO NT OO LS

On ne vas pas se fatiguer inutilement ici non plus:

apt-get

install daemontools daemontools-run

INSTAL L AT IO N DE NET QM AI L

Tlchargement des sources Quoi ? Quel scandale ! On va utiliser des sources, compiler, installer. ! Et puis il faudra recommencer a chaque fois quune faille sera dcouverte ? Quelle horreur !!! Alors oui on va se taper du make, mais rassurez vous il y a trs peu de chance pour que vous ayez mettre a jour vos binaires qmail-* pour des questions de scu: qmail est fiable performant et secure par dfaut et le restera. On se dplace dans le rpertoire /usr/local/src et on download les sources de qmail/netqmail:

cd /usr/local/src/; wget http://www.qmail.org/netqmail-1.06.tar.gz; gunzip netqmail-1.06.tar.gz; tar xpf netqmail-1.06.tar;

Cration du rpertoire accueillant qmail

mkdir -p /var/qmail

Cration de lutilsateur de de son groupe

cd netqmail-1.06 cp INSTALL.ids IDS

On va diter le fichier IDS pour decommenter la partie qui nous concerne, a savoir ce quil y a sous lintitul Linux et commenter ou supprimer tout le reste :

$ cat IDS groupadd nofiles useradd -g nofiles useradd -g nofiles useradd -g nofiles useradd -g nofiles

-d -d -d -d

/var/qmail/alias alias /var/qmail qmaild /var/qmail qmaill /var/qmail qmailp

2 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails

Il nous suffit a prsent dexcuter ce script pour crer utilisateur et groupe:

sh IDS

Compilation et configuration de base On va compiler les sources et dployer les binaires. Attention il est trs important avant daller plus loin de vrifier que le nom dhte de la machine soit correctement configure. Le script dinstallation va rcuprer le hostname pour la config de base de qmail.

cd /usr/local/src/netqmail-1.06; make setup check; ./config;

On va crer le script /var/qmail/rc et y mettre

#!/bin/sh # Using stdout for logging # Using control/defaultdelivery from qmail-local to deliver messages by default exec env - PATH="/var/qmail/bin:$PATH" qmail-start "`cat /var/qmail/control/defaultdelivery`"

Il nous faut maintenant le rendre excutable, crer le rpertoire de logs et dfinir le format de mailbox a utiliser

chmod 755 /var/qmail/rc; mkdir /var/log/qmail; echo ./Mailbox >/var/qmail/control/defaultdelivery;

Cration du script de gestion de qmail Ce script va permettre de lancer/arreter qmail. On le cre dans /var/qmail/bin/qmailctl

nano /var/qmail/bin/qmailctl

3 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

Puis on y colle:

#!/bin/sh # description: the qmail MTA PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin export PATH QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` case "$1" in start) echo "Starting qmail" if svok /etc/service/qmail-send ; then svc -u /etc/service/qmail-send /etc/service/qmail-send/log else echo "qmail-send supervise not running" fi if svok /etc/service/qmail-smtpd ; then svc -u /etc/service/qmail-smtpd /etc/service/qmail-smtpd/log else echo "qmail-smtpd supervise not running" fi if [ -d /var/lock/subsys ]; then touch /var/lock/subsys/qmail fi ;; stop) echo "Stopping qmail..." echo " qmail-smtpd" svc -d /etc/service/qmail-smtpd /etc/service/qmail-smtpd/log echo " qmail-send" svc -d /etc/service/qmail-send /etc/service/qmail-send/log if [ -f /var/lock/subsys/qmail ]; then rm /var/lock/subsys/qmail fi ;; stat) svstat /etc/service/qmail-send svstat /etc/service/qmail-send/log svstat /etc/service/qmail-smtpd svstat /etc/service/qmail-smtpd/log qmail-qstat ;; doqueue|alrm|flush) echo "Flushing timeout table and sending ALRM signal to qmail-send."

4 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

/var/qmail/bin/qmail-tcpok svc -a /etc/service/qmail-send ;; queue) qmail-qstat qmail-qread ;; reload|hup) echo "Sending HUP signal to qmail-send." svc -h /etc/service/qmail-send ;; pause) echo "Pausing qmail-send" svc -p /etc/service/qmail-send echo "Pausing qmail-smtpd" svc -p /etc/service/qmail-smtpd ;; cont) echo "Continuing qmail-send" svc -c /etc/service/qmail-send echo "Continuing qmail-smtpd" svc -c /etc/service/qmail-smtpd ;; restart) echo "Restarting qmail:" echo "* Stopping qmail-smtpd." svc -d /etc/service/qmail-smtpd /etc/service/qmail-smtpd/log echo "* Sending qmail-send SIGTERM and restarting." svc -t /etc/service/qmail-send /etc/service/qmail-send/log echo "* Restarting qmail-smtpd." svc -u /etc/service/qmail-smtpd /etc/service/qmail-smtpd/log ;; cdb) tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp chmod 644 /etc/tcp.smtp.cdb echo "Reloaded /etc/tcp.smtp." ;; help) cat <<HELP stop -- stops mail service (smtp connections refused, nothing goes out) start -- starts mail service (smtp connection accepted, mail can go out) pause -- temporarily stops mail service (connections accepted, nothing leaves) cont -- continues paused mail service stat -- displays status of mail service cdb -- rebuild the tcpserver cdb file for smtp restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it doqueue -- schedules queued messages for immediate delivery reload -- sends qmail-send HUP, rereading locals and virtualdomains

5 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

queue -- shows status of queue alrm -- same as doqueue flush -- same as doqueue hup -- same as reload HELP ;; *) echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}" exit 1 ;; esac exit 0

On fixe les droits du script pour quil soit excutable et on cre un lien vers /usr/bin ce qui va nous permettre de lancer ce script sans avoir a entrer son chemin complet.

chmod 755 /var/qmail/bin/qmailctl; ln -s /var/qmail/bin/qmailctl /usr/bin;

On va devoir prsent crer les supervises scripts, ces scripts vont tre utiliss par daemontools pour superviser qmail. Dans ce qui suit comme cest un peu laborieux et rptitif je vais me contenter pour chacun dun nano le script et en dessous son contenu. Avant tout on va crer les rpertoires de log:

mkdir -p /var/qmail/supervise/qmail-send/log; mkdir -p /var/qmail/supervise/qmail-smtpd/log;

Et cest parti pour les scripts

nano /var/qmail/supervise/qmail-send/run

#!/bin/sh exec /var/qmail/rc

Pour qmail-smtpd:

nano /var/qmail/supervise/qmail-smtpd/run

6 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

#!/bin/sh QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` LOCAL=`head -1 /var/qmail/control/me` if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in echo /var/qmail/supervise/qmail-smtpd/run exit 1 fi if [ ! -f /var/qmail/control/rcpthosts ]; then echo "No /var/qmail/control/rcpthosts!" echo "Refusing to start SMTP listener because it'll create an open relay" exit 1 fi exec /usr/bin/softlimit -m 4000000 /usr/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

On va configurer des maintenant le concurrencincoming qui dfinit le nombre maximum de transactions SMTP entrantes. On va pour le moment se contenter de 20.

echo 20 > /var/qmail/control/concurrencyincoming; chmod 644 /var/qmail/control/concurrencyincoming;

Pour les logs qmail-smtpd:

nano /var/qmail/supervise/qmail-smtpd/log/run

Qui doit contenir

#!/bin/sh exec /usr/bin/setuidgid qmaill /usr/bin/multilog t /var/log/qmail/qmail-smtpd

Les logs qmail-send a prsent:

nano /var/qmail/supervise/qmail-send/log/run

7 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

#!/bin/sh exec /usr/bin/setuidgid qmaill /usr/bin/multilog t /var/log/qmail/qmail-send

La partie pnible se termine, il nous faut a prsent fixer les droits sur ces scripts:

chmod chmod chmod chmod

755 755 755 755

/var/qmail/supervise/qmail-send/run; /var/qmail/supervise/qmail-send/log/run; /var/qmail/supervise/qmail-smtpd/run; /var/qmail/supervise/qmail-smtpd/log/run;

On cr les repertoires pour les logs:

mkdir -p /var/log/qmail/qmail-smtpd; mkdir -p /var/log/qmail/qmail-send; chown qmaill /var/log/qmail/qmail-send /var/log/qmail/qmail-smtpd;

Bien on va prsent dfinir les autorisations de relais. Par dfaut qmail accepte uniquement le relais pour les domaine quil gre, autrement dit uniquement pour le domaine que vous avez dfinis comme hostname du serveur. Comme cette installation de qmail va aussi servir de SMTP pour les applications locales, donc qui attaquent le SMTP sur le port 127.0.0.1, on va autoriser cette IP a relayer:

echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp; qmailctl cdb;

Le systme ou une application peut avoir besoin denvoyer des mails en utilisant le binaire sendmail, on va donc faire en sorte que notre configuration supporte cette fonctionnalit. qmail intgre un binaire sendmail, qui implmente les mme commandes/options que le binaire sendmail dorigine.

ln -s /var/qmail/bin/sendmail /usr/lib; ln -s /var/qmail/bin/sendmail /usr/sbin;

Configuration des alias Dans cette installation nous nallons pas crer de boite locale, tous les mails devront donc etre redirigs vers un autre compte. Dans mon cas je vais tout rediriger vers techAprotecmail.com (A=@).

echo "&tech@protecmail.com" > /var/qmail/alias/.qmail-root; echo "&tech@protecmail.com" > /var/qmail/alias/.qmail-postmaster; ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon; ln -s .qmail-postmaster /var/qmail/alias/.qmail-abuse;

8 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster;

L ANCEMENT DE Q MAIL ET VRIF ICAT IONS

Voici venu le moment critique ou lon va savoir si tout fonctionne correctement. ou pas. Comme on la vu, les process lis qmail sont grs par daemontools via les scripts supervise , il nous faut donc crer les liens necessaires pour que daemontools soit en mesure de les exploiter. Attention dans une installation classique les supervises scripts doivent tre links vers /services. Dans notre cas, on a utilis les paquets Ubuntu pour daemontool et ce dernier une configuration diffrentes et utilise /etc/service, on va garder cette config.

ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /etc/service

On lance qmail (en fait daemontools doit avoir fait son boulot et qmail devrait tre lanc): qmailctl start On vrifie que qmail tourne correctement grce a la commande :

$ qmailctl stat /etc/service/qmail-send: up (pid 864) 5 seconds /etc/service/qmail-send/log: up (pid 875) 5 seconds /etc/service/qmail-smtpd: up (pid 867) 5 seconds /etc/service/qmail-smtpd/log: up (pid 865) 5 seconds messages in queue: 0 messages in queue but not yet preprocessed: 0

Bon cest bien beau tout a, mais pour le systeme il ny a pas de MTA install puisque lon na pas utilis le gestionnaire de paquets pour installer qmail. Il faut donc gruger un peu et faire croire au systeme quil y a un MTA. Comme ma rencontre avec Ubuntu|Debian est assez rcente, jai prfr utiliser mon Joker Appel a un ami pour touver le truc car mes recherches chez lami google ntaient pas trs concluantes. En loccurrence Stphane (que je vous conseille par ailleurs si vous avez besoin dinfogrance pour vos serveurs) ma donn le truc. En gros on fait un paquet virtuel, ainsi le systeme va croire quun MTA est install.

apt-get install equivs cd /tmp cp /usr/share/doc/equivs/examples/mail-transport-agent.ctl . equivs-build mail-transport-agent.ctl dpkg -i /tmp/mta-local_1.0_all.deb

On va installer un petit binaire qui va nous permettre denvoyer des mails en ligne de commande (on pourrait

9 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

utiliser qmail-inject ou sendmail, mais je pense que la commande mail est plus repandue et donc plus habituelle)

apt-get install bsd-mailx

On fait un test denvois en local pour voir si a redirige correctement vers une boite externe (ou pourrait se contenter de faire un test vers une adresse dsitante, mais la on fait dune pierre deux coups):

echo "un test de MTA" | mail -s"MTA" root

Normalement vous devriez recevoir le mail sur ladresse configure dans .qmail-root. Si ce nest pas le cas consultez vos logs (/var/log/qmail). Voila cest tout pour aujourdhui. Ce howto se verra complt dans un avenir plus ou moins proche par un autre tuto dcrivant la mise ne place dun gestionnaire de mailing list. Et comme on aime les outils de DJB ce sera ezmlm.

Partagez cet article


Tweeter 0 Like 2 people like this. Be the first of your friends.

This entry was posted in Sysadmin and tagged DJB, qmail, ubuntu by Toorop. Bookmark the permalink [/howto-tutoria-qmail-sur-ubuntu-server-10-04-lucid/] .
5 THOUGHTS ON INSTALLATION DE QMAIL SUR UBUNTU SERVER 10.04 LUCID

Pingback: Vpopmail on Ubuntu In My Mind Pingback: ezmlm: installation et configuration sous Ubuntu ou Debian In My Mind

Thibs on 22 juillet 2010 at 13 h 23 min said:

Trs bon tuto ! Pour info jen ai fait un autre un peu plus complet et spcifiquement pour Debian (mais qui devrais je pense fonctionner sous Ubuntu) : http://qmailrocks.thibs.com Quelques diffrences : -Ce tuto utilise les packages pour ucspi-tcp et daemontools (ce qui

10 of 11

05/09/2012 02:05 AM

Installation de qmail sur Ubuntu Server 10.04 LucidIn ...

http://blog.toorop.fr/howto-tutoria-qmail-sur-ubuntu-serv...

est une meilleure ide que ce que je dcris dans mon tuto) -Mon tuto nutilise pas NetQmail mais utilise le combined patch de John Simpson (ce qui revient plus ou moins au mme) -Mon tuto propose des options en plus pour avoir un mail toaster complet A+ Thibs

Alexandre on 14 juin 2011 at 18 h 59 min said:

Bonjour, EN prrequis : apt-get install mailutilis

Rmy on 19 fvrier 2012 at 2 h 04 min said:

Merci pour ce tuto trs clair. Jai juste eu redmarrer le serveur aprs linstallation de daemontools, sans a qmail ne voulait pas dmarrer. Tout le reste a fonctionn merveille.

11 of 11

05/09/2012 02:05 AM