SMTP-Auth und TLS für Exim4 auf debian 5.0 (Lenny)
Erstellt von solip am Mittwoch 10. März 2010
Exim4 als Standard Mail Transport Agent (MTA) von debian kommt in zwei Varianten: light und heavy. Die Variante Heavy lässt sich gut für mehr als nur lokale Mailzustellung ausbauen. Sie bietet unter anderem von Haus aus Authentifizierung gegen /etc/passwd und /etc/shadow.
Hier eine kleine Anleitung um SMTP-Authentifizierung einzuführen und TLS-Transportverschlüsselung zu nutzen.
Zunächst mal muss das evtl. benutzte light-Paket von Exim4 gegen die heavy-Variante getauscht werden. Dies ist jederzeit ohne Änderungen an der Konfiguration möglich.
aptitude install exim4-daemon-heavy
Dann generieren wir ein X.509 Zertifikat für die Verschlüsselung. Exim4 hat dafür sein eigenes Tool und entsprechende Passagen in der Anleitung.
bash /usr/share/doc/exim4-base/examples/exim-gencert
Dies generiert uns Zertifikat und Key in /etc/exim4.
Nun ist die Exim4-Konfiguration für TLS anzupassen. Dazu fügen wir gem. Dokumentation ein:
2.1.3. Using Exim Macros to control the configuration" and "2.2.2. Enabling TLS support for Exim as server" from /usr/share/doc/exim4-base/README.Debian.gz, you should create a file with name /etc/exim4/conf.d/main/000_localmacros (split configuration) or /etc/exim4/exim4.conf.localmacros (non-split configuration), and insert lines as following:
#####################################################
### main/03_exim4-config_tlsoptions
#####################################################
MAIN_TLS_ENABLE = true
tls_on_connect_ports = 465
An gleicher Stelle kann auch noch bestimmt werden ob SMTP-AUTH verschlüsselt erfolgen muss oder nicht. Standard ist auch unverschlüsselt zugelassen.
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
Ermöglicht nur verschlüsselten Verbindungen SMTP-AUTH zu benutzen.
Da wir gerne möchten das Exim4 uns SMTP verschlüsselt am dafür üblichen Port 465 zur Verfügung stellt, bearbeiten wir auch /etc/default/exim4 wie folgt:
# options for daemon listening on port 25
SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'
Damit Exim4 auch gegen die lokalen Benutzer authentifizieren kann, braucht der Daemon Zugriff auf /etc/shadow. Dazu müssen die Rechte geändert werden so das Exim4, welches als User Debian-exim
und Gruppe Debian-exim
(Schreibweise beachten) läuft, auch darauf zugreifen kann.
chgrp Debian-exim /etc/shadow
chmod g+r /etc/shadow
Nun müssen in der Sektion authenticators
in der Exim4 Konfiguration PLAIN und LOGIN wie folgt aussehen. Anpassen oder ersetzen ist hier möglich.
plain:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_set_id = $2
server_condition = "${if pam{$2:$3}{1}{0}}"
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_set_id = $1
server_condition = "${if pam{$1:$2}{1}{0}}"
Nun ist noch Exim4 mittels /etc/init.d/exim4 restart
neu zu starten sowie die Logs und die Funktion zu prüfen.
Dienstag 16. März 2010 um 17:36
[…] SMTP-Auth und TLS für Exim4 auf debian 5.0 (Lenny) […]
Dienstag 11. September 2018 um 15:21
[…] größere Variante zur Einrichtung von Exim4 mit SMTP-Auth und TLS hier eine Anleitung, wie basierend auf der Exim4 Installation SMTP-Auth mit TLS und Postfachzugriff […]