[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Le nom de domaine pour configurer DNS avec BIND9



Le vendredi 15 mai 2009 à 11:40 +0200, Yves Rutschle a écrit :
> On Fri, May 15, 2009 at 11:00:42AM +0200, Julien wrote:
> > Je te conseillerais donc QMail pour commencer mais ça va
> > faire hurler tout le monde !
> 
> Ouais, personellement je vais commencer par te demander
> comment tu installes qmail sur Debian. 

Pour ceux qui sont interessé par QMail, voilà comment j'installe QMail
sur Debian. Toutes les lignes qui commence par # sont à lancer dans une
console. N'hésitez pas si vous avez des questions ! 

Ps : est-ce que c'est Hors Sujet ? je crée un nouveau fils ? c'est nul
de mettre des gros script comme ça ?

Installation QMail pour Debian 

Installer daemontools

# aptitude install daemontools
# aptitude install daemontools-run
# cd /
# ln -s /etc/service

Installer ucspi-tcp

# aptitude install ucspi-tcp

Installer QMail

Créer les groupes et utilisateurs

# addgroup --system nofiles
# adduser --system --ingroup nofiles --home /var/qmail/alias alias
# adduser --system --ingroup nofiles --home /var/qmail qmaild
# adduser --system --ingroup nofiles --home /var/qmail qmaill
# adduser --system --ingroup nofiles --home /var/qmail qmailp
# addgroup --system qmail
# adduser --system --ingroup qmail --home /var/qmail qmailq
# adduser --system --ingroup qmail --home /var/qmail qmailr
# adduser --system --ingroup qmail --home /var/qmail qmails

Décompresser, compiler et installer QMail
# cd
# wget http://www.qmail.org/netqmail-1.06.tar.gz
# tar xzf /root/server-install/netqmail-1.06.tar.gz
# cd netqmail-1.06/
# make setup check

Configurer QMail
# ./config
# cd /var/qmail/control/ 
# echo "20" > concurrencyincoming
# echo "./Maildir/" > defaultdelivery 
# rm plusdomain locals

Ajouter les domaines à gérer dans le fichier rcpthosts puis :
# ln -s rcpthosts locals

Ajouter le scripts de gestion de QMail (qmailctl.sh)
dans /usr/local/bin : 

------------------------------- contenu de qmailctl.sh --
#!/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 /service/qmail-send ; then
      svc -u /service/qmail-send /service/qmail-send/log
    else
      echo "qmail-send supervise not running"
    fi
    if svok /service/qmail-smtpd ; then
      svc -u /service/qmail-smtpd /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 /service/qmail-smtpd /service/qmail-smtpd/log
    echo "  qmail-send"
    svc -d /service/qmail-send /service/qmail-send/log
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi
    ;;
  stat)
    svstat /service/qmail-send
    svstat /service/qmail-send/log
    svstat /service/qmail-smtpd
    svstat /service/qmail-smtpd/log
    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Flushing timeout table and sending ALRM signal to qmail-send."
    /var/qmail/bin/qmail-tcpok
    svc -a /service/qmail-send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /service/qmail-send
    ;;
  pause)
    echo "Pausing qmail-send"
    svc -p /service/qmail-send
    echo "Pausing qmail-smtpd"
    svc -p /service/qmail-smtpd
    ;;
  cont)
    echo "Continuing qmail-send"
    svc -c /service/qmail-send
    echo "Continuing qmail-smtpd"
    svc -c /service/qmail-smtpd
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping qmail-smtpd."
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "* Sending qmail-send SIGTERM and restarting."
    svc -t /service/qmail-send /service/qmail-send/log
    echo "* Restarting qmail-smtpd."
    svc -u /service/qmail-smtpd /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
  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

------------------------------- fin du contenu de qmailctl.sh ---

Créer les scripts de lancement : 
# mkdir
-p /var/qmail/supervise/qmail-send/log /var/qmail/supervise/qmail-smtpd/log
Lancement de qmail-send 
- Démon dans le fichier /var/qmail/supervise/qmail-send/run :

----------------- contenu de /var/qmail/supervise/qmail-send/run ---
#!/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`" 
-------------- fin du contenu de /var/qmail/supervise/qmail-send/run --

- Log dans le fichier /var/qmail/supervise/qmail-send/log/run : 
------------ contenu de /var/qmail/supervise/qmail-send/log/run ---
#!/bin/sh 
exec /usr/bin/setuidgid qmaill /usr/bin/multilog
t /var/log/qmail/qmail-send
---- fin du contenu de /var/qmail/supervise/qmail-send/log/run ----

Lancement de qmail-smtpd :
- Démon dans le fichier /var/qmail/supervise/qmail-smtpd/run : 
--------- contenu de /var/qmail/supervise/qmail-smtpd/run -----
#!/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 20000000 \
  /usr/bin/tcpserver -v -R -l "$LOCAL" \
  -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
  -u "$QMAILDUID" -g "$NOFILESGID" 127.0.0.1
smtp /var/qmail/bin/qmail-smtpd 2>&1 
-------- fin du contenu de /var/qmail/supervise/qmail-smtpd/run ------
Il faut remplacer dans le script précedent 127.0.0.1 par l'adresse IP
public du serveur ou mettre 0.0.0.0


- Log dans le fichier /var/qmail/supervise/qmail-smtpd/log/run : 
---------------- contenu de /var/qmail/supervise/qmail-smtpd/log/run ---
#!/bin/sh 
exec /usr/bin/setuidgid qmaill /usr/bin/multilog
t /var/log/qmail/qmail-smtpd
--------- fin du contenu de /var/qmail/supervise/qmail-smtpd/log/run --

Créer les répertoires pour les logs :
# mkdir -p /var/log/qmail/qmail-smtpd /var/log/qmail/qmail-send
# chown  qmaill /var/log/qmail/qmail-smtpd /var/log/qmail/qmail-send

Rendre exécutable les script run
# cd /var/qmail/supervise
# chmod +x `find -name run`

Créer les réglès pour tcpserver dans le fichier /etc/tcp.smtp :
-------------- contenu de /etc/tcp.smtp --------------
127.0.0.1:allow,RELAYCLIENT="" 
--------------- fin du contenu de /etc/tcp.smtp --------------
Puis compiler ces règles :
# qmailctl.sh cdb

Suppression de Exim4/Postfix :
# aptitude install equivs
# cd /var/tmp
# cp /usr/share/doc/equivs/examples/mail-transport-agent.ctl .
# equivs-build mail-transport-agent.ctl
Cas de Exim4 :
# dpkg --ignore-depends=exim4 -r exim4
# dpkg --ignore-depends=exim4-daemon-light -r exim4-daemon-light
# dpkg --ignore-depends=exim4-base -r exim4-base
Cas de Postfix :
# dpkg --ignore-depends=postfix -r postfix
Installation du mta “dummy” :
# dpkg -i /var/tmp/mta-local_1.0_all.deb

Lancer QMail
# cd /service
# ln -s /var/qmail/supervise/qmail-send
# ln -s /var/qmail/supervise/qmail-smtpd

Installation du remplacement de sendmail
Ajouter /var/qmail/bin à la fin du PATH du fichier /etc/profile

# cd /usr/local/bin
# ln -s /var/qmail/bin/sendmail

Créer des alias pour les adresses root@example.com
postmaster@example.com ...
# cd /var/qmail/alias
# ...


Julien


Reply to: