QMail Installation

Aus Debian-Linux - FAQ

Wechseln zu: Navigation, Suche
Hinweis: In diesem Artikel müssen Änderungen vorgenommen werden, da er in seiner jetzigen Form nicht mehr aktuell ist.

Einige Links funktionieren wohl nicht (mehr) und für ein aktuelles Debian passt er anscheinend auch nicht mehr

Als Grundlage für diesen Artikel habe ich das lazydog-script benutzt, mit dem man sich ein lauffähiges qmail-system erstellen kann. Da ich aber verstehen wollte, was genau gemacht wird, habe ich mich entschlossen, das script abzuarbeiten und gleichzeitig diese Dokumentation zu erstellen.

Inhaltsverzeichnis

[bearbeiten] Downloads

Hier sind alle benötgten Programme aufgelistet, jeweils mit dem Link zu der entsprechenden Seite und der benutzten Version.

[bearbeiten] vpopmail

http://www.inter7.com/vpopmail.html Version 5.4.0

[bearbeiten] qmail

http://cr.yp.to/qmail.html Version 1.03

[bearbeiten] qmail bounce patch

http://www.jedi.claranet.fr/ http://www.jedi.claranet.fr/qmail-bounce.patch

[bearbeiten] qmail spamc patch

http://www.qmail.nu/files/qmail-spamc.c.gz

[bearbeiten] qmail toaster patch

http://shupp.org/ http://shupp.org/patches/qmail-toaster-0.5-1.patch.bz2 Version 0.5-1

[bearbeiten] binc imap

http://www.bincimap.org/ Version 1.2.6final

[bearbeiten] ezmlm

http://cr.yp.to/ezmlm.html Version 0.53

[bearbeiten] ezmlm idx -patch

ftp://ftp.ezmlm.org/pub/ezmlm/ezmlm-patches/ezmlm-idx-0.53.tar.gz Version 0.53

[bearbeiten] qmailadmin

http://sourceforge.net/projects/qmailadmin/ Version 1.2.0

[bearbeiten] ucspi-tcp

http://cr.yp.to/ucspi-tcp.html Version 0.88

[bearbeiten] ucspi-tcp errno patch

http://www.qmail.nu/files/ucspi-tcp-0.88-ssl-pidfile-errno.patch.gz

[bearbeiten] vqadmin

http://www.inter7.com/vqadmin/ (http://www.inter7.com/develop.html) Version 2.3.5 (development)

[bearbeiten] autorespond

(http://www.inter7.com/develop.html) Version 2.0.5

[bearbeiten] andere Patches

[bearbeiten] scanmail patch

http://www.qmail.nu/files/scanmail.sh.gz

[bearbeiten] Konfigurieren und Kompilieren der Programme

Erstellen der directories und der user bzw. groups

mkdir /var/qmail
mkdir /var/qmail/alias

groupadd nofiles
useradd -s /bin/false -g nofiles -d /var/qmail qmaill
useradd -s /bin/false -g nofiles -d /var/qmail qmailp
useradd -s /bin/false -g nofiles -d /var/qmail/alias alias
groupadd qmail
useradd -s /bin/false -g qmail -d /var/qmail qmailq
useradd -s /bin/false -g qmail -d /var/qmail qmailr
useradd -s /bin/false -g qmail -d /var/qmail qmails
groupadd vchkpw
useradd -s /bin/false -g vchkpw -d /home/vpopmail vpopmail
mkdir -p /home/vpopmail/etc
chown -R vpopmail:vchkpw /home/vpopmail

[bearbeiten] qMail

Beginnen wir mit dem "Herzstück", qmail selbst

[bearbeiten] Install

  1. entpacken von qmail-1.03.tar.gz
  2. entpacken von qmail-toaster-0.6-1.patch.bz2
  3. patch < qmail-toaster-0.6-1.patch
  4. patch < qmail-bounce.patch
  5. Anpassen des Pfades zu openssl in conf-cc. Bei debian ist das /usr/include/openssl.
  6. Ändern des users qmaild in conf-user, da vpopmail als daemon user benutzen.

Jetzt wird qmail mit make kompiliert. [real 5m50.099s (P133)] Und zum Schluß wird qmail mit make setup check nach /var/qmail installiert. [real 1m11.237s(P133)]

[bearbeiten] Postinstall

Der nun folgende Aufruf von ./config richtet den Hostname vom Mailserver ein. Falls der DNS nicht funktioneren sollte, erledigt das ./config-fast domain.tld.

Der Aufruf von echo ./Maildir >/var/qmail/control/defaultdelivery legt den Mailboxtyp auf auf Maildir, was wohl zuverlässiger ist.

Als nächstes werden die die SSL-Zertifikate mit make cert erstellt. Bei mir gab es da einen einzigen Fehler. Was durch mit sed s/qmaild/vpopmail/ Makefile >Makefile.temp && mv Makefile.temp Makefile behoben war.

Nun wird als nächstes der Ordner für die Startscripte erstellt und die Rechte entsprechend gesetzt: mkdir /var/qmail/service && chmod 755 /var/qmail/service

In diesem Ordner werden nun die Courier Startscripte erstellt, und auch wieder die Zugriffsrechte gesetzt:

chmod 755 /var/qmail/service/init.rc
chmod 755 /var/qmail/service/init.qmail-delivery
chmod 755 /var/qmail/service/init.pop3d
chmod 755 /var/qmail/service/init.pop3sd
chmod 755 /var/qmail/service/init.imapd
chmod 755 /var/qmail/service/init.imapsd
chmod 755 /var/qmail/service/init.smtpd

Jetzt wird tarpit count auf 10 und tarpit delay auf 5 gesetzt.

echo10 > /var/qmail/control/tarpitcount
echo 5 > /var/qmail/control/tarpitdelay

Um auf eine existierende Absenderdomain zu überprüfen:

echo 1 > /var/qmail/control/mfcheck

Damit sichergestellt ist, daß ausgehende Mails, keine irregulären Zeichen enthalten, muß folgendes in /var/qmail/control/badmailto

[!%#:\*\^]
[\(\)]
[\{\}]
@.*@

[bearbeiten] ucspi

Das UNIX Client-Server Program Interface:

  1. entpacken von ucspi-tcp-0.88.tar.gz
  2. entpacken von ucspi-tcp-0.88-ssl-pidfile-errno.patch.gz
  3. patch <ucspi-tcp-0.88-ssl-pidfile-errno.patch

In der tcpserver.c muß

  #define CERTFILE "./cert.pem"

ersetzt werden durch

  #definde CERTFILE "/var/qmail/control/servercert.pem"

auch hier gibts wieder den entsprechenden Befehl:

sed s#define\ CERTFILE\ \"./cert.pem\"#define\ CERTFILE\ \"/var/qmail/control/servercert.pem\"#g tcpserver.c > tcpserver.c.temp && mv tcpserver.c.temp tcpserver.c

Nun kann mit make ucspi kompiliert werden [real 2m15.518s (P133)]

uscpi wird mit make setup check nach /usr/local installiert [real 0m1.424s(P133)]

Mit chmod 2755 /usr/local /usr/local/bin muß nun ein Bug aus dem Installationsprogramm korrigiert werden. /usr/local und /usr/locl/bin wird damit wieder das suid bit gesetzt.

[bearbeiten] autoresponder

  1. entpacken von autorespond-2.0.5.tar.gz

Danach wird wieder mit make kompiliert [real 0m7.825s(P133)], und mit make install nach /usr/local installiert.

[bearbeiten] ezmlm idx

Mailingliste

  1. entpacken von ezmlm-idx-0.40.tar.gz und ezmlm-0.53.tar.gz
  2. Verschieben aller Dateinen aus ezmlm-idx-0.40 nach ezmlm-0.53: mv -f ezmlm-idx-0.40/* ezmlm-0.53/
  3. patch < idx.patch

(den RH9 glibc-patch lasse ich hier aus, ich hoffe, daß er für debian nicht nötig ist)

make kompiliert ezmlm jetzt [real 5m26.824s(P133)] (Jedenfalls hat ezmlm duchkompiliert). Diesmal wird mit make setup nach /usr/local installiert [real 1m24.830s(P133)].

[bearbeiten] vpopmail

Das Ding, das alles erst zur Geltung bringt ;)

  1. entpacken von vpopmail-5.4.0.tar.gz

Ausnahmsweise gibt es mal nichts zu patchen, dafür gibt es diesmal ein configure-script:

./configure \
--enable-learn-passwords=y \
--enable-roaming-users=y \
--enable-relay-clear-minutes=120 \
--enable-qmail-ext=y \
--enable-domainquotas=y

Das dauert einen Moment: [real 1m50.650s(P133)]. Nun wird wieder mit make kompiliert [real 3m6.164s(P133)] und mit make install nach /home/vpopmail installiert [real 0m3.121s(P133)].

mit

echo "%IPNUMBER%:allow,RELAYCLIENT=\"\"" >> ~vpopmail/etc/tcp.smtp
echo "%DOMAINNAME%" > ~vpopmail/etc/defaultdomain

wird vpopmail die IP und der Domainname des Mailservers angegeben (%IPNUMBER% und %DOMAINNAME% müssen durch die richtigen Angaben ersetzt werden).

Falls der Quota eines Users zu 90% voll ist bekommt er eine Mail, die in /home/vpopmail/domains/.quotawarn.msg festgelegt ist (auch hier muß %DOMAINNAME% wieder ersetzt werden:

From: Mail Delivery System <Mailer-Daemon@%DOMAINNAME%>
Reply-To: %MAILADDR%
To: Valued Customer:;
Subject: Mail quota warning
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit

Your mailbox on the server is now more than 90% full. So that you can continue
to receive mail you need to remove some messages from your mailbox.

Zum Schluß wird mit chown vpopmail:vchkpw /home/vpopmail/domains/.quotawarn.msg der Besitzer der Datei geändert.

[bearbeiten] Qmailadmin

Praktisch für Kunden ;)

  1. entpacken von qmailadmin-1.2.0.tar.gz
  2. erstelle des image-ordners: mkdir -p %HTDOCS%/images/qmailadmin (%HTDOCS% muß wieder ersetzt werden, bei debian ist das /var/www)

Konfiguriert wird mit

./configure \
--enable-htmldir=%HTDOCS% \
--enable-cgibindir=%CGI-BIN% \
--with-htmllibdir=/var/qmail/qmailadmin_html \
--enable-imagedir=%HTDOCS%/images/qmailadmin \
--disable-ezmlm-mysql \
--enable-no-cache=y

(auch hier müssen %HTDOCS% und %CGI-BIN ersetzt werden. Bei debian sind das die Verzeichnisse /var/www und /usr/lib/cgi-bin). [real 0m59.950s(P133)]. Mit make wird kompiliert[real 1m34.395s(P133)] und mit make install installiertreal 0m2.070s[(P133)].

[bearbeiten] vQ admin

bietet mehr Möglichkeiten als Qmailadmin, ist also für Administratoren gedacht

  1. entpacken von vqadmin-2.3.5.tar.gz

Konfiguriert wird vQadmin mit

./configure --enable-cgibindir=%CGI-BIN% \
--enable-no-cache=y

(nicht vergessen, %CGI-BIN% zu ersetzen; bei Debian /usr/lib/cgi-bin) [real 0m20.427s(P133)]. Wie immer wird mit make kompiliert [real 0m36.171s(P133)] und mit make install installiert [real 0m1.667s(P133)]. (Der erste make-Durchgang ist abgebrochen, nach erneutem ./configure hat das dann aber geklappt.)

Zu der httpd.conf" muß folgendes hinzugefügt werden:

<Directory "%CGI-BIN%/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>

(%CGI-BIN% muß auch hier wieder ersetzt werden.) Die 'httpd.conf" ist bei debian unter /etc/apache zu finden. Danach muß der apache neu geladen werden apachectl restart.

In %CGI-BIN%/vqadmin/.htaccess kommt folgender Inhalt:

AuthType Basic
AuthUserFile /var/qmail/service/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any

Eigentlich muß nur der AuthUserFile Pfad geändert werden. Anschließend werden mit chmod 600 %CGI-BIN%/vqadmin/.htaccess entsprechende gesetzt.


Als nächsten Schritt wird das Adminpasswort für vQadmin eingerichtet, das unter /var/qmail/service/vqadmin.passwd zu finden ist. Der Befehl dafür lautet so: htpasswd -c /var/qmail/service/vqadmin.passwd admin.

Jetzt müssen noch die entsprechenden Rechte für die Passwortdatei gesetzt werden:

chown %WEBUSER:WEBGROUP% /var/qmail/service/vqadmin.passwd
chown %WEBUSER:WEBGROUP% %CGI-BIN%/vqadmin/.htaccess

Bei Debian ist sind WEBUSER und WEBGROUP www-data.

Anschließend muß vqadmin.scl eingerichtet werden. (Für genauere Information, bitte in der doku zu vqadmin nachlesen). Die Datei vqadmin.acl ist unter %CGI-BIN%/vqadmin/vqadmin.acl zu finden.

echo "default - ...">%CGI-BIN%/vqadmin/vqadmin.acl
echo "admin * admin">>%CGI-BIN%/vqadmin/vqadmin.acl

[bearbeiten] bincimap

  1. entpacken von bincimap-1.2.6final.tar.gz

Konfiguriert wird bincimap mit ./configure --prefix=/var/qmail/bincimap (auf --without-ssl habe ich verzichtet) [real 3m23.531s(P133)]. Danach wird mit make kompiliert [(P133)] und mit make install [real 0m24.194s(P133)] installiert. (Der erste make durchlauf brach ab. make clean und erneutes ./configure klappte. das dauerte lang: [real 66m40.107s(P133)].

Die Konfigurationsdatei bincimap.conf gibt es hier.

[bearbeiten] Antispam und Antivirus

Zuerst wird dafür ein extra Ordner erstellt und die Permissions gesetzt.

mkdir /var/qmail/scanmail
chown vpopmail:vchkpw /var/qmail/scanmail
chmod 0700 /var/qmail/scanmail

Anschließend wird scanmail.sh.gz entpackt und nach /var/qmail/bin/ kopiert. Die scanmail.sh ist für die Verbindung zum Clamav-Virenscanner zuständig. Auch hier müssen wieder die Zugriffsrechte gesetzt werden: chmod 755 /var/qmail/bin/scanmail.sh

Nun muß qmail-spamc.c.gz entpackt und kompiliert werden. Mit gcc -o /var/qmail/bin/qmail-spamc qmail-spamc.c [real 0m4.641s(P133)] landet das kompilierte Binary gleich am richtigen Platz.

Zum Schluß gibt es jetzt noch das procmailrc-file, das dafür sorgt, daß die gefilterten Mails in Unterordnern des Maildirs gelangen. Auch hier müssen wieder mit chown vpopmail:vchkpw /home/vpopmail/etc/procmailrc die Zugriffsrechte angepaßt werden.

[bearbeiten] Postinstall

[bearbeiten] qmailadmin

Man muß noch mit ~vpopmail/bin/vadddomain <domain> <passwort> ein Paßwort für den Login festlegen.

[bearbeiten] Starten und Stoppen

Rein theoretisch sollte man jetzt mit

/var/qmail/service/init.rc start

den Mailserver starten können und mit

/var/qmail/service/init.rc stop

wieder beenden können.

[bearbeiten] Misc

[bearbeiten] Doku in Deutsch vpopmail und qmail

http://www.treiber-forum.de/linux/berichte/qmail.php http://www.treiber-forum.de/linux/berichte/qmail/howto/17 http://www.treiber-forum.de/linux/berichte/qmail-smtp-auth-howto.pdf

[bearbeiten] qmail und mailman

http://www.cns.uni.edu/~thompson/devel/mailman-qmail/


[bearbeiten] life with qmail

http://www.lifewithqmail.org/

Persönliche Werkzeuge