QMail Installation
Aus Debian-Linux - FAQ
| 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
- entpacken von qmail-1.03.tar.gz
- entpacken von qmail-toaster-0.6-1.patch.bz2
- patch < qmail-toaster-0.6-1.patch
- patch < qmail-bounce.patch
- Anpassen des Pfades zu openssl in conf-cc. Bei debian ist das /usr/include/openssl.
- Ä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:
- entpacken von ucspi-tcp-0.88.tar.gz
- entpacken von ucspi-tcp-0.88-ssl-pidfile-errno.patch.gz
- 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
- 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
- entpacken von ezmlm-idx-0.40.tar.gz und ezmlm-0.53.tar.gz
- Verschieben aller Dateinen aus ezmlm-idx-0.40 nach ezmlm-0.53: mv -f ezmlm-idx-0.40/* ezmlm-0.53/
- 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 ;)
- 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 ;)
- entpacken von qmailadmin-1.2.0.tar.gz
- 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
- 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
- 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
Kategorien: ToDo | Linux | Tutorials

