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



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 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.

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 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.


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


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:

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.

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



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


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:
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