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:
- wget
- joe
- useradd
- groupadd
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:
- Ist der lokale DNS korrekt konfiguriert?
- Ist der Hostname korrekt gesetzt?
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