Schlagwort-Archive: postfix

Lokaler Mailserver unter Arch

Hier hatte ich vor einiger Zeit meine main.cf und dovecot.conf für Arch dokumentiert, war dann jedoch auf dem ollen Wind U100 zu Kali gewechselt. Auf einem meiner anderen Oldtimer – einem Dell Vostro 1510 – läuft jetzt wieder ein Arch. Es weiß mit alter Hardware sehr ressourcenschonend umzugehen – im Gegensatz zu bloated Ubuntu – und das Mehr an Gefummel ist auf einem Laptop, den ich nicht im Dauereinsatz habe, auch nicht weiter tragisch.

Zu Dokumentationszwecken erneut die main.cf und dovecot.conf für einen lokalen Mailserver als Speicherplatz für die E-Mails der letzten Jahre:

/etc/postfix/main.cf

/etc/dovecot/dovecot.conf

Scheint rund zu laufen. Zumindest werfen mir weder Postfix noch Dovecot noch Fehlermeldungen entgegen. Zur Einrichtung selbst siehe die entsprechenden Seiten im Arch-Wiki:

https://wiki.archlinux.org/index.php/postfix

https://wiki.archlinux.org/index.php/Dovecot

Wie immer bei meinen auf jedem Laptop vorhandenen lokalen Mailservern: Der Mailserver ist von außen Dank iptables nicht zu erreichen. Nur der lokale Thunderbird nimmt Kontakt auf. Sicherheitslücken in der Konfiguration sind deswegen nicht tragisch.

Auf gleichem Stand halte ich die lokalen Mailserver auf den Laptops im Moment noch mit rsync gegenüber meiner heimischen Workstation. Da muss ich mir mal was Neues überlegen …

Arch Dovevot Postfix

Auf allen meinen Laptops schleppe ich eine Kopie des lokalen Mailservers meiner Workstation mit mir herum – inzwischen eine Mail-Sammlung die rund 7 Jahre zurück reicht und mehrere GB umfasst. Hier einige Notizen zur Installation von Dovecot und Postfix unter Arch für die ausschließlich lokale Nutzung. Sicherheit ist nur dadurch gegeben, dass dieser Mailserver von Außen nicht zu erreichen ist – auch weil noch eine Firewall die Zugriffe blockiert.

Die aktiven Zeilen in der /etc/postfix/main.cf

Die aktiven Zeilen in der /etc/dovecot/dovecot.conf

Damit die Anmeldung als lokaler Benutzer funktioniert, noch die /etc/pam.d/dovecot:

Man könnte nun die Dienste jeweils aktivieren

und somit permanent auf den lokalen Mailserver zugreifen – muss man aber nicht. Da diese Konfiguration bei mir auf einem MSI Wind U 100 läuft, spare ich mir die Ressourcen lieber und starte den Mailserver per Bash-Script, wenn ich auf mein lokales Mail-Archiv wirklich zugreifen muss. So lange man den Server localhost.localdomain im Thunderbird nicht anklickt, funktioniert dieser ja auch so für alle anderen IMAP Konten – und wenn man aus Versehen doch klickt, dieser aber nicht gestartet wurde, dann motzt Thunderbird halt, dass der Server nicht zu erreichen sei.

Mailserver von 12.04 auf 14.04

Auf einem Ubuntu 12.04 lauscht Postgrey nur auf IPv6

tcp6 0 0 ::1:10023 :::* LISTEN 0 10265 1191/postgrey.pid –

Auf einem Ubuntu 14.04 lauscht er dann nach dem Upgrade auf IPv4

tcp 0 0 127.0.0.1:10023 0.0.0.0:* LISTEN 0 13562 1331/postgrey.pid –

Dass er sich wie das Fähnchen im Wind gedreht hat, wird nicht mitgeteilt. Eine Anpassung von Postfix mit Neustart von Postfix und Postgrey hilft weiter:

check_policy_service inet:127.0.0.1:10023,
# check_policy_service inet:::1:10023,

Überhaupt: Dovecot und Postfix haben bei mir das Upgrade denkbar schlecht verdaut. Im Grunde musste ich die gesamte Konfiguration der beiden händisch neu vornehmen, weil so ziemlich alles broken war: Einstellungen, Pfade, Zertifikate … you name it.

Zurück: Webserver von 12.04 auf 14.04

postgrey hört sich um

Auf einem vor gut einem halben Jahr installierten Ubuntu 12.04 Server sieht der postgrey Eintrag in der /etc/postfix/main.cf wie folgt aus:

check_policy_service inet:127.0.0.1:10023

Wer heute einen postgrey seinem Ubuntu 12.04 hinzufügen will, landet mit diesem Eintrag nur bei Fehlermeldungen, weil postgrey sich bei Neuinstallationen wohl an IPV6 gebunden fühlt. Das weiß ich seit gestern. Die folgenden ergänzenden Einträge in der main.cf helfen dann weiter:

inet_protocols = all

check_policy_service inet:::1:10023

Ältere Installation erleben das Problem nicht, auch wenn ein postgrey Upgrade erfolgte.

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.

Mailmassenverwaltung

Hier hatte ich schon davon geschrieben, dass mein Evolution gerade am zicken ist, weil die Mailmassen, die ich erhalte, dieses schlicht erdrücken. Jetzt hab ich für mich eine lokale Lösung gefunden, die – denke ich – für die Zukunft taugt: Ich nutze eine Dovecot als lokalen IMAP Server und schiebe meine Altmails schlicht von Hand in diesen.

Die Anleitung im Ubuntuusers-Wiki war zumindest mal ein Anfang – aber so richtig rund lief die Kombination aus Dovecot und Postfix erst, nachdem ich diese Seite in der Ubuntu Hilfe verdaut hatte. Bei einem schon installierten Postfix dürfte in Zukunft wohl ein

sudo apt-get install dovecot-postfix

reichen, um diese Art der Mailspeicherung zu aktivieren.

In meinem Home erschien dann ein neues Verzeichnis Maildir, das ich mit BackinTime extern bzw. rsnapshot intern mitsichern kann.

In diesem Verzeichnis sind dann die im Mailclient angelegten Ordner als versteckte Unterverzeichnisse zu sehen – im Fall oben ein Verzeichnis LFB und ein Verzeichnis Schule. Hier liegen demnach die Mails samt Anhängen und entlasten auf diese Weise das .evolution Verzeichnis.

Eingebunden wird das IMAP Server Verzeichnis nur wenn benötigt, damit Evolution auch beim Erstellen von Indices nicht mehr Bauchlandungen hinlegt. Ein zusätzlich installierter Thunderbird darf dauernd hierauf zugreifen.