Exim E-Mail Gateway unter Debian Linux einrichten

Aus ITwiki
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt ganz knapp die wichtigsten Konfigurationen, um unter Debian Linux den (bereits vorinstallierten) Mail-Server Exim4 einzurichten. Der hier beschriebene Server dient primär als Mail-Gateway für hausintern eingesetzte Hard- und Software, welche Benachrichtigungen via SMTP versenden. Durch den Einsatz eines Linux-Systems soll der Kauf von (teuren) Microsoft (Exchange) CALs vermieden werden.

1.0.0 Grundkonfiguration

Ich gehe davon aus, dass Exim4 bereits installiert ist - bei der aktuellen Debian-Version ist das der Fall.

Starte zunächst den Debian-Konfigurator für Exim 4:

dpkg-reconfigure exim4-config

Es ist folgendes zu konfigurieren:

Generelle E-Mail-Einstellungen: Internet-Server

Beim E-Mail-Name des Systems einfach den FQDN des Servers eingeben, z. B. mail.domain.local

Wichtig ist nun die Listener-Einstellung. Hier muss zusätzlich zur Localhost-IP die LAN-IP des Servers hinterlegt werden, auf welcher er SMTP-Anfragen entgegennimmt.

Bei Weitere Ziele, für die E-Mails angenommen werden sollen wieder den FQDN des Servers hinterlegen.

Bei den Relay-Domains nichts eintragen!

Auch im nächsten Schritt bei den Relay-Hosts nichts hinterlegen!

Bei DNS-Anfragen minimieren die Einstellung Nein wählen.

Die Versandart bei lokaler E-Mail-Zustellung kann auf Mbox-Format in /var/mail bleiben.

Man kann im nächsten Schritt nun festlegen, dass alle Einstellungen auf kleine Dateien aufgeteilt werden. Ich bevorzuge der Einfachheit eine einzige Konfig-Datei, heißt alle Settings werden in der Datei /etc/exim4/exim4.conf.template vorgenommen bzw. hinterlegt. Daher Nein wählen.

Der Debian-Konfigurator wird daraufhin beendet. Bitte mittels Putty/Telnet testen, ob auf Port 25 eine Verbindung zum Server aufgebaut werden kann, erst dann sollte man mit der restlichen Konfig fortfahren.

2.0.0 SMTP Authentifizierung einrichten

Authentifiziert wird der Einfachheit halber über eine Exim-eigene passwd-Datei /etc/exim4/passwd. Um dies zu ermöglichen, müssen mehrere Einstellungen vorgenommen werden.

2.1.0 Anpassung der /etc/exim4/exim4.conf.template

Sofern unter 1.0.0 nicht die Split-Konfiguration gewählt wurde (= mehrere einzelne Konfig-Files), werden nachfolgende Einstellungen in der /etc/exim4/exim4.conf.template vorgenommen. Suche im File nach dem Eintrag der mit

plain_server:

beginnt und entferne die #-Zeichen, um die Einstellungen zu aktivieren. Zudem füge den Eintrag

AUTH_SERVER_ALLOW_NOTLS_PASSWORDS = yes

hinzu. Nur so ist es möglich, ohne TLS eine SMTP-Authentifizierung durchzuführen. Vor allem ältere Anwendungen/Hardware bieten nämlich oft nicht die Möglichkeit der Authentifizierung über TLS, deshalb muss der Wert auf yes gesetzt werden. Entferne das Kommentar-Zeichen # auch in den nächsten Zeilen wo es heißt

login_server:

Manche Clients unterstützen AUTH plain nicht sondern verwenden AUTH login und um die Authentifizierung für diese Systeme zu aktivieren, müssen auch diese Optionen aktiviert werden. Das Ganze sieht dann wie folgt aus:

Exim4 01.jpg

2.2.0 Anpassung / Erstellen der Datei /etc/exim4/exim4.conf.localmacros

Die Datei /etc/exim4/exim4.conf.localmacros wird wahrscheinlich nicht existieren, daher erstellen und folgende Zeile einfügen:

MAIN_TLS_ENABLE = true

2.3.0 Zertifikatsdateien prüfen

Unterhalb von /etc/exim4 müssen die Dateien exim.crt sowie exim.key existieren. Falls nein:

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

aufrufen und die beiden Dateien erstellen. Diese werden für die TLS-Verschlüsselung benötigt.

2.4.0 /etc/exim4/passwd erstellen

ACHTUNG: in diversen Internet-Dokus ist die Rede davon, dass die Datei /etc/exim4/passwd mittels htpasswd-Tool gefüllt werden kann/soll/muss. Das funktionierte bei mir nicht, die Authentifizierung scheitert wenn htpasswd zum Einsatz kommt. Stattdessen muss

/usr/share/doc/exim4-base/examples/exim-adduser

aufgerufen werden. Dieses Tool erstellt die passwd-Datei und hinterlegt den korrekten Passwort-Hash.

WICHTIG: Rechte auf die passwd-Datei vergeben!

chown root:Debian-exim /etc/exim4/passwd
chmod 640 /etc/exim4/passwd

In der Datei steht nämlich das Passwort im Klartext, deshalb müssen die Rechte angepasst werden.

Hinweis: man kann die /etc/exim4/passwd mit einem Editor bearbeiten und das Klartext-Passwort entfernen. Bei ersten Tests konnte ich dadurch keine Probleme feststellen...

3.0.0 Testen

Nachdem die oben unter Punkt 2 erwähnten Einstellungen vorgenommen wurden, müssen die Einstellungen durch Dienste-Neustart übernommen werden:

update-exim4.conf
/etc/initd/exim4 restart

Jetzt noch testen. Am Besten verwendet man ein kleines Tool wie z. B. den SMTP Mail Sender: http://www.haztek-software.com/applications/network/smtp-mail-sender/

Sofern alles passt, kann nach erfolgreicher Authentifizierung des Clients dieser eine Mail von jeder beliebigen Absender-Adresse an jeden beliebigen Empfänger versenden.

3.1.0 Anonymer Versand

Es gibt nun blöde Software/doofe Geräte, die um's Verrecken keine SMTP-Authentifizierung unterstützen. Damit also ein "anonymer Versand" ohne Authentifizierung funktioniert, kann man die Datei /etc/exim4/update-exim4.conf.conf anpassen. Einfach den Host in CIDR-Schreibweise der Variable

dc_relay_nets=

hinzufügen, z. B. dc_relay_nets='192.168.0.10/32 192.168.0.11/32'. Dies ermöglicht den Hosts mit der IP 192.168.0.10 bzw. 192.168.0.11 den Mail-Versand ohne Authentifizierung.

ACHTUNG: man könnte hier * verwenden, um jeden Host ohne Authentifizierung den Versand zu erlauben - man hat dann eine schöne Spam-Schleuder :-) Auch wenn die Plain-Text Authentifizierung nicht absolut top ist: besser als * zu verwenden ist es allemal.

Wichtig: nach Anpassung der /etc/exim4/update-exim4.conf.conf muss wieder

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

ausgeführt werden, um die Einstellungen zu übernehmen.

3.2.0 Fehleranalyse

Exim schreibt die wichtigsten Hinweise in die Datei /var/log/exim4/mainlog, hier sollte man bei Problemen definitiv einen Blick rein werfen. Bei mir war hier anfangs immer der Hinweis

... reject RCPT ... relay not permitted

aufgeführt. Dieser erscheint etwa dann, wenn sich der Client nicht authentifizieren konnte. Das kann z. B. dann der Fall sein, wenn ein falscher Username/falsches Passwort verwendet oder in der /etc/exim4/passwd kein User hinterlegt bzw. htpasswd anstelle von exim4-adduser zum Erstellen der passwd-Datei verwendet wurde (da hab' ich lange gesucht...). Beachte auch 3.1.0 hierzu.

War dieser Beitrag hilfreich?
Bitte stimme unten ab.
6
4
1
Es wurden seit Erstellung der Umfrage am 16:09, 11. Jul. 2017 11 Stimmen abgegeben.
poll-id 9015743503B724A770C3FA29AA223558

Nützliche Links