20.6 E-Mail-Versand mit Exim4 

Oftmals wird an einen Web-Server die Anforderung gestellt, dass dieser auch als Mailserver dienen soll. Ich möchte an dieser Stelle explizit keine umfassende Anleitung geben, wie man einen lokalen Mail-Server installiert und betreibt. 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 1300 Seiten.
E-Mails gehören zu den wichtigsten Diensten im Internet und damit auch 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 Mail-Server eine Goldgrube für Spam-Versender darstellt.
Ungesicherter Server
Ein ungesicherter Mail-Server ist über den TCP-Port 25 erreichbar. Unter dieser »Adresse« kann dieser E-Mails entgegennehmen und weitersenden. Ist der Mail-Server 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 den Port 25 unterbinden. Die zweite Schwachstelle aber ist und bleibt die Konfiguration des Servers an sich.
Grundlegender Versand
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 man E-Mail-Weiterleitungen einrichten kann.
Der SMTP-Server des eigenen Providers heißt im Folgenden smtp.provider.xy. Dieser erfordert eine SMTP-Authentifizierung. Idealerweise tragen die über den Smarthost versendeten E-Mail den Domain-Namen der Absender-Domain (meine-domain.xy).
Im ersten Schritt installieren Sie für den Befehl mail Exim 4 und mailx:
aptitude install exim4 exim4-daemon-light mailx
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:
dpkg-reconfigure exim4-config
| 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 – dasselbe, auch E-Mail mit dem Status frozen wird weitergeleitet |
|
Bei älteren Versionen von exim muss der Befehl exim anstatt exim4 verwendet werden. |
Nun öffnet sich der Konfigurationsassistent, in dem Sie folgende Einstellungen wählen:
- General type of mail configuration: Versand über Sendezentrale (Smarthost); keine lokale E-Mail-Zustellung
- System mail name: meine-domain.xy
- IP-addresses to listen on for incoming SMTP connection 127.0.0.1
- Other destinations for which mail is accepted: localhost
- Sichtbarer Domänenname für lokale Benutzer: meine-domain.xy
- IP address or host name of the outgoing smarthost: smtp.provider.xy
- DNS-Anfragen minimieren (Automatische Einwahl / Dial-on-Demand)?: Im Normalfall nein (Text lesen!)
- Split configuration into small files? 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.
| 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 anstatt exim4 verwendet werden. |
Damit die E-Mails bei dem lokalen User ankommen, z. B. 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 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.
| Neuausliefern von mbox-Inhalten |
|
Falls das Home-Verzeichnis voll ist und procmail fehlschlug, muss man E-Mails aus /var/mail/<Benutzername> erneut manuell an die sortierten Postfächer im Home-Verzeichnis ausliefern. Stellen Sie zunächst Plattenplatz im Home-Verzeichnis bereit, und starten Sie dann Folgendes: |
| /etc/init.d/exim stop formail -s procmail </var/mail/<Benutzername> /etc/init.d/exim start |
|
Bei älteren Versionen von exim muss der Befehl exim anstatt exim4 verwendet werden. |




Jetzt bestellen







