Inhalt

2. Software

In diesem Abschnitt wird die Software genannt, die zur Konfiguration des Mailservers benötigt wird. Im Vergleich zu sendmail (siehe Mailserver-Howto auf www.64-bit.de) werden für die Benutzung von qmail mehr Pakete benötigt. Die meisten Programme kann man mit dem jeweiligen Paketmanager, der Distribution die man verwendet, installieren. Nur qmail darf (soweit ich weiss) nicht als binäres Paket, sondern nur als Quelltext ausgeliefert werden. Daher ist es ggf. bei verschiedenen Distributionen nicht dabei.
Aus Gründen der Sicherheit, die bei qmail an erster Stelle steht, werden verschiedene Programme installiert, die für qmail die Funktion von ggf. schon vorhandenen ersetzen. Dies sind u.a. ucspi-tcp (tcpserver) als Ersatz für den inetd und daemontools (multilog) für den syslogd. Wenn die Pakete bereits installiert sind, können sie gefahrlos für andere Programme weiterverwendet werden - nur qmail sollte mit den unten angegebenen eingerichtet werden.
Ich gehe bei der Installation davon aus, dass Linux-Kenntisse vorhanden sind. Daher erkläre ich nicht alles bis ins Detail, was die Howto fast unleserlich macht, sondern Beschreibe immer nur die wichtigsten Punkte.

Alle Sourcen die benötigt werden findet man hier oder auf den entsprechenden Homepages!

Anm.:
bevor Sie qmail installieren müssen Sie ihren bisherigen Mailserver stoppen und ggf. deinstallieren!

2.1 qmail

Das qmail-Paket findet man unter http://cr.yp.to/qmail.html. Die hier benutzte Version ist 1.0.3. Sie wird auch nicht mehr weiterentwickelt, da sie lt. dem Entwickler D. J. Bernstein  fertig ist.

2.1.1 Installation

Falls die Installation nicht durch einen Paketmanager erfolgt muss man den Quellcode von der obigen Homepage downloaden, danach kompilieren und installieren. Eine ausführliche Installationsanleitung findet man ebenfalls auf der Homepage. An dieser Stelle will ich auch noch auf gewisse Eigenarten von D. J. Bernstein hinweisen, der sich häufig, mit Begründungen über die man Diskutieren kann, nicht an Standards hält und Ihnen daher ggf. verschiedene Verzeichnisse oder Einstellungen 'komisch' vorkommen.

Laden Sie sich zuerst die Quelldateien herunter und entpacken Sie diese (z.B. unter /usr/local/src)

Standardmäßig erfolgt die Installation unter /var/qmail. Dieses Verzeichnis muss also angelegt werden:
mkdir /var/qmail
Danach müssen noch verschiedene Gruppen und User angelegt werden, unter deren IDs die qmail-Programme laufen:
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

Vor dem Kompilieren von qmail sollte zumindest das Patch qmail-1.03.errno.patch eingespielt werden, da es ansonsten auf einigen Systemen zu Fehlern kommt. Wechseln Sie dazu zuerst in das Verzeichnis in das die Quelldaten entpackt wurden (ich gehe davon aus, dass das Patch unter /tmp liegt!).
patch -p0 </tmp/qmail-1.03.errno.patch

# oder falls die Meldung 'can't find file to patch..' erscheint:
# patch -p1 </tmp/qmail-1.03.errno.patch
Nun kann man qmail kompilieren und installieren:
make setup check
./config

# falls .config wg. der Namensauflösung nicht funktioniert (meist bei dynamischen IPs!) tragen Sie den
# Namen des Rechners in die /etc/hosts ein und versuchen es wieder oder benutzen Sie

# ./config-fast RECHNERNAME.DOMAENE
In dem Verzeichnis /var/qmail befinden sich nach der Installation mehrere Unterordner in denen die Konfigurationsdateien, Startscripte usw. untergebracht sind:
Den Pfad zu den qmail-Programmen sollte man noch in die PATH-Variable (export PATH=$PATH:/var/qmail/bin) mit aufnehmen. Um die Handbücher benutzen zu können müssen sie in die vorhandenen Manual-Verzeichnisse verschoben (meist /usr/local/share/man) oder der qmail-Pfad muss mit aufgenommen werden (durch export MANPATH=$MANPATH:/var/qmail/man).

2.1.2 Script rc

Dieses Script wird zum Starten von qmail benötigt. Es übergibt  qmail-start eine Konfigurationsdatei mit Startparametern. (Zu finden hier)
#!/bin/sh

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"

2.1.3 Script qmailctl

Zum manuellen Steuern von qmail gibt es noch ein weit verbreitetes Script mit dem Namen qmailctl. Dieses habe ich als Anhang beigefügt. Es muss  evtl. noch nach der Installation angepasst (Pfade) und in das Verzeichnis /var/qmail/bin kopiert werden.

Anm.: für die Installation sind die Pakete 2.2 ucspi-tcp und 2.3 daemontools unbedingt notwendig!

2.2 ucspi-tcp (UNIX Client-Server Program Interface for TCP)

Bei diesem Paket ist ein Programm namens tcpserver enthalten. Dieser 'lauscht' an einem bestimmten Netzwerk-Port (z.B. SMTP - 25) und ruft bei einer Verbindung einen Daemon (qmail-smtpd) auf. Es bietet u.a. eine Beschränkung der Verbindungen und ist ein Ersatz für inetd (der dies nicht bietet).  Die Homepage lautet http://cr.yp.to/ucspi-tcp.html.

2.2.1 Installation

Die Installation erfolgt ähnlich wie bei qmail: Downloaden, entpacken, ins Quellcodeverzeichnis wechseln und dann mit den folgenden Befehlen ein Patch einspielen und kompilieren und installieren:
patch -p0 </tmp/ucspi-tcp-0.88.errno.patch # oder -p1

make
make setup check

2.3 daemontools

Das Paket daemontools wird aus zwei Gründen verwendet: zunächste beinhaltet es das Tool multilog, das ein Ersatz für den syslogd unter qmail ist. Weiterhin ist es ein Programm mit dem mehrere Dienste (Daemonen) gesteuert werden können. Die daemontools finden Sie unter http://cr.yp.to/daemontools.html.
Wenn man eine Distributionsbasierte Installation durchführt sollte man überprüfen, dass svscanboot korrekt gestartet wird.

2.3.1 Installation

Die Installation der daemontools läuft ein wenig anders ab als die vorherigen. Es muss ein Verzeichnis /package angelegt werden, in das die Quellen entpackt werden. Nach dem Entpacken muss man in dieses Verzeichnis wechseln, wieder einen Patch einspielen und kann dann die Installation starten.
mkdir -p /package
chmod 1755 /package
cd /package/

# entpacken
gunzip /.../daemontools-0.76.tar
tar -xpf /.../daemontools-0.76.tar
rm /.../daemontools-0.76.tar

# und dann ins Verzeichnis wechseln
cd admin/daemontools-0.76

# Patch einspielen
patch -p1 </tmp/daemontools-0.76.errno.patch

# Installation starten
package/install

Nach der Installation können die Programme unter /package/admin/daemontools-0.76/command nach /usr/local/bin kopiert werden. In diesem Verzeichnis befinden sich u.a. folgende Programme:
Anm.: bei der Installation werden unter /usr/local/bin Links erstellt, die auf Dateien unter /command verweisen und diese widerrum verweisen auf Dateien unter /package. Diese, inkl. dem Verzeichnis /command, sollten gelöscht und durch die Originaldateien ersetzt werden. Ansonsten muss das /package-Verzeichnis immer vorhanden sein. Die Scripte gehen in meiner Howto alle von /usr/local/bin aus.

Dann muss noch in der Datei /etc/inittab der Eintrag (Pfadangabe) für svscanboot angepasst werden. Außerdem existiert noch das Verzeichnis /service.

2.4 fetchmail

Zum Empfangen von E-Mails gibt es nur wenige Programme, die diese Aufgabe auf einfache Art erledigen, ohne Wünsche offenzulassen. Eines davon ist fetchmail. Die Homepage von fetchmail lautet: http://catb.org/~esr/fetchmail/.
Info: es sollte eine Version höher als 6.2.4 benutzt werden. Ansonsten kann es zu Fehlern beim Abrufen wg. fehlerhaftem Mailheader - häufig SPAM-Mails - kommen.

2.4.1 Installation

Die Installation von fetchmail kann als Paket mit dem entsprechenden Manager der Distribution (emerge Yast usw.) erfolgen. Es ist (sehr wahrscheinlich) bei jeder vorhanden. Wer dennoch die Sourcen benutzen will, sollte diese wie die vorherigen Pakete entpacken und dann:
configure
make
make install

2.5 Sonstiges

Dies sind noch Pakete die je nach Konfiguration (u.a. Serialmail bei Einwahl-Rechnern!) auch benötigt werden.

checkpassword-0.90-r2 http://cr.yp.to/checkpwd.html; Wird von qmail-pop3d benötigt um die Kennwörter der Benutzer zu überprüfen; Installation: Entpacken, Patch einspielen, make, make setup check
serialmail http://cr.yp.to/serialmail.html; wird benötigt um bei einem Einwahl-Mailserver die Mails zu bestimmten Zeiten zu versenden; Installation: Entpacken, Patch einspielen, make, make setup check

dot-forward-0.71-r2
http://cr.yp.to/dot-forward.html
cmd5checkpw-0.30
supervise-scripts
relay-ctrl


Inhalt