Product SiteDocumentation Site

5.6. Absichern des Mail-Dienstes

Wenn Ihr Server kein Mail-System ist, mssen Sie nicht wirklich einen Mail-Daemon haben, der auf eingehende Verbindungen reagiert. Aber Sie wollen lokale Mails ausliefern, um beispielsweise Mails an den Root-User von irgendwelchen Alarmsystemen zu erhalten.
Wenn Sie exim haben, mssen Sie den Daemon nicht laufen lassen, um dies zu erreichen, da der Standard-cron-Job die Mails abarbeitet. Sehen Sie in Abschnitt 3.5.1, „Daemons abschalten“, wie man dies erledigt.

5.6.1. Konfiguration eines Nullmailers

Sie brauchen vielleicht einen lokalen Mail-Daemon, damit er die Mails, die vom lokalen Rechner zu einem anderen System geschickt wurden, versenden kann. Dies ist blich, wenn Sie eine Anzahl von Systemen zu administrieren haben und nicht zu jedem von diesen eine Verbindung aufbauen wollen, um die dort lokal verschickten Mails zu lesen. Genau wie all das Protokollieren eines jeden individuellen Systems durch einen zentralen syslog-Server zentralisiert werden kann, so kann auch Mail zu einem zentralen Mail-Server gesandt werden.
Solch ein nur sendendes System sollte sorgfltig dafr eingerichtet werden. Der Daemon kann ebenso konfiguriert werden, nur an der Loopback-Adresse zu lauschen.
Die folgenden Konfigurationsschritte mssen nur zur Konfiguration des exim-Pakets in der Debian 3.0 Version vorgenommen werden. Wenn Sie eine neuere Version verwenden (wie z.B. 3.1, das exim4 verwendet), so wurde das Installationssystem verbessert, so dass, wenn der Mail-Transport-Agent konfiguriert wurde, nur lokale Mails zu versenden, es automatisch nur Verbindungen vom lokalen Rechner und keine Verbindungen aus der Ferne zulsst.
In einem Debian 3.0 System mit exim muss man den SMTP-Daemon aus inetd wie folgt entfernen:
$ update-inetd --disable smtp
und den Mail-Daemon so konfigurieren, dass er nur auf der loopback-Schnittstelle lauscht. In exim (dem Standard-Mail-Transport-Agent (MTA) unter Debian) tun Sie dies, indem Sie in der Datei /etc/exim.conf folgende Zeile hinzufgen:
local_interfaces = "127.0.0.1"
Starten Sie beide Daemonen neu (inetd und exim) und exim wird lediglich auf den Socket 127.0.0.1:25 lauschen. Seien Sie vorsichtig und deaktivieren Sie erst inetd, oder exim wird nicht neu starten, da der inetd-Daemon bereits eingehende Verbindungen behandelt.
Bei postfix editieren Sie /etc/postfix/main.conf:
inet_interfaces = localhost
Wenn Sie lediglich lokale Mails wollen, ist dieses Herangehen besser als den Mailer-Daemon in einen tcp-Wrapper zu hllen oder Firewall-Regeln einzufgen, die den Zugang fr alle limitieren. Wenn Sie jedoch auch auf andere Schnittstellen reagieren mssen, sollten Sie berlegen, ihn vom inetd aufrufen zu lassen und einen tcp-Wrapper einzusetzen, so dass eingehende Verbindungen gegen /etc/hosts.allow und /etc/hosts.deny geprft werden. Auerdem werden Sie vor unautorisierten Zugriffsversuchen gegen Ihren Mail-Daemon durch angemessenes Protokollieren gewarnt werden wollen.
In jedem Fall knnen Sie Mail-Zustellversuche auf dem SMTP-Level ablehnen, indem Sie die /etc/exim/exim.conf abndern, damit Sie Folgendes enthlt:
receiver_verify = true
Auch wenn Ihr Mail-Server keine Mails zustellen wird, ist diese Konfiguration fr den Relay-Tester auf http://www.abuse.net/relay.html ntig, um festzustellen, dass Ihr Server nicht relaisfhig ist.
Wenn Sie Mails nur weiterleiten mchten, knnen Sie in Erwgung ziehen, den Mail-Daemon durch Programme zu ersetzen, die nur zum Weiterleiten der Mail zu einem entfernten Mail-Server konfiguriert werden knnen. Debian stellt zurzeit ssmtp und nullmailer fr diese Zwecke zur Verfgung. Auf jeden Fall knnen Sie fr sich selbst alle von Debian angebotenen Mail-Transport-Agents testen [45] und sehen, welcher davon am besten auf Ihr System zugeschnitten ist.

5.6.2. Anbieten eines sicheren Zugangs zu Mailboxen

Wenn Sie entfernten Zugriff auf Mailboxen erlauben wollen, gibt es eine Anzahl von mglichen POP3- und IMAP-Daemonen.[46] Wenn Sie IMAP-Zugriff anbieten, beachten Sie jedoch, dass es ein allgemeines Dateizugriffsprotokoll ist. Es kann das quivalent zu einem Shell-Zugang werden, da Benutzer in der Lage sein knnten, Zugang zu beliebigen Dateien zu erhalten, auf die sie durch ihn zugreifen knnen.
Versuchen Sie beispielsweise, {server.com}/etc/passwd als Ihren Eingabepfad zu konfigurieren. Wenn dies gelingt, ist Ihr IMAP-Daemon nicht richtig konfiguriert, um diese Art von Zugriff zu verhindern.
Unter den IMAP-Servern in Debian vermeidet der cyrus-Server (im Paket cyrus-imapd) dies, indem er den gesamten Zugriff zu einer Datenbasis in einem beschrnkten Teil des Dateisystems limitiert. Auch uw-imapd (installieren Sie entweder das uw-imapd- oder besser, wenn Ihre IMAP-Clients es untersttzen, das uw-imapd-ssl-Paket) kann konfiguriert werden, das Mailverzeichnis der Benutzer in ein Chroot-Gefngnis einzusperren, dies ist jedoch nicht standardmig aktiviert. Die angebotene Dokumentation enthlt mehr Informationen, wie man dies konfiguriert.
Es ist ebenso empfehlenswert, einen IMAP-Server laufen zu haben, der keine neuen Benutzer im lokalen System erfordert (dies wrde auch einen Shell-Zugang ermglichen). Sowohl courier-imap (fr IMAP) und courier-pop, teapop (fr POP3) und cyrus-imapd (fr POP3 und IMAP) bieten Server mit Authentifizierungsmethoden neben den lokalen Benutzerkonten. cyrus kann alle Authentifizierungsmethoden, die mittels PAM konfiguriert werden knnen, verwenden, whrenddessen teapop-Datenbanken (wie postgresql und mysql) fr die Benutzerauthentifizierung nutzen kann.
FIXME: Check: uw-imapd might be configured with user authentication through PAM too.

5.6.3. Sicherer Empfang von Mails

Das Lesen und Empfangen von Mails ist das gebruchlichste Klartext-Protokoll. Wenn Sie POP3 oder IMAP benutzen, um Ihre Mails zu erhalten, senden Sie ein Klartext-Passwort ber das gesamte Netz, so dass ziemlich jeder Ihre Mails von nun an lesen kann. Benutzen Sie stattdessen SSL (Secure Sockets Layer), um Ihre Mails zu empfangen. Wenn Sie einen Shell-Account auf dem Rechner, der als POP oder IMAP-Server agiert, haben, ist die andere Alternative SSH. Hier ist eine beispielhafte fetchmailrc, um dies zu zeigen:
poll my-imap-mailserver.org via "localhost"
  with proto IMAP port 1236
      user "ref" there with password "hackmich" is alex here warnings 3600
    folders
      .Mail/debian
    preconnect 'ssh -f -P -C -L 1236:my-imap-mailserver.org:143 -l ref
     my-imap-mailserver.org sleep 15 </dev/null > /dev/null'
Die wichtige Zeile ist die preconnect-Zeile. Sie startet eine SSH-Verbindung und erstellt den notwendigen Tunnel, durch den automatisch alle Verbindungen zum lokalen Port 1236 verschlsselt an den IMAP-Mail-Server weitergeleitet werden. Eine andere Mglichkeit wre es, fetchmail mit SSL-Untersttzung zu benutzen.
Wenn Sie verschlsselte Mail-Dienste wie POP oder IMAP anbieten mchten, apt-get install stunnel und starten Sie Ihren Daemon auf diese Weise:
stunnel -p /etc/ssl/certs/stunnel.pem -d pop3s -l /usr/sbin/popd
Dieses Kommando bindet den angegebenen Daemon (-l) an den Port (-d) und benutzt ein bestimmtes SSL-Zertifikat (-p).


[45] Die Liste der in Debian verfgbaren Mail-Daemons erhalten Sie wie folgt:
 $ apt-cache search mail-transport-agent
Die Liste wird qmail nicht enthalten, da dies nur im Quellcode im Paket qmail-src vertrieben wird.
[46] Eine Liste von Servern/Daemonen die diese Protokolle in Debian anbieten, kann wie folgt erhalten werden:
 $ apt-cache search pop3-server $ apt-cache search imap-server