Sendmail
Mailserver-Installation mit Sendmail und Dovecot
Diese Anleitung beschreibt die Einrichtung eines Mailservers unter Debian mit Sendmail als Mail Transfer Agent (MTA) und Dovecot als Mail Delivery Agent (MDA). Die Konfiguration umfasst Maildir-Unterstützung und TLS-Verschlüsselung.
Vorbereitung
Bereinigung des Systems
Um Konflikte zu vermeiden, werden andere MTAs wie Postfix oder Exim4 vollständig entfernt.
systemctl stop postfix exim4 dovecot || true apt purge -y postfix exim4 exim4-base exim4-config exim4-daemon-light exim4-daemon-heavy dovecot-core dovecot-imapd dovecot-lmtpd apt autoremove -y apt autoclean rm -rf /etc/postfix /etc/exim4 /etc/dovecot /var/spool/postfix /var/spool/exim4
Maildir-Struktur für Benutzer
Sendmail nutzt standardmäßig mbox. Um Maildir (ein Ordner pro E-Mail) zu verwenden, wird das Benutzer-Skelett angepasst.
mkdir -p /etc/skel/Maildir/{cur,new,tmp}
grep -q MAILDIR /etc/skel/.bashrc || echo 'export MAIL=$HOME/Maildir' >> /etc/skel/.bashrc
Installation
Installation der Sendmail-Suite und der Dovecot-Komponenten:
apt update DEBIAN_FRONTEND=noninteractive apt install -y sendmail sendmail-bin m4 dovecot-core dovecot-imapd dovecot-lmtpd mailutils
Konfiguration
Sendmail: Domain-Empfang
Damit Sendmail E-Mails für die gesamte Domain (nicht nur den Hostnamen) annimmt, müssen diese in die Datei local-host-names eingetragen werden.
FQDN=$(hostname -f) DOM=$(hostname -d) echo "$FQDN" > /etc/mail/local-host-names echo "$DOM" >> /etc/mail/local-host-names
Sendmail: TLS und SMTPS
Die Konfiguration von Sendmail erfolgt über M4-Makros in der Datei /etc/mail/sendmail.mc.
cat <<EOF >> /etc/mail/sendmail.mc define(\`confCACERT_PATH', \`/etc/ssl/certs') define(\`confCACERT', \`/etc/ssl/own.crt') define(\`confSERVER_CERT', \`/etc/ssl/own.crt') define(\`confSERVER_KEY', \`/etc/ssl/own.key') DAEMON_OPTIONS(\`Port=smtp, Name=MTA')dnl DAEMON_OPTIONS(\`Port=465, Name=TLSMTA, M=s')dnl EOF
Nach der Änderung muss die Konfiguration generiert und der Dienst aktualisiert werden:
sendmailconfig systemctl restart sendmail
Dovecot Konfiguration
Mail-Pfad (Maildir)
Datei: /etc/dovecot/conf.d/10-mail.conf
cat > /etc/dovecot/conf.d/10-mail.conf <<EOF mail_location = maildir:~/Maildir EOF
SSL/TLS Einstellungen
Datei: /etc/dovecot/conf.d/10-ssl.conf
cat > /etc/dovecot/conf.d/10-ssl.conf <<EOF ssl = yes ssl_cert = </etc/ssl/own.crt ssl_key = </etc/ssl/own.key ssl_min_protocol = TLSv1.2 EOF
Authentifizierung und Sockets
Datei: /etc/dovecot/conf.d/10-master.conf
cat > /etc/dovecot/conf.d/10-master.conf <<EOF
service imap-login {
inet_listener imap {
}
inet_listener imaps {
}
}
service auth {
unix_listener auth-userdb {
mode = 0660
user = sendmail
group = sendmail
}
}
EOF
Abschluss
Dienste neu starten, um die Konfiguration zu aktivieren:
systemctl restart sendmail systemctl restart dovecot
Verifizierung
Prüfen, ob Sendmail die Domain als lokal erkennt:
echo "Test" | sendmail -v postmaster@$(hostname -d)