Fedora Postfix Dovecot

Um meine Mail-Unmengen zu verwalten nutze ich einen lokalen IMAP Mailserver unter Dovecot. Die aus dem Internet eintreffende Mail wird lokal gefiltert, in Ordner sortiert und hierbei in den lokalen IMAP Server geschoben. Meine Laptops synchronisieren ihren Mailbestand jeweils gegenüber dem zentralen Server zu Hause, so dass ich immer alle Mails dabei haben kann – diese liegen in meinem jeweiligen Homeverzeichnis in einem Maildir-Ordner. Meine Thunderbird-Installation auf den jeweiligen Geräten binden dann den lokalen Dovecot ein.

Unter Ubuntu ist ein derartiger Mailserver schnell eingerichtet:

sudo apt-get install dovecot-postfix

und dann läuft das Ding. Weitere Arbeiten sind nicht nötig – alle Komponenten lauschen nur an localhost, wenn man beim Setup die hierzu gestellte Rückfrage einmal abnickt.

Unter Fedora ist das alles nicht ganz so einfach, weswegen ich hier meine seit Fedora 16 genutzte Konfiguration dokumentiere.

Postfix

Erst einmal werden wir root:

su –

und installieren dann einen Postfix

yum -y install postfix

Dessen zentrale Konfigurationsdatei wird bearbeitet

vi /etc/postfix/main.cf

Die folgenden Eintragungen vornehmen (IPv4 reicht lokal völlig aus):

myhostname = localhost.localdomain
mydomain = localdomain
myorigin = $mydomain
inet_interfaces = localhost
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = host
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP

Die Authentifizierung einrichten gegenüber dem lokalen Benutzeraccount:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Der bei Fedora schon vorhandene Mailserver wird angehalten und abgeklemmt:

systemctl stop sendmail.service
systemctl disable sendmail.service

Postfix wird als neuer Standardmailserver eingerichtet. Im folgenden Schritt also Postfix auswählen:

alternatives –config mta

Dann Postfix starten und dafür sorgen, dass dieser immer beim Booten mit hochkommt:

systemctl start postfix.service
systemctl enable postfix.service

Postfix sollte nun laufen (mit telnet oder nmap kann man dies überprüfen). Als nächstes kommt der IMAP Server dran.

Dovecot

Dovecot installieren durch

yum -y install dovecot

Dann die Konfigurationsdateien bearbeiten. Meist sind entsprechende Zeilen schon vorhanden, so dass man diese schlicht ein/auskommentieren kann:

vi /etc/dovecot/dovecot.conf

Hier die Eintragungen für die Protokolle großzügig festlegen – genutzt wird später lokal nur IMAP, aber das ist Wurscht.

protocols = imap pop3 lmtp
listen = *, ::

Die nächste Konfigurationsdatei:

vi /etc/dovecot/conf.d/10-auth.conf

Auch hier können wir auf Grund der Tatsache, dass unser Dovecot nur auf dem jeweiligen Rechner lokal läuft, großzügig sein.

disable_plaintext_auth = no
auth_mechanisms = plain login

Und dann wäre da noch die folgende Datei …

vi /etc/dovecot/conf.d/10-mail.conf

… in der wir in unserem Home ein Mailverzeichnis einrichten:

mail_location = maildir:~/Maildir

Und noch die Konfigurationsdatei für die Authentifizierung des lokalen Benutzers:

vi /etc/dovecot/conf.d/10-master.conf

die wie folgt ergänzt wird:

unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}

Jetzt fehlt noch Einstellungen für die Verschlüsselung der Verbindung zum IMAP Server vornehmen

vi /etc/dovecot/conf.d/10-ssl.conf

auf die wir lokal schlicht verzichten:

ssl = no

Und am Ende wird der Dovecot noch als Dienst eingerichtet:

systemctl start dovecot.service
systemctl enable dovecot.service

SELinux

Wenn es mit der Verbindungsaufnahme zum lokalen Mailserver aus Thunderbird heraus nun nicht klappen will, dann muss man die Einstellungen für SELinux überprüfen und testweise auch so einschränken, dass diese zwar Warnmeldungen ausspuckt, jedoch nicht mehr dazwischen funkt:

vi /etc/selinux/config

Hier dann auf permissive umschalten und nochmal den Zugriff von Thunderbird aus probieren.

selinux_dovecot

SELinux motzt dann zwar, aber der Zugriff auf den lokalen Mailspeicher sollte funktionieren.