rob-schulze.de > Informatik > Tutorials > Qmail

Auf den folgenden Seiten möchte ich dokumentieren, wie ich auf einen 1&1 Rootserver den MTA Qmail installiert habe.
Wenn jemand Fragen/Änderungswünsche/Anregungen hat, dann bitte Mail an rob(AT)rob-schulze.de

Hier sind die zu installierenden Pakete:

Außerdem erforderlich, um alles so zu machen, wie es hier beschrieben ist:

1. Qmail Installation

Erstmal Qmail runterladen/entpacken:
# cd /usr/src
# wget http://cr.yp.to/software/qmail-1.03.tar.gz
# tar -xzf qmail-1.03.tar.gz

Dann den Qmail-SMTP-Auth-Patch runterladen/entpacken:
# wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
# tar -xzf qmail-smtpd-auth-0.31.tar.gz
Nun muss Qmail gepatcht werden:

# cd qmail-smtpd-auth-0.31
# cp base64.c base64.h ../qmail-1.03
# patch -d ../qmail-1.03 < auth.patch
Ok, nun muss man wie bei einer Standard-Qmail-Installation fortfahren:
# mkdir /var/qmail
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails
# cd /usr/src/qmail-1.03
# make setup check
# ./config
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .*

Nun muss man nur noch das QMail-Startskript anlegen.
Dazu erzeugt man eine Datei /var/qmail/rc mit folgendem Inhalt:

#!/bin/sh

# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.

exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Mailbox splogger qmail &
Außerdem muss das Script noch ausführbar gemacht werden:
# chmod u+x /var/qmail/rc

Ok, jetzt kann man mal testen, ob Qmail startet:

# /var/qmail/rc
# ps -aux | grep qmail

Man sollte, wenn Qmail erfolgreich gestartet wurde, eine Ausgabe ähnlich folgender sehen:

qmails   30206   0.0     0.1     1304    432     ?       S       Jul10   0:00    qmail-send
qmaill   30207   0.0     0.1     1272    460     ?       S       Jul10   0:00    splogger qmail
root     30208   0.0     0.1     1260    360     ?       S       Jul10   0:00    qmail-lspawn ./Mailbox
qmailr   30209   0.0     0.1     1260    368     ?       S       Jul10   0:00    qmail-rspawn
qmailq   30210   0.0     0.2     1252    376     ?       S       Jul10   0:00    qmail-clean

Wenn dies nicht der Fall ist: Einfach mal probieren, nochmal zu kompilieren/installieren, das hilft komischerweise oft bei QMail:
# cd /usr/src/qmail-1.03
# make setup check
# ./config


Ok, nehmen wir an, dass Qmail erfolgreich installiert ist.
Nun gehts weiter mit...

2. VPopMail Installation

# cd /usr/src
# wget http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz
# tar -xzf vpopmail-5.2.1.tar.gz
# cd vpopmail-5.2.1
# groupadd vchkpw
# useradd -g vchkpw -d /home/vpopmail vpopmail
# mkdir /home/vpopmail
# chown vpopmail:vchkpw /home/vpopmail
# ./configure
# make
# make install-strip
# chmod 4755 ~vpopmail/bin/vchkpw
# chown root.root ~vpopmail/bin/vchkpw
Die VPopMail-Dateien sind nun unterhalb des Verzeichnisses /home/vpopmail.

Ganz wichtig, sonst funktioniert der Auth-Prozess nicht:
Die Datei ~vpopmail/etc/tcp.smtp erzeugen und folgendes reinschreiben:

127.0.0.:allow,RELAYCLIENT=""


VPopMail ist nun auch installiert.
Nun muss dafür gesorgt werden, dass der SMTP und POP Port auch "belauscht" wird.

3. XInetd Konfiguration


Ok, nun wird der xinetd für POP3 und SMTP konfiguriert:
Für POP/SMTP/FTP habe ich folgende /etc/xinetd.conf erzeugt, wobei deinserver.de auf den Hostnamen des Servers abgeändert werden muss.

defaults
{
        log_type        = FILE /var/log/xinetd.log
        log_on_success  = HOST EXIT DURATION
        log_on_failure  = HOST ATTEMPT RECORD
        instances       = 2


#        disabled        = ftp
        disabled        = rstatd
        disabled        = telnet
        disabled        = shell
        disabled        = login
        disabled        = finger
#        disabled        = pop3
        disabled        = comsat
        disabled        = ntalk
        disabled        = talk
        disabled        = discard
        disabled        = chargen
        disabled        = daytime
        disabled        = time
        disabled        = echo
        disabled        = daytime
        disabled        = time
#        disabled        = smtp
        disabled        = ident

}

service ftp
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/proftpd
        instances       = UNLIMITED
}

service pop3
{
        socket_type      = stream
        protocol         = tcp
        wait             = no
        user             = root
        server           = /var/qmail/bin/qmail-popup
        server_args      = www.deinserver.de /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
}

service smtp
{
        flags            = REUSE NAMEINARGS
        socket_type      = stream
        protocol         = tcp
        wait             = no
        user             = qmaild
        server           = /usr/sbin/tcpd
        server_args      = /var/qmail/bin/tcp-env -R /var/qmail/bin/qmail-smtpd deinserver.de /home/vpopmail/bin/vchkpw /bin/true
}

Da nun der xinetd verwendet wird, muss man den inetd stoppen, und verhindern, dass er bei einem Reboot automatisch gestartet wird.
# killall inetd
# mv /etc/init.d/inetd /etc/init.d/inetd.removed

Um xinetd zu starten:
# rcxinetd start


OK, nun ist alles installiert.

Nun müssen nur noch die sendmail-Reste vernichtet werden.
Dazu sucht man sich die sendmail Programme in den Verzeichnissen /usr/lib /usr/sbin und tauscht sie durch Links auf /var/qmail/bin/sendmail aus.
# rm /usr/lib/sendmail
# rm /usr/sbin/sendmail
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

Um Qmail zu starten:
# /var/qmail/rc

Um Qmail zu beenden:
# killall qmail-send