Mail Server · 3 min read · Oct 05, 2025
Vollständige Mail-Server-Lösung mit virtuellen Domains und Benutzern (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Seite 6
V. Mail-Zustellserver
Der Mail-Zustellserver ist der Server, der SPAM mithilfe eines bayesischen Algorithmus über einen Dienst namens DSPAM überprüft. DSPAM ist unglaublich leistungsfähig und verfügt über eine gute Dokumentation zu seinen verschiedenen Konfigurationen. Unsere spezielle Konfiguration ist recht einfach. MX-1 und MX-2 liefern E-Mails an postman.internal.example.com über LMTP. LMTP ist das Local Mail Transfer Protocol, einige grundlegende Informationen finden Sie hier. DSPAM empfängt die E-Mails, überprüft sie anhand seiner eigenen Algorithmen und übergibt die E-Mails an ClamAV zur Virenerkennung. Vorausgesetzt, alles ist in Ordnung, wird die E-Mail dann an Dovecot zur endgültigen Zustellung übergeben.
Wir werden die Abschnitte nacheinander durchgehen. Lassen Sie uns also die Dinge auf postman.internal.example.com zum Laufen bringen.
A. NFS-Einstellungen
Da Dovecot unsere E-Mails für uns zustellt, möchten wir das vmail-Verzeichnis auf dem Mail-Zustellserver einbinden.
Erstellen Sie den vmail-Benutzer und das Verzeichnis wie folgt:
# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtuelles Postfach" vmail
# mkdir /var/vmail
# chmod 770 /var/vmail/
# chown vmail:mail /var/vmail/Jetzt müssen wir die NFS-Client-Tools installieren:
# apt-get install nfs-common portmapDas Verzeichnis muss dann mit dem NFS-Share verbunden werden. Führen Sie einen einfachen Test durch, indem Sie Folgendes ausführen:
# mount files-1.internal.example.com:/vmail /vmailSie sollten jetzt Zugriff auf das /vmail-Share von files-1 haben. Versuchen Sie, eine Datei zu erstellen:
# cd /vmail
# touch tmpEs sollte diesmal gut funktionieren (postman hat Lese- und Schreibzugriff auf die NFS-Mount… die MX-Server hatten nur Lesezugriff).
Vorausgesetzt, alles funktioniert, gehen Sie voran und trennen Sie das NFS:
# cd /
umount /vmailUnd machen Sie die Einbindung dauerhaft, indem Sie Folgendes in Ihre /etc/fstab einfügen:
[...]
files-1.internal.example.com:/vmail /vmail nfs rw,rsize=4096,wsize=4096,hard,intr,tcp,noatime,nodev,async 0 0Binden Sie das Dateisystem ein letztes Mal ein:
# mount /vmail… und Sie sind bereit!
B. DSPAM installieren
Einmal mehr macht es Debian unglaublich einfach:
# apt-get install dspam dspam-doc libdspam7-drv-mysqlSie werden gefragt, ob Sie die Datenbank für libdspam7-drv-mysql mit dbconfig-common konfigurieren möchten, wählen Sie ‘Nein’. Ehrlich gesagt, wenn Sie dbconfig verwenden möchten, steht Ihnen nichts im Wege, aber der Dokumentation halber werde ich die Einstellungen erläutern.
C. MySQL-Datenbank einrichten
Sie müssen einige Tabellen in der MySQL-Datenbank einrichten, also melden Sie sich bei sql-1.internal.example.com an und starten Sie den MySQL-Client als root:
# mysql -u root -pErstellen Sie dann die neue DSPAM-Datenbank und den Benutzer:
MYSQL> CREATE DATABASE dspam_db;
MYSQL> GRANT ALL PRIVILEGES ON dspam_db.* TO 'dspam_user'@'postman.internal.example.com' IDENTIFIED BY 'dspam_user_password';HINWEIS: Ändern Sie das dspam_user_password in ein sicheres Passwort!
D. DSPAM für MySQL einrichten
Jetzt, da MySQL eine DSPAM-Datenbank und ein Benutzerkonto hat, können wir die Tabellen vom DSPAM MySQL-Treiber importieren. Diese sind auf dem Mail-Zustellserver (postman.internal.example.com) in /usr/share/doc/libdspam7-drv-mysql gespeichert. Es gibt zwei verschiedene Versionen der Schemata, eines, das für Geschwindigkeit optimiert ist, und das andere, um Speicherplatz zu sparen. Wir werden das für Geschwindigkeit verwenden, aber Sie können das wählen, was Sie möchten. Denken Sie daran, die Dokumentation zu lesen, dafür ist sie da!
Installieren Sie das Hauptschema:
# mysql -u dspam_user -h sql-1.internal.example.com -p dspam_db < /usr/share/doc/libdspam7-drv-mysql/mysql_objects-speed.sqlWenn Sie Berechtigungsfehler erhalten, gehen Sie zurück zum MySQL-Server und überprüfen Sie, ob Sie den Benutzer korrekt erstellt haben.
Vorausgesetzt, alles lief gut, möchten wir auch die Tabellen für virtuelle Benutzer einfüttern:
# mysql -u dspam_user -h sql-1.internal.example.com -p dspam_db < /usr/share/doc/libdspam7-drv-mysql/virtual_users.sqlJetzt müssen wir DSPAM nur noch mitteilen, wie es mit unserer MySQL-Datenbank kommunizieren kann. Dies geschieht über die Datei /etc/dspam/dspam.d/mysql.conf. Bearbeiten Sie sie entsprechend:
[...]
MySQLServer sql-1.internal.example.com
MySQLPort 3306
MySQLUser dspam_user
MySQLPass dspam_user_password
MysqLDb dspam_db
[...]
MySQLVirtualTable dspam_virtual_uids
MySQLVirtualUIDField uid
MySQLVirtualUsernameField username
[...] Jetzt wird DSPAM alle seine Informationen in der MySQL-Datenbank speichern.
HINWEIS: Dies ist eine vorübergehende Einrichtung, nur weil wir die Installation des virtuellen Benutzers von DSPAM nicht abgeschlossen hatten, bevor wir diesen Leitfaden geschrieben haben. Idealerweise möchten Sie, dass DSPAM auf dasselbe virtuelle Benutzertable zugreift wie Postfix, um alle Tokeninformationen korrekt zu speichern. Ich werde den Leitfaden aktualisieren, sobald wir diese Umstellung abgeschlossen haben.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.