Mail Server · 3 min read · Oct 05, 2025

Vollständige Mail-Server-Lösung mit virtuellen Domains & Benutzern (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Seite 9

VI. Unsicheres IMAP

So, jetzt hast du eine ziemlich robuste Mail-Server-Konfiguration. Mails kommen an, werden durch eine Vielzahl von Anti-Spam-Verfahren geleitet und auf Viren überprüft, bevor sie schön im Verzeichnis eines virtuellen Benutzers auf dem internen Server abgelegt werden. Aber… wie gelangen die Benutzer zu ihren E-Mails?

Gute Frage. Die Antwort variiert je nachdem, wo sich der Benutzer befindet. Für den Moment nehmen wir an, dass der Benutzer entweder (A) im lokalen (internen) Netzwerk ist oder (B) über eine sichere Verbindung zum Webserver auf seine E-Mails zugreift. Für beide Fälle muss IMAP aktiv sein. Da der Postman-Server bereits einen voll funktionsfähigen IMAP-Server (Dovecot) installiert hat, lass uns diesen Server für den Zugriff verwenden.

Öffne die Dovecot-Konfigurationsdatei, die sich in /etc/dovecot/dovecot.conf befindet, und passe sie wie folgt an. Es gibt wahrscheinlich bereits viele Standardkonfigurationen, sodass du wahrscheinlich nur bestimmte Abschnitte auskommentieren und kleinere Änderungen vornehmen musst.

## Dovecot-Konfigurationsdatei  
#  
base_dir = /var/run/dovecot/  
#  
# imap imaps pop3 pop3s (verwende imaps und pop3s, wenn für SSL konfiguriert)  
protocols = imap  
#  
# Kommentiere die ssl_listen-Anweisungen aus und kommentiere listen aus, wenn SSL verwendet wird  
protocol imap {  
listen = *:143  
# ssl_listen = *:993  
}  
#protocol pop3 {  
#listen = *:110  
# ssl_listen = *:995  
#}  
#  
log_timestamp = "%Y-%m-%d %H:%M:%S "  
syslog_facility = mail  
#  
# Kommentiere diese aus, wenn SSL verwendet wird  
#ssl_cert_file = /etc/ssl/mycompany/mailserver/mail-cert.pem  
#ssl_key_file = /etc/ssl/mycompany/mailserver/mail-key.pem  
#ssl_ca_file = /etc/ssl/mycompany/ca/mycompany.pem  
#ssl_verify_client_cert = yes  
#ssl_parameters_regenerate = 168  
#verbose_ssl = no  
#  
# Wo sich die Mailboxen befinden  
mail_location = maildir:/vmail/%d/%u  
#  
mail_extra_groups = mail  
mail_debug = no  
first_valid_uid = 150  
last_valid_uid = 150  
maildir_copy_with_hardlinks = yes  
#  
protocol imap {  
login_executable = /usr/lib/dovecot/imap-login  
mail_executable = /usr/lib/dovecot/imap  
imap_max_line_length = 65536  
}  
#protocol pop3 {  
#login_executable = /usr/lib/dovecot/pop3-login  
#mail_executable = /usr/lib/dovecot/pop3  
#pop3_uidl_format = %08Xu%08Xv  
#}  
protocol lda {  
postmaster_address = [email protected]  
sendmail_path = /usr/lib/sendmail  
auth_socket_path = /var/run/dovecot/auth-master  
}  
#  
auth_verbose = no  
auth_debug = no  
auth_debug_passwords = no  
#  
auth default {  
 mechanisms = plain  
 passdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 userdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 user = nobody  
socket listen {  
 master {  
 path = /var/run/dovecot/auth-master  
 mode = 0660  
 user = vmail  
 group = mail  
 }  
 client {  
 path = /var/spool/postfix/private/auth  
 mode = 0660  
 user = postfix  
 group = postfix  
 }  
 }  
 #  
 # Wenn du Client-Zertifikate verwenden möchtest, benutze diese Zeilen  
 # ssl_require_client_cert = yes  
 # ssl_username_from_cert = yes  
}

HINWEIS: Du kannst die obige Konfiguration nicht einfach kopieren und erwarten, dass sie funktioniert! Du musst alle Änderungen oben in deine eigene Konfiguration einarbeiten.

Die Dovecot-Konfiguration ist fast vollständig, aber genau wie bei der Postfix-Konfiguration müssen die MySQL-Einstellungen integriert werden.

Öffne die Datei /etc/dovecot/dovecot-sql.conf und stelle sicher, dass Folgendes vorhanden ist.

driver = mysql  
connect = host=sql-1.internal.example.com dbname=virtual_mail user=vmail_user password=vmail_user_password  
# Der neue Name für MD5 ist MD5-CRYPT, daher musst du dies je nach Version möglicherweise ändern  
default_pass_scheme = MD5  
# Hole die Mailbox  
user_query = SELECT '/vmail/%d/%n' AS home, 'maildir:/vmail/%d/%n' AS mail, 150 AS uid, 8 AS gid, CONCAT('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'  
# Hole das Passwort  
password_query = SELECT username AS user, password, '/vmail/%d/%n' AS userdb_home, 'maildir:/vmail/%d/%n' AS userdb_mail, 150 AS userdb_uid, 8 AS userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'  
# Wenn Client-Zertifikate zur Authentifizierung verwendet werden, kommentiere das Obige aus und kommentiere Folgendes ein  
#password_query = SELECT null AS password, '%u' AS user

Da wir unser MySQL-Passwort in Klartextformat in diesem Dokument gespeichert haben, möchten wir sicherstellen, dass nur wir es lesen können!

# chmod 600 /etc/dovecot/*.conf  
# chown vmail /etc/dovecot/*.conf

Die interne/unsichere Dovecot-Konfiguration ist jetzt abgeschlossen! Gehe voran und starte den Dovecot-Dienst neu:

# invoke-rc.d dovecot restart

… und deine internen/Webmail-Benutzer können jetzt auf E-Mails auf postman.internal.example.com zugreifen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.