OpenBSD 5.6, qmail und vpopmail als Mailserver


Für OpenBSD 5.6 (i386)

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



0 Vorwort

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 bereits seit Jahren (mehr als 8 Jahre) in Betrieb und schnurrt brav vor sich hin 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.

1 Betriebssystem

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 langjä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.
Doch das Betriebssystem ist, wie auch die Installation, Geschmacksache

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.

Kleiner Hinweis: OpenBSD vergibt mittlerweile auch andere Namen für die Devices. Das kann also auch so aussehen:
bee7cafc0b4bcf42.e  /var ffs rw,nodev,nosuid 1 2
Aber auch in diesem Fall muss das nosuid-flag entfernt werden.

2 Mailserver Vorbereitung

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:

sh prepare.sh



3 Qmail kompilieren und installieren


Bevor wir das qmail Paket installieren, brauchen wir noch nroff, welches sich im Softwarepaket "groff" befindet. Installiert man es nicht, hat man einen Fehler beim "make man" im nächsten Schritt. Installiert wird das so:
pkg_add groff

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


Hier wird auch der Startbefehl für den daemon nach /etc/rc.local kopiert.
Die grundlegenden Pakete sind nun installiert.
Damit die daemontools korrekt arbeiten, empfiehlt daemontools, den Server neu zu starten. Also sollten Sie Folgendes tun:

reboot


Nach einem Neustart sollten Sie einen "svcscan" Prozess in der Prozessliste sehen.


4 Vpopmail

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 und sie können beim Abschluss der Installation weitermachen.

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 \ --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!!).



5 Installation abschließen

Abschließend müssen noch einige Rechte gesetzt und einige Skripte an die korrekten Orte kopiert werden. Starten Sie das folgende Skript:
cd /qmail
sh finish.sh


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


Standard Mailsever unter OpenBSD deaktivieren


OpenBSD hat mit dem OpenSMTPD auch einen eigenen SMTP Server, den wir aber jetzt deaktivieren wollen.
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
chmod 0 /usr/sbin/sendmail.old
echo "smtpd_flags=NO" >> /etc/rc.conf.local 
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
reboot


Nun haben wir ein anderes Programm mit dem Namen sendmail an die Stelle gelinkt, wo einst das Original lag. Das ist aus Kompatibilitätsgründen nötig, denn alles mögliche an Software benutzt unter Unixen (und die, die so tun) das Programm "sendmail".

Nun können Sie qmail wieder starten:
qmailctl start


Führen Sie am Ende noch das folgende Skript aus, um die Installation zu testen:

sh /qmail/check_installation.sh



6 Grundlegende Benutzung

Im Anschluss der Grundinstallation noch einige kurze Hinweise zur rudimentären Benutzung des Systems.

6.1 qmail

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.


6.2 qmail logfiles

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:
/var/log/qmail




6.3 Vpopmail

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


FRESHMAIL Copyright 2009-2012