21.5 E-Mail-Versand
Oftmals wird an einen Webserver die Anforderung gestellt, dass er auch als Mailserver dienen soll. Ich möchte an dieser Stelle explizit keine umfassende Anleitung geben, wie Sie einen lokalen Mailserver installieren und betreiben. Es gibt nur sehr wenige Administratoren, die einen sicheren Umgang mit einem solchen Server gewährleisten können. Allein das Handbuch zu dem weitverbreiteten sendmail-Server besitzt einen Umfang von über 1.300 Seiten.
E-Mails gehören zu den wichtigsten Diensten im Internet und damit zu den gefährdetsten. In kaum einen anderen Bereich wird so viel kriminelle Energie investiert wie in diesen Dienst. Der gewollte oder ungewollte Versand von Spam-Mails ist hierbei fast das geringste Problem. Es ist aber naheliegend, dass ein unsicherer oder falsch konfigurierter Mailserver eine Goldgrube für Spam-Versender darstellt.
Ungesicherter Server
Ein ungesicherter Mailserver ist über den TCP-Port 25 erreichbar. Unter dieser »Adresse« kann er E-Mails entgegennehmen und weitersenden. Ist der Mailserver nicht perfekt konfiguriert, kann jeder Angreifer von außen beliebige E-Mails an Gott und die Welt versenden – eine perfekte »Spam-Schleuder«. Die erste Schwachstelle können Sie noch relativ leicht beseitigen, indem Sie eine sichere Firewall betreiben und somit den Zugriff auf Port 25 unterbinden. Die zweite Schwachstelle aber ist und bleibt die Konfiguration des Servers an sich.
Grundlegender Versand mit Exim4
Häufig will man lediglich E-Mails versenden, ohne dass weitere Features wie das Empfangen aktiv sind. Eine Möglichkeit besteht darin, einen entfernten SMTP-Server als sogenannten Smarthost zu benutzen, der alle lokal entgegengenommenen E-Mails versendet. Dafür bedarf es allerdings einer eigenen Domain/Subdomain, auf der Sie E-Mail-Weiterleitungen einrichten können.
Der SMTP-Server des eigenen Providers heißt im Folgenden smtp.provider.xy. Er erfordert eine SMTP-Authentifizierung. Idealerweise tragen die über den Smarthost versendeten E-Mails den Domainnamen der Absender-Domain (meine-domain.xy).
Installation
Im ersten Schritt installieren Sie für den Befehl mail Exim 4 (das Paket postfix wird dabei entfernt):
sudo apt-get install exim4 exim4-daemon-light
Fügen Sie anschließend in der Datei /etc/exim4/passwd.client eine Zeile mit dem Benutzernamen und Passwort für den SMTP-Server des Providers ein:
# password file used when the local exim is authenticating to a remote
# host as a client.
#
# see exim4_passwd_client(5) for more documentation
#
# Example:
### target.mail.server.example:login:password
smtp.provider.xy:benutzername:passwort
Als Nächstes muss Exim konfiguriert werden. Ubuntu bietet hier über das folgende Paket eine bequeme Konfigurationsmöglichkeit:
sudo dpkg-reconfigure exim4-config
Nun öffnet sich der Konfigurationsassistent, in dem Sie folgende Einstellungen wählen:
- Generelle E-Mail-Einstellungen:
Versand über Sendezentrale (Smarthost); keine lokale E-Mail-Zustellung - E-Mail-Name des Systems:
meine-domain.xy - IP-Adressen, an denen eingehende SMTP-Verbindungen erwartet werden:
127.0.0.1 - Weitere Ziele, für die E-Mails angenommen werden sollen:
localhost - Sichtbarer Domänenname für lokale Benutzer:
meine-domain.xy - IP-Adresse oder Rechnername der Sendezentrale für ausgehende E-Mails:
smtp.provider.xy - DNS-Anfragen minimieren (automatische Einwahl, Dial-on-Demand)?
im Normalfall nein - Einstellungen auf kleine Dateien aufteilen?
nein
Ob die Einrichtung zum Versenden der E-Mails funktioniert hat, überprüfen Sie anhand des Befehls mail:
echo "Inhalt" | mail -s Betreff empfaenger@domain.xy
Sollte das nicht funktionieren, schauen Sie bitte in die Logdatei /var/log/exim4/mainlog.
Tipp 282: E-Mails aus dem lokalen Spooler weiterleiten |
Um E-Mail aus dem lokalen Spooler weiterzuleiten, bieten sich folgende Befehle an: |
exim4 -q – wartende E-Mail anstoßen |
exim4 -qf – alle E-Mails weiterleiten |
exim4 -qff – auch E-Mails mit dem Status frozen weiterleiten |
Bei älteren Versionen von exim muss der Befehl exim statt exim4 verwendet werden. |
Tipp 283: Eingefrorene E-Mails aus dem lokalen Spooler entfernen |
Um nicht weiter vermittelbare E-Mails aus dem lokalen Spooler zu entfernen und eine Fehlermeldung zurückzugeben, verwenden Sie den folgenden Befehl: |
exim -Mg 'mailq | grep frozen | awk '{ print $3 }' ' |
Bei älteren Versionen von Exim muss der Befehl exim statt exim4 verwendet werden. |
Damit die E-Mails bei dem lokalen User ankommen, zum Beispiel wenn das System eine E-Mail an root sendet, richten Sie bei Ihrem E-Mail-Provider eine E-Mail-Weiterleitung für root@meine-domain.xy ein. Das Gleiche tun Sie für die anderen lokalen Benutzer, die E-Mails versenden. Läuft ein Apache, legen Sie bitte auch eine Weiterleitung für www-data an. Auf diese Weise stellen Sie sicher, dass Sie eventuell auftretende »Bounce-Mails« ebenfalls erhalten.
Tipp 284: Neuausliefern von mbox-Inhalten |
Falls Ihr home-Verzeichnis voll ist und das Ausliefern von E-Mails fehlschlug, müssen Sie E-Mails aus /var/mail/<Benutzername> erneut manuell an die sortierten Postfächer im home-Verzeichnis ausliefern lassen. Stellen Sie zunächst Plattenplatz im home-Verzeichnis bereit, und starten Sie dann Folgendes: |
/etc/init.d/exim stop |
Bei älteren Versionen von exim muss der Befehl exim statt exim4 verwendet werden. |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.