"The thing that is in Room 101 is the worst thing in the world." - O'Brien in 1984
Mailserver unter Debian

Irgendwann kommt das Bedürfnis nach einen eigenem Mailserver. Als MTA habe ich mich für exim4 entschieden und dovecot macht den MDA (auch wenn dieser eigentlich nicht benötigt wird).


Exim4 installieren

Die Installation ist unter Debian gewohnt einfach

sudo aptitude exim4
, wobei folgende Pakete installiert werden
bsd-mailx{a} exim4 exim4-base{a} exim4-config{a} exim4-daemon-light{a} libpcre3{a} mailx{a} psmisc{a}
Auch die anschließende Konfiguration mittels
sudo dpkg-reconfigure exim4-config
gestaltet sich nicht wesentlich komplizierter. Einfach dem Dialog folgen und die entsprechenden Werte einsetzen. Für meinen Server mit fester IP sieht das dann wie folgt aus:
type of mail configuration:
internet site
system mail name:
example.com Wenn man sich unsicher ist, kann man sich seinen Hostnamen auch mittels hostname -f anzeigen lassen. Dieser sollte in /etc/hosts definiert und in /etc/hostname gesetzt sein. Um den Hostnamen nur temporär zu setzen reicht ein sudo hostname example.com.
IP-addresses to listen:
(empty)
recipient domains:
example.com Bei Bedarf können auch mehrere durch Semikolon getrennt angegeben werden.
domains to relay:
(empty)
machines to relay:
(empty)
keep number of DNS-queries minimal:
NO
delivery method for local mail:
Maildir in home dir
split configuration in small files:
YES
root and postmaster mail recipient:
$USER

TLS aktivieren

Die benötigten Zertifikate sind schnell durch

sudo usr/share/doc/exim4-base/examples/exim-gencert
erzeugt. Das Aktivieren geschieht dann durch Anlegen einer Datei bspw. /etc/exim4/conf.d/main/00_exim4-config_localmacros mit folgenden Inhalt:
# Enable TLS support for Exim
MAIN_TLS_ENABLE = true
Nach einem Neustart von Exim mittels sudo invoke-rc.d exim4 restart sind wir auch schon fertig.

Konfiguration testen

Zunächst kann man sich mit telnet davon überzeugen, dass der MTA ordentlich läft.

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 example.com ESMTP Exim 4.69 Fri, 02 Oct 2009 13:14:00 +0000
help
214-Commands supported:
214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
quit
221 example.com closing connection
Connection closed by foreign host.
Wenn wir uns auf Port 25 einloggen, sollte sich Exim ordentlich melden. Bei Eingabe von help sollte STARTTLS als unterstützes Kommando auftauchen. Ist dies nicht der Fall, ist bei der Aktivierung von TLS irgendetwas schief gegangen. Abschließend trennen wir die Verbindung mit quit.

Die erste Testmail an user mit "test" im Betreff schickt man sich einfach mittels
mail -s "test" user
bodytext
^D
Cc:
Spätestens jetzt sollte auch der Ordner Maildir im Homedirectory liegen und man kann auf die Mails bspw. mit mutt zugreifen.

Weiterleitung (Aliase) einrichten

Möchte man E-Mails nicht nur unter seinem Unix-Account empfangen, empfiehlt es sich Aliase in /etc/aliases anzulegen. Angenommen Hans Mustermann mit dem Account hmuster will auch unter seinem Realnamen Mails empfangen, müssen folgende Zeilen hinzugefügt werden:

hans: hmuster
mustermann: hmuster
hansmustermann: hmuster
hans.mustermann: hmuster

Dovecot installieren

Will man seine Mails auch per IMAP abrufen, muss man sich noch einen MDA installieren. Ich habe mich für Dovecot entschieden, was gewohnt einfach geht. Der Befehl

sudo aptitude install dovecot-imapd
installiert dabei folgende Pakete
dovecot-common{a} dovecot-imapd libldap-2.4-2{a} libmysqlclient15off{a} libpq5{a} mysql-common{a}
.
Die unterstützten Protokolle habe ich in /etc/dovecot/dovecot.conf durch
protocols = imaps
auf verschlüsseltes IMAP reduziert. Die dafür benötigten Zertifikate setzt man durch
Entkommentieren von
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem