SMTP-Auth für Exim4 Mailserver

Posted by Tobias on 2010-04-26 at 10:24 am

Erst jetzt am Wochenende habe ich mich mit dem Exim4-Mailserver beschäftigt. Genauer gesagt damit, wie ich die SMTP-Authentifizierung aktivieren kann - sodass ich z.B. mit einem beliebigen E-Mail Client Mails über diesen Exim4-Mailserver verschicken kann. In der Debian Standardkonfiguration erlaubt Exim4 keine SMTP-Authentifizierung und damit auch kein "Relaying". Nur wenige Einstellungen müssen angepasst werden, um den SMTP-Auth zu aktivieren...Die Authentifizierung soll verschlüsselt erfolgen und so muss - falls noch nicht erledigt - ein SSL Zertifikat generiert werden. Dazu gibt es ein entsprechendes Tool, welches mit dem Befehl

/usr/share/doc/exim-base/examples/exim-gencert

gestartet werden kann. Der Befehl kann ohne Bedenken ausgeführt werden. Solle schon ein entsprechendes Zertifikat für exim4 vorhanden sein, weist das Programm darauf hin und fordert für die Erstellung den "--force" Parameter.

In der exim4 Konfigurationsdatei (ausgehend von einer nicht in mehrere kleine aufgeteilte Dateien)

/etc/exim4/exim4.conf.template

finden sich die folgenden Zeilen, die auskommentiert werden müssen (sprich das Raute-Symbol am Anfang jeder Zeile entfernen):plain_server:

driver = plaintext public_name = PLAIN server_condition = "${ifcrypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" server_set_id = $2 server_prompts = : .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} .endif

Falls exim4 noch in der Standardkonfiguration läuft muss eine Datei Namen

/etc/exim4/exim4.conf.localmacros

erstellt werden und folgende Zeile in diese Datei einfügen:

MAIN_TLS_ENABLE = true

Sollte die Datei schon existieren, muss nur die Zeile eingefügt werden. Nun muss der exim4 Mailserver mit der veränderten Konfiguration neu gestartet werden. Dazu diese Befehle ausführen:

update-exim4.conf
/etc/init.d/exim4 restart

Zuletzt müssen noch Benutzer (und Kennworte) angelegt werden, die sich künftig per SMTP-Auth anmelden dürfen. Dazu kann mit folgendem Befehl ein neuer User hinzugefügt werden:

htpasswd /etc/exim4/passwd username

Sollte die Datei noch nicht existieren, was in der Standardkonfiguration der Fall ist, muss der erste Benutzer mit dem Befehl

htpasswd -c /etc/exim4/passwd username

erzeugt werden. Beim Aufruf des "htpasswd" Programm wird der Benutzer (hier "username") übergeben, der hinzugefügt werden soll. Das Passwort wird dann abgefragt.

Jetzt sollte der exim4 Mailserver eine TLS verschlüsselte Verbindung mit Authentifizierung unterstützen und somit auch den Mailversand mit einem E-Mail Client wie Outlook, Thunderbirg & Co. Nachdem sich der Benutzer angemeldet hat, ist auch ein "relaying" nach extern möglich.

InternetServer
2 comments
Posted by Sascha on 2010-06-03 at 9:46 pm
Danke für den Bericht! Ich habe unter ubuntu 10.04 recht lange damit zu kämpfen, lag wohl aber an einer falschen Einstellung bei "dpkg-reconfigure".

Um TLS-Verbindungen zu erzwingen, muss im Bereich "acl_check_mail:" als erste Bedingung stehen:

deny
!encrypted = *
message = TLS required

Weißt Du vielleicht, wie ich Fehler-Bounce-Mails an den Absender unterbinden kann?
Posted by Tobias on 2010-06-04 at 10:55 am
Hallo Sascha,
freut mich, dass du meine Seite gefunden hast und ich dir vielleicht mit meinem Beitrag helfen konnte.
Zu den Fehlermails kann ich leider nichts sagen, habe mich damit nicht beschäftigt, aber vielleicht hilft dir dieser Blogbeitrag hier weiter.

Grüße Tobi
Comment on This Post