E-Mail-Server · 4 min read · Jan 06, 2026

Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Mandriva 2008.1)

Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Mandriva 2008.1)

Version 1.0
Autor: Falko Timme

Dieses Tutorial ist Copyright (c) 2008 von Falko Timme. Es ist abgeleitet von einem Tutorial von Christoph Haas, das Sie unter http://workaround.org finden können. Sie dürfen dieses Tutorial unter der Creative Commons Lizenz 2.5 oder einer späteren Version verwenden.

Dieses Dokument beschreibt, wie man einen Postfix-Mailserver installiert, der auf virtuellen Benutzern und Domains basiert, d.h. Benutzern und Domains, die sich in einer MySQL-Datenbank befinden. Ich werde auch die Installation und Konfiguration von Courier (Courier-POP3, Courier-IMAP) demonstrieren, sodass Courier gegen dieselbe MySQL-Datenbank authentifizieren kann, die Postfix verwendet.

Der resultierende Postfix-Server ist in der Lage, SMTP-AUTH und TLS sowie Quota zu unterstützen (Quota ist standardmäßig nicht in Postfix integriert, ich werde zeigen, wie man Postfix entsprechend patcht). Passwörter werden in verschlüsselter Form in der Datenbank gespeichert (die meisten Dokumente, die ich gefunden habe, behandelten Klartext-Passwörter, was ein Sicherheitsrisiko darstellt). Zusätzlich behandelt dieses Tutorial die Installation von Amavisd, SpamAssassin und ClamAV, sodass E-Mails auf Spam und Viren gescannt werden. Ich werde auch zeigen, wie man SquirrelMail als Webmail-Oberfläche installiert, damit Benutzer E-Mails lesen und senden sowie ihre Passwörter ändern können.

Der Vorteil eines solchen “virtuellen” Setups (virtuelle Benutzer und Domains in einer MySQL-Datenbank) ist, dass es viel leistungsfähiger ist als ein Setup, das auf “echten” Systembenutzern basiert. Mit diesem virtuellen Setup kann Ihr Mailserver Tausende von Domains und Benutzern verwalten. Außerdem ist es einfacher zu verwalten, da Sie nur mit der MySQL-Datenbank umgehen müssen, wenn Sie neue Benutzer/Domains hinzufügen oder bestehende bearbeiten. Keine weiteren postmap-Befehle zur Erstellung von DB-Dateien, kein erneutes Laden von Postfix usw. Für die Verwaltung der MySQL-Datenbank können Sie webbasierte Tools wie phpMyAdmin verwenden, das ebenfalls in diesem Howto installiert wird. Der dritte Vorteil ist, dass Benutzer eine E-Mail-Adresse als Benutzernamen haben (anstatt eines Benutzernamens + einer E-Mail-Adresse), was einfacher zu verstehen und sich zu merken ist.

Dieses Tutorial basiert auf Mandriva 2008.1 (i386). Sie sollten bereits ein grundlegendes Mandriva-System eingerichtet haben, wie in den Kapiteln 1 bis 7 dieses Tutorials beschrieben: https://www.howtoforge.com/perfect-server-mandriva-2008.1. Bitte lassen Sie Kapitel 6.3 Erstellen eines Auto-Update-Skripts aus, da ein Postfix-Update unser maßgeschneidertes Postfix ersetzen wird, das wir in Kapitel 3 erstellen!

Dieses Howto ist als praktische Anleitung gedacht; es behandelt nicht die theoretischen Hintergründe. Diese werden in vielen anderen Dokumenten im Web behandelt.

Dieses Dokument kommt ohne jegliche Gewährleistung! Ich möchte sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!

Vorläufige Anmerkung

Das System sollte eine statische IP-Adresse haben. Ich verwende 192.168.0.100 als meine IP-Adresse in diesem Tutorial und server1.example.com als den Hostnamen.

1 Apache, MySQL, phpMyAdmin installieren

Dies kann alles mit einem einzigen Befehl installiert werden:

urpmi MySQL MySQL-client libmysql15-devel phpmyadmin db4-devel html2text libsasl-devel openssl-devel openldap-devel pcre-devel postgresql-devel rpm-build

2 Courier und Saslauthd installieren

Um Courier und saslauthd zu installieren, führen wir einfach aus:

urpmi courier-authlib courier-authlib-mysql courier-imap courier-pop cyrus-sasl libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login

3 Quota-Patch auf Postfix anwenden

Wir müssen das Postfix-Quell-RPM herunterladen, es mit dem Quota-Patch patchen, ein neues Postfix-RPM-Paket erstellen und installieren.

cd /usr/src  
mkdir rpm  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2008.1/SRPMS/main/release/postfix-2.5.1-2mdv2008.1.src.rpm  
rpm -ivh postfix-2.5.1-2mdv2008.1.src.rpm

Der letzte Befehl zeigt einige Warnungen an, die Sie ignorieren können:

warnung: Benutzer mandrake existiert nicht - verwende root  
warnung: Gruppe mandrake existiert nicht - verwende root

Jetzt patchen wir die Postfix-Quellen mit dem postfix-2.5.1-vda-ng-Patch (von http://vda.sourceforge.net/):

cd /usr/src/rpm/SOURCES  
tar xvfz postfix-2.5.1.tar.gz  
wget http://vda.sourceforge.net/VDA/postfix-2.5.1-vda-ng.patch.gz  
gunzip postfix-2.5.1-vda-ng.patch.gz  
cd postfix-2.5.1  
patch -p1 < ../postfix-2.5.1-vda-ng.patch  
cd ..  
mv postfix-2.5.1.tar.gz postfix-2.5.1.tar.gz_orig  
tar -pczf postfix-2.5.1.tar.gz postfix-2.5.1/  
rm -fr postfix-2.5.1/

Dann bauen wir unser neues Postfix-RPM-Paket mit Quota- und MySQL-Unterstützung:

cd /usr/src/rpm/SPECS/  
rpmbuild -ba postfix.spec

Unser Postfix-RPM-Paket wird in /usr/src/rpm/RPMS/i586 erstellt, also gehen wir dorthin:

cd /usr/src/rpm/RPMS/i586

Der Befehl

ls -l

zeigt Ihnen die verfügbaren Pakete:

[root@server1 i586]# ls -l  
total 4712  
-rw-r--r-- 1 root root  275303 2008-04-11 16:22 libpostfix1-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root 1822571 2008-04-11 16:22 postfix-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root 2608569 2008-04-11 16:22 postfix-debug-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   27341 2008-04-11 16:22 postfix-ldap-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   22208 2008-04-11 16:22 postfix-mysql-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   22150 2008-04-11 16:22 postfix-pcre-2.5.1-2mdv2008.1.i586.rpm  
-rw-r--r-- 1 root root   22266 2008-04-11 16:22 postfix-pgsql-2.5.1-2mdv2008.1.i586.rpm  
[root@server1 i586]#

Zuerst deinstallieren Sie Ihr aktuelles Postfix-Paket…

urpme postfix

…dann wählen Sie die Pakete postfix und postfix-mysql aus und installieren Sie sie wie folgt:

rpm -ivh postfix-2.5.1-2mdv2008.1.i586.rpm postfix-mysql-2.5.1-2mdv2008.1.i586.rpm

4 MySQL-Passwörter setzen und phpMyAdmin konfigurieren

Standardmäßig ist das Netzwerk in Mandriva 2008.1s MySQL-Paket nicht aktiviert, aber das Netzwerk wird von ISPConfig benötigt. Wir können dies ändern, indem wir die Zeile skip-networking in /etc/my.cnf auskommentieren:

vi /etc/my.cnf

| [...] # Hören Sie überhaupt nicht auf einem TCP/IP-Port. Dies kann eine Sicherheitsverbesserung sein, # wenn alle Prozesse, die sich mit mysqld verbinden müssen, auf demselben Host ausgeführt werden. # Alle Interaktionen mit mysqld müssen über Unix-Sockets oder benannte Pipes erfolgen. # Beachten Sie, dass die Verwendung dieser Option ohne Aktivierung benannter Pipes unter Windows # (über die Option "enable-named-pipe") mysqld unbrauchbar macht! # #skip-networking [...] |

Danach erstellen wir die Systemstartlinks für Apache und MySQL…

chkconfig mysqld on  
chkconfig httpd on

… und starten beide Dienste:

/etc/init.d/mysqld start  
/etc/init.d/httpd start

Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Führen Sie aus:

netstat -tap | grep mysql

Die Ausgabe sollte so aussehen:

[root@server1 i586]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      13537/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      13545/mysqld  
[root@server1 i586]#

Führen Sie als Nächstes aus:

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

um ein Passwort für den Benutzer root festzulegen (ansonsten kann jeder auf Ihre MySQL-Datenbank zugreifen!).

Jetzt können Sie Ihren Browser zu http://server1.example.com/phpmyadmin/ oder http://192.168.0.100/phpmyadmin/ leiten und sich mit dem Benutzernamen root und Ihrem neuen root MySQL-Passwort anmelden.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.