OpenBSD, qmail und vpopmail als Mailserver
0 Vorwort
1 Betriebssystem
2 Mailserver Vorbereitung
3 qmail kompilieren und installieren
4 vpopmail
5 Installation abschließen
6 Grundlegende Benutzung
6.1 qmail
6.2 qmail logfiles
6.3 Vpopmail
Der hier vorgestellte Text ist stark durch die Texte auf
www.qmailrocks.org geprägt.
Da mein Zielsystem zumeist
OpenBSD war,
musste ich den dortigen Text zu FreeBSD anpassen.
Daraus entstanden im Laufe der Zeit auf OpenBSD angepasste Texte und Skripte
für Mitarbeiter und Kunden.
Das hier vorgestellte Setup wurde von mir und meiner Firma
schon über ein Dutzend mal installiert. Teils mit vpopmail, teils
ohne, für interne Belange, als Internet-Mailserver oder für Mailinglisten.
Die erste Installation ist ca 5 Jahre alt und wurde bei einem kleinen
Provider installiert. Das System ist noch immer in Betrieb und hatte bis
heute weder einen Fehler aufzuweisen, noch ging in der Zeit nur eine einzige E-Mail
eines Kunden verloren. Nach 2 Jahren wurde das System um
qpsmtpd
erweitert, um E-Mail Spam effizient zu filtern.
Das folgende Mailsystem bietet:
- Stabilität und Sicherheit (OpenBSD+qmail)
- POP3
- SMTP
- SMTP Authentifizierung
- Multidomain fähig / virtuelle Domains (Vpopmail)
Das System kann leicht durch den
Dovecot IMAP Server
erweitert werden.
In diesem Fallbeispiel verwende ich
OpenBSD als Serverbetriebssystem
und das u.A. aus folgenden Gründen:
- einfache Handhabung des Systems
- Releasewechsel sind einfach und sehr schnell durchzuführen.
- Kernel- und Userlandpatches sind schnell und unkompliziert durchzuführen.
- Sicherheit!
- erstklassige Dokumentation und manpages
- Stabilität
Nach meiner mittlerweile 7 jährigen Erfahrung mit OpenBSD als Mail,
Web, DNS Server und Router/Firewall hat es sich stets als optimal
herausgestellt. Im privaten Bereich, innherhalb der Firma und auch bei Kunden.
Die Installation ist Geschmacksache und wird
hier ausführlich
beschrieben.
Nach erfolgreicher Installation muss in
/etc/fstab eine Änderung
vorgenommen werden. Wenn Sie eine
/var Partition angelegt haben,
müssen Sie für diese die
nosuid Einstellung ändern, in dem Sie
das
nosuid-flag entfernen.
Beispielsweise von:
/dev/sd0e /var ffs rw,nodev,nosuid 1 2
|
in
/dev/sd0e /var ffs rw,nodev 1 2
|
Wenn Sie sich dann häuslich eingerichtet und das System
auf Ihre Ansprüche hin konfiguriert haben, können Sie mit dem
nächsten Punkt fortfahren.
Zunächst müssen die Quellen und Installationsskripte heruntergeladen
werden.
Ein fertiges Paket gibt es
hier. In dem Paket
befindet sich alle Software, die nötig ist, um den Mailserver zu
installieren, sowie einige Skripte, die die Arbeit automatisch erledigen.
Folgen Sie einfach der Anleitung.
Quellen holen und auspacken
Legen Sie ein Verzeichnis an, in welchem die notwendigen
Programme und Skripte gespeichert werden. Von dort aus wird
das Mailserver System installiert:
mkdir /qmail
cd /qmail
ftp http://www.freshmail.de/mailgate/package.tgz
tar xvzf package.tgz
|
System vorbereiten
Das Skript
prepare.sh nimmt einige grundlegende
Konfigurationen vor:
- Verzeichnisse anlegen
- User anlegen
- Quellcode entpacken und verschieben
- Quellcode patchen
Sie können das Skript auch
hier einsehen.
Führen Sie folgendes Skript aus:
Als erstes wird qmail selbst gebaut. Machen Sie Folgendes:
cd /usr/source/qmail/qmail-1.03
make man
make setup check
./config-fast IHR_DOMAIN_NAME
|
Fügen Sie bei
IHR_DOMAIN_NAME Ihren default Domainnamen ein, oder
wenn Sie nur eine Domain haben, diesen Domainnamen.
ucspi-tcp kompilieren und installieren
ucspi-tcp ist ein Programm ähnlich dem Unix (x)inetd.
Es fungiert hier als tcpserver und reicht Anfragen an den Mailserver
an das entsprechende Programm weiter.
Für die Installation führen Sie Folgendes aus:
cd /usr/source/qmail/ucspi-tcp-0.88/
make
make setup check
|
daemontools kompilieren und installieren
Daemontools arbeiten als eine Art Servicewächter: Sie beobachten
als Service eingetragene Prozesse und falls ein solcher Prozess
aufhört zu existieren, wird er automatisch neu gestartet.
Zum Installieren:
cd /usr/source/qmail/admin/daemontools-0.76
sh package/install
|
Die grundlegenden Pakete sind nun installiert.
Damit die daemontools korrekt arbeiten, empfiehlt daemontools, den
Server neu zu starten. Also sollten Sie Folgendes tun:
Nach einem Neustart sollten Sie einen "svcscan" Prozess in der
Prozessliste sehen.
Vpopmail ermöglicht die Verwaltung virtueller Domains. Das ist eine
wunderbare Sache, wenn man vorhat, mehrere Domains auf einem Mailserver
zu verwalten. Darüber hinaus bietet Vpopmail eine ganze Reihe
kleiner Programme, die das Usermanagment sehr angenehm gestalten.
Ich empfehle Vpopmail jedem, der einigermaßen komfortabel seine E-Mail
Nutzer managen möchte.
Vpopmail installieren
Vpopmail bietet viele weitere Konfigurationsmöglichkeiten an. Diese kann
man sich mit
./configure --help anzeigen lassen. Die meisten
Optionen betreffen allerdings eine Konfiguration mit MySQL als Backend.
Vpopmail ohne MySQL
cd /qmail/source
tar zxvf vpopmail-5.4.27.tgz
cd vpopmail-5.4.27
./configure --enable-logging=p
make && make install-strip
|
Wenn Sie kein MySQL wollen, ist vpopmail nun einsatzbereit.
Vpopmail mit MySQL
Legen Sie ein /etc Verzeichnis im Heimatverzeichnis von vpopmail an,
setzen Sie entsprechende Rechte.
mkdir ~vpopmail/etc
chown vpopmail:vchkpw ~vpopmail/etc
|
Legen Sie eine Konfigurationsdatei für den Zugriff auf MySQL an und setzen
Sie anschließend die Rechte:
echo "localhost|0|vpopmailuser|password|vpopmail" > ~vpopmail/etc/vpopmail.mysql
chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql
|
Loggen Sie sich nun als Administrator in ihre MySQL Datenbank ein:
CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.* TO
vpopmailuser@localhost IDENTIFIED BY 'password';
|
Nun kann vpopmail gebaut werden:
cd /qmail/source
tar zxvf vpopmail-5.4.27.tgz
cd vpopmail-5.4.27
./configure --enable-logging=p --enable-auth-module=mysql
--disable-passwd --enable-clear-passwd --disable-many-domains
--enable-auth-logging --enable-sql-logging --enable-valias
--disable-mysql-limits
make && make install-strip
|
Wenn keine Fehlermeldungen angezeigt werden, ist Vpopmail installiert.
Die Logging Option loggt bei fehlerhafter Anmeldung das Passwort mit.
Dies ist eine ungeheure Erleichterung der Arbeit mit E-Mail Benutzern
(Ich habe mein Passwort 100% richtig eingegeben!!).
Abschließend müssen noch einige Rechte gesetzt und einige Skripte
an die korrekten Orte kopiert werden. Starten Sie das folgende Skript:
Jetzt kommt noch etwas Handarbeit.
Öffnen Sie folgende Dateien und suchen Sie nach
mail.example.com.
Ersetzen Sie es durch Ihren Domainnamen.
/var/qmail/supervise/qmail-pop3d/run
/var/qmail/supervise/qmail-smtpd/run
|
Danach wird qmail gestoppt und das selektive Relayen aktiviert:
qmailctl stop
echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
qmailctl cdb
|
Starten Sie danach das scipt
default_user.sh und
geben Sie die gewünschte E-Mail Adresse ein (Ich empfehle hier
einfach den user
admin@ihre-default-domain, den Sie natürlich
noch anlegen müssen).
cd /qmail
sh default_user.sh
|
Sendmail deaktivieren
Sendmail ist unter OpenBSD der Standard MTA und muss deaktiviert werden.
Zuvor muss sendmail jedoch beendet werden:
pkill -9 sendmail
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
chmod 0 /usr/sbin/sendmail.old
echo sendmail=NO >> /etc/rc.conf.local
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
|
Nun haben wir ein anderes Programm mit dem Namen
sendmail
an die Stelle kopiert, wo einst das Original lag. Das ist aus
Kompatibilitätsgründen nötig.
Entfernen Sie auch den sendmail Job aus der root Crontab. Dort wird
sendmail standadmässig alle 30 Minuten aufgerufen um ggf. in der
Queue befindliche Mails abzuarbeiten.Der dortige Aufruf beinhaltet
einige Parameter, die das qmail sendmail Programm nicht bietet.
Nun können Sie qmail wieder starten:
Führen Sie am Ende noch das folgende Skript aus, um die
Installation zu testen:
sh /qmail/check_installation.sh
|
Im Anschluss der Grundinstallation noch einige kurze Hinweise zur
rudimentären Benutzung des Systems.
Qmail "lebt" hauptsächlich in
/var/qmail
Im Unterverzeichnis
control sind die Konfigurationsdateien
für qmail hinterlegt.
Es kann nicht schaden, nach einer Änderung
an einer der Dateien qmail neu zu starten:
qmailctl stop
qmailctl start
|
Die Programme liegen in
/var/qmail/bin. Zu jedem der Programme
existieren Manpages, die mitinstalliert sind.
Qmail loggt bekanntlich nicht wirklich viel, besonders nicht der
qmail-smtpd, was eine Menge Leute als störend empfinden.
qmail-send hingegen bietet ein Logfile, was ausreichende Informationen
enthält, besonders wenn es um Recherche nach vermeintlich fehlenden
E-Mails geht.
Qmail Logfiles finden Sie unter:
Mit Vpopmail managen Sie die virtuellen Domains und deren User:
- Die Programme zu Vpopmail liegen unter /usr/home/vpopmail/bin
- Die Domains liegen in /usr/home/vpopmail/domains
Schauen Sie sich in
/usr/home/vpopmail/bin um: Die Programmnamen
sind selbsterklärend.
Eine Domain anlegen:
cd /usr/home/vpopmail/bin
./vadddomain meine-domain.de MEIN_PASSWORT
|
Beim Anlegen einer Domain wird der Benutzer
postmaster
automatisch mit erstellt. Das
angegebene Passwort ist das Passwort des Benutzers
postmaster.
Es kann keine Domain ohne den Benutzer
postmaster existieren!
Einen Benutzer anlegen:
cd /usr/home/vpopmail/bin
./vadduser NeürBenutzer@meine-domain.de MEIN_PASSWORT
|
Zurück zur
Startseite
Oder zu unserem
Online Spamfilter