Exim E-Mail Gateway unter Debian Linux einrichten
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.
Inhaltsverzeichnis
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:
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.