Mail Server · 5 min read · Oct 29, 2025

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

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

Version 1.0
Autor: Falko Timme
Folge mir auf Twitter

Dieses Tutorial ist Copyright (c) 2010 von Falko Timme. Es basiert auf einem Tutorial von Christoph Haas, das du unter http://workaround.org finden kannst. Du darfst 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. Benutzer und Domains, die sich in einer MySQL-Datenbank befinden. Ich werde auch die Installation und Konfiguration von Courier (Courier-POP3, Courier-IMAP) demonstrieren, damit Courier gegen die gleiche 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 Klartextpasswörter, was ein Sicherheitsrisiko darstellt). Zusätzlich behandelt dieses Tutorial die Installation von Amavisd, SpamAssassin und ClamAV, damit 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 dein Mailserver Tausende von Domains und Benutzern verwalten. Außerdem ist es einfacher zu verwalten, da du nur mit der MySQL-Datenbank umgehen musst, wenn du neue Benutzer/Domains hinzufügst oder bestehende bearbeitest. Keine weiteren postmap-Befehle zum Erstellen von DB-Dateien, kein erneutes Laden von Postfix usw. Für die Verwaltung der MySQL-Datenbank kannst du webbasierte Tools wie phpMyAdmin verwenden, die ebenfalls in diesem Howto installiert werden. 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 2010.0 (x86_64). Du solltest bereits ein grundlegendes Mandriva-System eingerichtet haben, wie in den Kapiteln 1 bis 7 dieses Tutorials beschrieben: https://www.howtoforge.com/perfect-server-mandriva-2010.0-free-x86_64-ispconfig-2. Bitte lasse Kapitel 6.1 “Erstellen eines Auto-Update-Skripts” aus, denn wenn es ein Postfix-Update gibt, wird es unser maßgeschneidertes Postfix ersetzen, das wir in Kapitel 3 erstellen werden!

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 dich funktionieren wird!

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

1 Installiere Apache, MySQL, phpMyAdmin

Zuerst aktualisieren wir unsere Paketdatenbank:

urpmi.update -a

Wir können die Pakete mit einem einzigen Befehl installieren:

urpmi MySQL MySQL-client lib64mysql-devel phpmyadmin db4-devel html2text lib64sasl-devel openssl-devel openldap-devel pcre-devel postgresql8.4-devel rpm-build

2 Installiere Courier und Saslauthd

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

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

3 Wende den Quota-Patch auf Postfix an

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

cd /usr/src  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2010.0/SRPMS/main/release/postfix-2.6.5-2mdv2010.0.src.rpm  
rpm -ivh postfix-2.6.5-2mdv2010.0.src.rpm

Der letzte Befehl zeigt einige Warnungen an, die du ignorieren kannst:

warnings: user mandrake does not exist - using root  
warnings: group mandrake does not exist - using root

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

cd /root/rpmbuild/SOURCES  
tar xvfz postfix-2.6.5.tar.gz  
gunzip postfix-2.6.5-vda-ng.patch.gz  
cd postfix-2.6.5  
patch -p1 < ../postfix-2.6.5-vda-ng.patch  
cd ..  
mv postfix-2.6.5.tar.gz postfix-2.6.5.tar.gz_orig  
tar -pczf postfix-2.6.5.tar.gz postfix-2.6.5/  
rm -fr postfix-2.6.5/  
gzip postfix-2.6.5-vda-ng.patch

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

cd /root/rpmbuild/SPECS/  
rpmbuild -ba postfix.spec

Unser Postfix-RPM-Paket wird in /root/rpmbuild/RPMS/x86_64 erstellt, also gehen wir dorthin:

cd /root/rpmbuild/RPMS/x86_64

Der Befehl

ls -l

zeigt dir die verfügbaren Pakete:

[root@server1 x86_64]# ls -l  
total 3388  
-rw-r--r-- 1 root root  230449 2010-03-08 17:29 lib64postfix1-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root 1351340 2010-03-08 17:29 postfix-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root 1763590 2010-03-08 17:29 postfix-debug-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   30266 2010-03-08 17:29 postfix-ldap-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25460 2010-03-08 17:29 postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25617 2010-03-08 17:29 postfix-pcre-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25476 2010-03-08 17:29 postfix-pgsql-2.6.5-2mdv2010.0.x86_64.rpm  
[root@server1 x86_64]#

Zuerst deinstalliere dein aktuelles Postfix-Paket…

urpme postfix

…dann wähle die Postfix- und die Postfix-Mysql-Pakete aus und installiere sie wie folgt:

rpm -ivh postfix-2.6.5-2mdv2010.0.x86_64.rpm postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm

4 Setze MySQL-Passwörter und konfiguriere phpMyAdmin

Standardmäßig ist das Networking im MySQL-Paket von Mandriva 2010.0 nicht aktiviert, aber Networking 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öre ü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. # Beachte, 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

Jetzt überprüfe, ob das Networking aktiviert ist. Führe aus:

netstat -tap | grep mysql

Die Ausgabe sollte so aussehen:

[root@server1 x86_64]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im              *:*                     LISTEN      14395/mysqlmanager  
tcp        0      0 *:mysql                 *:*                     LISTEN      14403/mysqld  
[root@server1 x86_64]#

Als nächstes führe 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 deine MySQL-Datenbank zugreifen!).

Jetzt kannst du deinen Browser auf http://server1.example.com/phpmyadmin/ oder http://192.168.0.100/phpmyadmin/ lenken und dich mit dem Benutzernamen root und deinem neuen root MySQL-Passwort anmelden.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.