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 userDa 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/*.confDie 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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.