Haftungsausschluss:
Dieses Dokument wird aktiv bearbeitet, es sollte noch nicht als offiziell angesehen werden.
|
netqmail/vpopmail Virtuelles Mail Hosting System Leitfaden
1.
Einleitung
Egal, ob Sie e-mail nur für Systemdienste, einen einzigen Server,
eine Domain oder für mehrere virtuelle Domains bereitstellen, netqmail
kann einfach nach Ihren Wünschen und Bedürfnissen aufgesetzt werden.
Dieser Leitfaden wird Ihnen dabei helfen, netqmail für alle diese Scenarien
einzurichten. Das Hauptaugenmerk liegt dabei die ganze Zeit über auf dem
Zugriff von außen und auf der Verwendung einer verschlüsselten Kommunikation.
Im Detail wird dieser Leitfaden Ihnen bei folgenden Paketen helfen:
netqmail, courier-imap, vpopmail und horde/imp. Zusätzlich zu diesen
zentralen Paketen werden folgende Pakete benötigt: daemontools, ucspi-tcp,
mysql, apache und mod_php. netqmail stellt dabei die zentralen MTA-Funktionen
zur Verfügung, während courier-imap für den Zugriff auf die e-mails
von außen zuständig ist. vpopmail liefert uns das Managment der virtuellen
Domains und horde/imp stellt den webmail Zugang bereit.
Bevor Sie jetzt irgend eines von diesen Programmen emergen, müssen Sie
folgende USE-Variablen gesetzt haben. Wenn Sie bereits eins dieser Pakete
installiert haben sollten, müssen Sie es eventuell erneut emergen.
USE="maildir ssl imap mysql". Falls Sie horde/imp für webmail benutzen
wollen, benötigen Sie zusätzlich USE="nls" beim Installieren von
mod_phps.
Notiz:
Dieser Leitfaden ist in Schritten organisiert. Wenn Sie meinen, Ihre
Installation sei an irgendeinem Punkt in diesem Tutorial komplett, so können
Sie jederzeit aufhören.
|
Der letzte Schritt ist das Festlegen auf netqmail als Mailsystem. Es gibt
eine ganze Reihe von Paketen, mit denen Sie ein email-System aufbauen
könnten. Nun ist es an der Zeit zu überprüfen und zu entscheiden, ob netqmail
das richtige für Sie ist. Wir haben einen anderen netten Leitfaden für Sie, der sich mit Postfix beschäftigt, außerdem könnten Sie
noch einen Blick auf exim werfen. Es
liegt an Ihnen, die beste Lösung für ihre Bedürfnisse zu finden, wir können
Ihnen an dieser Stelle nur beim Gebrauch von netqmail helfen.
2.
netqmail (Selbstgespräche)
Befehlsauflistung 2.1: netqmail emergen |
# emerge mail-mta/netqmail
|
Wichtig:
Dieser Leitfaden wurde auf der Grundlage von netqmail-1.05-r4 oder später
geschrieben. Wird es mit früheren Versionen funktionieren? Vielleicht. Sollten
Sie aktualisieren? Ja, wenn Sie sicherstellen wollen, dass dieser Leitfaden
funktioniert.
|
Warnung:
Wenn Sie bei der Installation eine Warnung wie the virtual/mta package
conflicts with another package erhalten, müssen Sie zunächst das Paket des
anderen MTA deinstallieren. Um herauszufinden, welches Paket das ist, führen
Sie einfach emerge netqmail -p aus.
|
Beim Emergen von netqmail werden automatisch ucspi-tcp und daemontools
mitinstalliert. Nähere Informationen dazu liefern die Seiten ucspi-tcp und daemontools. Grundsätzlich ist
daemontools für die Service-Verwaltung von netqmail verantworlich, während
ucspi-tcp die ankommenden TCP Verbindungen zu netqmail weiterleitet.
Nach der Installation mit emerge müssen einige Konfigurationseinstellungen
gemacht werden.
Befehlsauflistung 2.2: Out-of-the-box Einstellung für netqmail |
# nano /var/qmail/control/servercert.cnf
# emerge --config netqmail
|
Das Design von netqmail dreht sich total um den Gesichtspunkt der Sicherheit.
Dazu werden niemals emails an den Benutzer "root" geschickt. Sie müssen also
nun einen User in Ihrem System auswählen, der die emails, die normalerweise
für "root" bestimmt sind, empfangen soll. Von nun an wird dieser Benutzer in
diesem Leitfaden entsprechend meiner Konfiguration "vapier" genannt.
Befehlsauflistung 2.3: Aufsetzen des nicht-root Kontos für mail |
# cd /var/qmail/alias
# echo vapier > .qmail-root
# echo vapier > .qmail-postmaster
# echo vapier > .qmail-mailer-daemon
|
Nun wollen wir den Zustellungsservice von qmail zum Laufen bringen.
Befehlsauflistung 2.4: Starten des Zustellungsservice von netqmail |
# rc-update add svscan default
# /etc/init.d/svscan start
# cd /service
# ln -s /var/qmail/supervise/qmail-send qmail-send
|
Wir wollen sicherstellen, dass netqmail korrekt arbeitet, also testen wir es.
Befehlsauflistung 2.5: Testen des Zustellungsservice |
# ssh vapier@localhost
# maildirmake .maildir
# qmail-inject root << EOF
test root e-mail!
EOF
# qmail-inject postmaster << EOF
test postmaster e-mail!
EOF
# qmail-inject vapier << EOF
test vapier e-mail!
EOF
# mutt
|
Und das war es auch schon! Sie haben nun ein mail System, dass Ihre lokalen
emails für Sie und für die Systemdienste bzw. -benutzer, die es gebrauchen
wollen, verteilen wird.
Warnung:
Wenn Sie keine mail erhalten sollten oder seltsame Fehler in den
Protokolldateien bemerken (bitte /var/log/qmail/ überprüfen), die
unter anderem etwas wie 'localhost.localhost' enthalten, dann bedeutet das,
dass Ihre Domain bzw. DNS Information nicht korrekt eingerichtet ist.
Standardmäßig benutzt netqmail die Ausgabe von hostname --fqdn. Wenn
dieser Befehl bei Ihnen "localhost" ausgibt, dann überprüfen Sie bitte Ihre
/etc/conf.d/hostname, /etc/hosts und Ihren DNS um
sicherzustellen, dass alles korrekt ist. Wenn Sie das haben, editieren Sie die
Konfigurationsdateien in /var/qmail/control/. Benutzen Sie die
folgenden Beispiele wenn Sie Hilfe dabei benötigen.
|
Befehlsauflistung 2.6: Beispiel /var/qmail/control/ Dateien für eine 2nd level Domain |
# hostname --fqdn
wh0rd.org
# cat me
wh0rd.org
# cat defaultdomain
wh0rd.org
# cat plusdomain
wh0rd.org
# cat locals
wh0rd.org
# cat rcpthosts
wh0rd.org
|
Befehlsauflistung 2.7: Beipiel /var/qmail/control/ Dateien für eine 3rd level Domain |
# hostname --fqdn
mail.wh0rd.org
# cat me
mail.wh0rd.org
# cat defaultdomain
wh0rd.org
# cat plusdomain
wh0rd.org
# cat locals
mail.wh0rd.org
# cat rcpthosts
mail.wh0rd.org
|
3.
vpopmail
Befehlsauflistung 3.1: Emerge vpopmail |
# emerge vpopmail
|
Wichtig:
Dieser Leitfaden wurde auf der Basis von vpopmail-5.4.6 oder später
geschrieben. Wird er mit früheren Version funktionieren? Vielleicht. Sollten
Sie aktualisieren? Ja, wenn Sie sichergehen wollen, dass dieser Leitfaden
funktioniert.
|
vpopmail braucht ein bißchen mehr Zuwendung beim Einrichten als das vorherige
Paket. Weil vpopmail auf MySQL aufbaut, müssen wir sichergehen, dass dieses
zunächst korrekt läuft. Danach können wir die Datenbank für vpopmail einrichten
und fortfahren. Bevor Sie diesen Schritt ausführen, sollten Sie überprüfen, ob
Sie MySQL schon installiert und korrekt eingerichtet haben. Bitte beachten Sie,
dass das Passwort, welches ich für die vpopmail Datenbank benutze, "vpoppw"
ist, Sie können aber auch ein anderes wählen.
Befehlsauflistung 3.2: Einrichten von vpopmail in MySQL |
# rc-update add mysql default
# /etc/init.d/mysql start
# nano /etc/vpopmail.conf
# mysql -p << EOF
create database vpopmail;
use mysql;
grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'vpoppw';
flush privileges;
EOF
# chown root:vpopmail /etc/vpopmail.conf
# chmod 640 /etc/vpopmail.conf
# chown root:vpopmail /var/vpopmail/bin/vchkpw
# chmod 4711 /var/vpopmail/bin/vchkpw
|
Warnung:
Wenn Sie auf Rechteprobleme mit MySQL/vpopmail stoßen, versuchen Sie, MySQL
neu zu starten. Einfach /etc/init.d/mysql restart ausführen.
|
An diesem Punkt ist vpopmail fertig zum Einsatz. Wir werden in diesem
Leitfaden beispielhaft zeigen, wie man virtuelles Hosting für die Domain
"wh0rd.org" bereitstellt. Das bedeutet, dass wir vpopmail über die Domain, die
es für uns übernehmen soll, informieren müssen. Wir werden außerdem, wo wir
schonmal hier sind, ein Benutzerkonto für "vapier" anlegen.
Befehlsauflistung 3.3: Einrichten einer Domain |
# source /etc/profile
# mysql -u vpopmail -p
mysql> select * from vpopmail.vlog;
# vadddomain wh0rd.org postpass
# printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0
uid=89(vpopmail) gid=89(vpopmail) groups=0(root)
# vadduser vapier@wh0rd.org vappw
|
Jede Domain, die über vpopmail eingerichtet wird, besitzt automatisch ein
"postmaster"-Konto. In diesem Beispiel haben wir vpopmail als Passwort für
diesen Account "postpass" übergeben. Bevor uns vpopmail nun wirklich
nützen kann, müssen wir in der Lage sein, mail über courier zu empfangen und
über netqmail und SMTP verschicken zu können.
4.
Courier POP/IMAP
Befehlsauflistung 4.1: Emerge courier-imap |
# emerge net-mail/courier-imap
|
Wichtig:
Sie müssen courier-imap nach vpopmail installieren. Dadurch wird auch das
authvchkpw-Modul erstellt werden.
|
Wichtig:
Dieser Leitfaden wurde auf der Basis von net-mail/courier-imap-3.0.7 oder
später geschrieben. Wird er mit früheren Version funktionieren? Vielleicht.
Sollten Sie aktualisieren? Ja, wenn Sie sichergehen wollen, dass dieser
Leitfaden funktioniert.
|
Nun zu den normalen Konfigurationsschritten nach der Installation. Diese
Schritte müssen Sie nur ausführen, wenn Sie eine SSL-verschlüsselte
Kommunikation wünschen (was Sie tun sollten!). Andernfalls können Sie die
letzten beiden Schritte in der nachfolgenden Code-Auflistung überspringen, und
dabei beide Male das "-ssl" vom init skript-Namen entfernen.
Befehlsauflistung 4.2: Out-of-the-box Einstellung für POP3/SSL |
# nano /etc/courier/authlib/authdaemonrc
# cd /etc/courier-imap
# nano pop3d.cnf
# mkpop3dcert
# rc-update add courier-pop3d-ssl default
# /etc/init.d/courier-pop3d-ssl start
|
Befehlsauflistung 4.3: Out-of-the-box Einstellung für IMAP/SSL |
# cd /etc/courier-imap
# nano imapd.cnf
# mkimapdcert
# rc-update add courier-imapd-ssl default
# /etc/init.d/courier-imapd-ssl start
|
Ihr mail Programm sollte sich nun an dem Server anmelden und e-mails für den
virtuellen Host abholen können. In meinem Fall ist es nun möglich, sich mit
"vapier@wh0rd.org" und dem Passwort "vappw" anzumelden.
5.
netqmail (Gespräche weltweit)
Nun ist SMTP an der Reihe, wobei wir hierbei darauf achten wollen, nicht noch
einen Spam-Server zum Missbrauch bereitzustellen.
Befehlsauflistung 5.1: Starten des netqmail SMTP Dienstes |
# cd /var/qmail/control/
# nano conf-smtpd
# nano servercert.cnf
# mkservercert
# cd /service
# ln -s /var/qmail/supervise/qmail-smtpd qmail-smtpd
# /etc/init.d/svscan restart
|
Vorausgesetzt Sie haben noch nicht die netqmail-Konfigurationsdateien angepasst,
wird netqmail an diesem Punk mail für die virtuelle Domain wh0rd.org und für die
Benutzer auf dem lokalen System entgegennehmen. Weiterhin wird netqmail jede
mail weiterleiten, die von 127.0.0.1 (also localhost) gesendet wurde, und
außerdem für jeden, der sich via vpopmail einloggen kann. Wenn Sie Ihr mail
Programm zum mail versenden einrichten, achten Sie bitte darauf, dass Sie die
Option "Server verlangt Autorisation" aktivieren. In meinem Fall heißt der
Benutzer des mail-Kontos dann "vapier@wh0rd.org", das Passwort ist "vappw".
Das letzte Tüpfelchen auf dem i ist dann nur noch, Ihrem Programm zu sagen,
dass es die SMTP Verbindung mittels SSL/TLS verschlüsseln soll. Wenn die
Verbindung nicht verschlüsselt ist, die Verschlüsselung für netqmail jedoch
aktiviert wurde (s.o.), so werden Sie sich nicht einloggen können.
6.
Horde / IMP Webmail Oberfläche
Obwohl es einige Webmail-Oberflächen im Internet gibt (und es steht Ihnen
frei, welche Sie benutzen), bevorzuge ich die IMP Webmail Oberfläche, einen Teil des
Horde Framework. Der wichtigste Grund dafür ist, dass Horde einerseits einfach
nur Webmail-Zugriff bereitstellen kann, andererseits aber auch um Funktionen
wie z.B. Adressbücher, Kalender, Aufgaben, etc erweitert werden kann. Wenn Sie
das nicht überzeugen sollte, dann sollten Sie sich Horde vielleicht selbst einmal anschauen.
Jetzt kommt der interessante Teil! Wir installieren IMP.
Befehlsauflistung 6.1: Emerge IMP |
# emerge horde-imp
|
Jetzt kommt IMP, sehr kurz.
Befehlsauflistung 6.2: Out-of-the-box Einrichtung für IMP |
# cd /var/www/localhost/htdocs/horde/imp/config/
# nano servers.php
$servers['imap'] = array(
'name' => 'wh0rd.org',
'server' => 'localhost',
'protocol' => 'imap/ssl/novalidate-cert',
'port' => 993,
'folders' => '',
'namespace' => 'INBOX.',
'maildomain' => 'wh0rd.org',
'smtphost' => 'localhost',
'realm' => '',
'preferred' => ''
);
|
Zuletzt starten wir Apache, um Webmail benutzen zu können.
Befehlsauflistung 6.3: Running apache |
# nano /etc/conf.d/apache2
# rc-update add apache2 default
# /etc/init.d/apache2 start
|
Warnung:
Sie sollten sich wirklich überlegen, die Verwendung von https für die Horde
Benutzer verbindlich zu machen. Das ist zwar nicht einfach zu bewerkstelligen,
aber ein wichtiger Sicherheitsaspekt.
|
Um die neue IMP Einrichtung zu testen, starten Sie einen Webbrowser und gehen
Sie auf http://localhost/horde/ (ersetzen Sie localhost durch den
Server, den Sie gerade einrichten). Sie sollten nun die Horde
Willkommen-Seite sehen, wo Sie sich einloggen können. Noch einmal, in meiner
Einrichtung logge ich mich mit "vapier@wh0rd.org" und "vappw" als Benutzer
und Passwort ein.
An diesem Punkt sind Horde und IMP fertig eingerichtet. Sie sollten jedoch
noch einmal durch die Konfigurationsverzeichnisse gehen und alles so
einrichten, wie Sie es gebrauchen können.
7.
Zusätzliche Pakete
qmailadmin
Das erste Paket, das ich Ihnen ans Herz lege, ist qmailadmin. Es ist eine
Internet-basierte Schnittstelle zum Verwalten von virtuellen Domains. Einfach
emerge net-mail/qmailadmin eingeben und dann mit Ihrem Webbrowser
http://localhost/cgi-bin/qmailadmin ansurfen, um loszulegen. Das
macht das Leben um einiges leichter.
qmHandle
Wenn Sie Probleme mit der Queue von netqmail oder der Behebung von Fehlern in
dieser haben, können Sie vielleicht folgendes Programm gebrauchen: qmHandle. Es ist ein simples
Perl-Skript, welches Ihnen erlaubt, die Queue zu betrachten und zu verwalten.
Wieder ist alles, was Sie dafür tun müssen ein emerge net-mail/qmhandle.
Horde Erweiterungen
Ich würde es Ihnen empfehlen, sich einmal die vielen anderen Horde
Erweiterungen unter Turba,
Kronolith, und Nag anzuschauen, die das IMP Paket
komplettieren. Die Konfiguration dieser Pakete ist der von IMP sehr ähnlich,
Sie sollten also keine Probleme mit der Einrichtung haben. Denken Sie aber
daran, die registry.php im Horde Konfigurationsverzeichnis zu editieren, so
dass die neue Erweiterung auch auf der Horde Webseite angezeigt wird.
ucspi-tcp
netqmail benutzt ucspi-tcp für die Handhabung der ankommenden Verbindungen
zu netqmail. Wenn Sie die Filterregeln dafür ändern wollen, dann schauen Sie
sich bitte die Konfigurationsdateien unter /etc/tcprules.d/ an
(ältere Versionen von netqmail legen die Dateien in /etc). Dort finden Sie zwei
Dateien für jeden Service, die Kofigurationsdatei (z.B. tcp.qmail-smtp) und die
kompilierte Form dieser, die ucspi-tcp nutzt (z.B. tcp.qmail-smtp.cdb). Wenn Sie
die Konfigurationsdatei ändern, müssen Sie die Binärversion der Datei erneut
erzeugen. Dazu führen Sie einfach
tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp aus.
Jedes Mal, wenn eine Verbindung zu netqmail zustande kommt, wird die kompilierte
Datei gelesen, es ist deshalb nicht nötig, den Service neu zu starten.
qmail-scanner
Wenn Sie den Inhalt der e-mails auf Ihrem Server nach Spam oder Viren filtern
wollen, dann müssen Sie ein anderes Programm zur Verwaltung der Queue
verwenden. Gut geeignet dafür ist qmail-scanner. Einfach
emerge qmail-scanner eingeben und die Datei
/etc/tcprules.d/tcp.qmail-smtp anpassen.
Wichtig:
Die Installation von qmail-scanner ist recht hässlich. Um bestimmte Pakete
zu unterstützen müssen sich diese bereits auf dem System befinden. Das
bedeutet, dass Sie SpamAssassin und/oder Clam AntiVirus installieren müssen,
bevor Sie qmail-scanner installieren. Die nächsten Sektionen liefern jeweils
die benötigten Informationen.
|
Befehlsauflistung 7.1: Wechseln des Queue-Programm |
# cd /etc/tcprules.d/
# nano tcp.qmail-smtp
# tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp
|
Die folgenden Sektionen bieten einen Überblick über die Einrichtung von Spam-
und Virus-Filterung. Sie können eigene Optionen setzen, indem Sie
/var/qmail/bin/qmail-scanner-queue.pl editieren.
SpamAssassin
Einer der besten Open Source Spam Filter Programme, die es gibt, ist
SpamAssassin. Zum Installieren
geben Sie einfach emerge mail-filter/spamassassin ein. Das Paket kommt
in zwei Ausführungen, einer Kommandozeilenversion und einer Client/Server
Version. Die Kommandozeilenversion ist für Server gedacht, die nur kleinere
Mengen an mail verwalten, alle anderen sollten die Client/Server Version
benutzen, besonders wenn die Anzahl der mails sehr groß ist.
Befehlsauflistung 7.2: Out-of-the-box Einrichtung für SpamAssassin |
# nano /etc/mail/spamassassin/local.cf
required_hits 6
skip_rbl_checks 1
# rc-update add spamd default
# /etc/init.d/spamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
|
Wichtig:
Wenn Sie SpamAssassin nicht auf Ihrem System installiert hatten, bevor Sie
qmail-scanner installierten, müssen Sie nun qmail-scanner erneut installieren.
Wie schon erwähnt ist dessen Installationsroutine ziemlich hässlich, sodass
sie nur Erweiterungen hinzufügt, die sie im System findet.
|
An diesem Punkt sollten ankommende mails durch qmail-scanner laufen, was
wiederum SpamAssassin darüber laufen lässt.
Clam AntiVirus
Wie SpamAssassin kommt auch Clam AntiVirus in zwei Versionen. Ich
werde Ihnen nun einen kurzen Überblick zur schnellen Einrichtung der
Client/Server Version geben. Zunächst führen Sie einfach emerge
app-antivirus/clamav aus.
Befehlsauflistung 7.3: Out-of-the-box Einrichtung für Clam AntiVirus |
# nano /etc/conf.d/clamd
# nano /etc/clamav.conf
# rc-update add clamd default
# /etc/init.d/clamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
# nano /var/qmail/control/conf-common
|
Wichtig:
Wenn Sie Clam AntiVirus nicht auf Ihrem System installiert hatten, bevor Sie
qmail-scanner installierten, müssen Sie nun qmail-scanner erneut installieren.
Wie schon erwähnt ist dessen Installationsroutine ziemlich hässlich, sodass
sie nur Erweiterungen hinzufügt, die sie im System findet.
|
An diesem Punkt sollten ankommende mails durch qmail-scanner laufen, was
wiederum Clam AntiVirus darüber laufen lässt.
8.
Letzte Anmerkungen
Ich habe keine letzten Anmerkungen bis auf diese, wenn Sie Probleme mit
diesem Leitfaden haben, setzen Sie sich bitte mit mir (Englisch!) in Verbindung oder melden Sie
den Bug mit Hilfe der Gentoos Bugtracking
Webseite. Wenn Sie interessante Anmerkungen zu diesem Leitfaden haben,
von denen Sie meinen, sie müssten unbedingt enthalten sein, senden Sie diese
unter allen Umständen zu mir. Ich liebe netqmail und würde gerne Dinge
hinzufügen, die das Erlebnis der Benutzer mit diesem MTA noch verbessern.
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|
|
Seite aktualisiert 14. November 2010 |
Zusammenfassung:
Dieser Leitfaden zeigt im Detail, wie Sie ein Mail Hosting System auf der
Grundlage von netqmail, vpopmail, courier-imap, MySQL, und Horde / IMP Webmail
Client aufbauen.
|
Mike Frysinger
Autor
Joshua Saddler
Bearbeiter
Ruben Willmes
Übersetzer
Jan Hendrik Grahl
Korrektor
|
|
Donate to support our development efforts.
|
|
|