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 mittelshostname -f
anzeigen lassen. Dieser sollte in/etc/hosts
definiert und in/etc/hostname
gesetzt sein. Um den Hostnamen nur temporär zu setzen reicht einsudo 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