Sendmail

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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)