[:de]löschbar1 – Randnotizen[:en]löschbar1[:]

[:de]
zurück zu Future Business Software || Einzelhandel || Small.biz


DNS
Wir wollen keine DNS-Server betreiben und möglichst schnell unseren Postfix in Betrieb nehmen, aber ein paar Voraussetzungen müssen jedenfalls erfüllt sein.
Bevor wir den Postfix überhaupt installieren, wollen wir einmal überprüfen, ob es für unsere domain einen MX-Eintrag gibt. Wir überprüfen das mit „dig +nocmd beispiel.com any +multiline +noall +answer“ oder kurz „dig beispiel.com +short“.
Sehen wir „10 mail.beispiel.com“ als Antwort, können wir mit der Insatallation von Postfix beginnen, sonst müssen wir in der DNS-Verwaltung zuerst einmal einen MX-Record anlegen.

Auf Domain Name System (Wikipedia) erhalten Sie einen Überblick. Wir benötigen eine MX-Eintrag und einen PTR-Record (Reverse DNS), damit z.B. „mail.“ in beide Richtungen aufgelöst werden kann d.h. IP-Adresse > DNS-Name und umgehrt.

mail.domain.de IN A 192.168.1.2
IN MX 10 mail.domain.de
2.1.168.192.in-addr.arpa IN PTR mail.domain.de

Installation von Webmin, Postfix und Dovecot
Installation von Webmin
Installation nach „Installing on Debian“ von http://www.webmin.com/deb.html
Fügen Sie
„deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib“ und eventuell auch gleich ‚deb http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse‘ bzw. die aktuellen Backports in die source.list hinzu.
Ich mache das mit „vim /etc/apt/source.list“, dann „i“ für den Insert-modus, die 2 Zeilen einfügen und mit „:“ in den Befehlsmodus zurück kehren, um mit „wq“ zu schreiben und vim zu beenden.
Dann genügt es den GPG Schüssel zu installieren
„wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc“
und Webmin zu installieren, mit
„apt-get update
apt-get install webmin“
Schon sollten Sie auf https://beispiel.com:10000/ ihr Webmin zur Verfügung haben. Ich finde Webmin für die Web-Administration recht praktisch. Auf eine nähere Beschreibung wird hier nicht eingegangen, da die Benutzeroberfläche selbsterklärend ist.

Installation von Postfix und Dovecot und deren Grundkonfiguration
Installation von Postfix und Grundkonfiguration
Zuerst sei erwähnt, dass unter Ubuntu zwar eine Installation und Konfiguration mittels eines einzigen Befehls „sudo apt-get install mail-stack-delivery“ möglich ist, allerdings kann ich mail-stack-delivery nicht empfehlen, wenn man keine Erfahrung mit Postfix und Dovecot hat, da die Konfiguration dadurch noch komplizierter und undurchschaubarer wird.
Mit dpkg -l ‚postfix*‘ bekommen sie die Möglichkeiten aufgelistet und wir installieren
„apt-get install postfix postfix-doc postfix-mysql“. Wenn Sie bei den Fragen der Eingabeaufforderung unsicher waren, können Sie die Konfiguration mit „dpkg-reconfigure postfix“ wiederholen und folgendes eingeben:
Internetseite
mail.example.com
Benutzername oder root
mail.example.com, localhost.localdomain, localhost
Nein
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
0
+
Alle
Sie können aber auch darauf verzichten, denn wir konfigurieren Postfix ohnehin noch ganz genau, Zeile für Zeile.
Jetzt ist es Zeit, auf zwei Dinge hinzuweisen. Erstens können Sie den Befehl „postconf“ zur Konfiguration aller postfix-Parameter benutzen, oder die Konfigurationsdatei direkt editieren. Zweitens finden Sie die „Postfix Configuration Parameters“ für die main.cf hier: http://www.postfix.org/postconf.5.html

Wir verwenden die Konfigurationsdatein und zwar in Webmin, wo sie jetzt schon schön aufgelistet sind. Doch bevor wir mit der Konfiguration beginnen, installieren wir auch gleich Dovecot, denn immerhin wollen wir beide ja zur Zusammenarbeit überreden.

Es gibt hier viele Einzelpakete, die man mit „apt-cache search dovecot gelistet bekommt.
Wir installieren „apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-managesieved dovecot-sieve dovecot-lmtpd dovecot-mysql ntpdate“.

In Webmin sehen wir, dass nach der Installation Postfix und Dovecot schon laufen. Wir wiedmen uns nun der Postfix Basis-Konfiguration. Mit Klick auf „Edit Config Files“ wird glich die „main.cf“ geöffnet, denn Webmin weiß schon, was jetzt kommt. 😉

„Hostname“ konfigurieren

Um den MX-Eintrag haben wir uns ja bereits gekümmert, nun wollen wir „myhostname“ und „mydomain“ betrachten und richtig setzen. Dazu starten wir in einem zweiten Terminal (remote) telnet mit „telnet mail.beispiel.com 25“
„220 mail.example.com ESMTP Ubuntu“ ist uns recht und wir beendendie Session mit „QUIT“.

Damit könnte man zufrieden sein, aber wir setzen jedenfalls „myhostname = mail.example.com“ und fragen den Postfix mit „postconf mydomain“.
„mydomain = localdomain“ ist uns nicht recht, daher setzen wir in der main.ct „mydomain = exempel.com“ und nach jedem Speicher, klicken wir in Webmin auf „reload configuration“.

Die „Final Destination“ konfigurieren
Damit ist gemeint, dass dieser Postfix-Server der endgültige Bestimmungsort ist. Postfix wird Nachrichten, für die er die „final destination“ ist, lokal weiter leiten. Was in $mydomain steht, weiß Postfix schon, also können wir schreiben „mydestination = $mydomain. In die main.cf chreiben wir „mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost“ oder
„mydestination =
$myhostname
$mydomain
localhost.$mydomain
localhost“
Denn Postfix liest jede Zeile die nikcht mit dem Kommentarzeichen #, aber mit Leerzeichen beginnt, als Fortsetzung der vorherigen Zeile. Natürlich können Sie statt „$mydomain“ auch „beispiel.com“ schreiben, Postfix ist das egal.
Alias setzten
Mit hash:/etc/aliases oder hash:/etc/postfix/aliases legen wir das Verzeichnis für die aliases fest.
Wir editieren die aliases und schreiben zum Beispiel:
root: irgendwer
Also key: Wert (Unix-Benutzer, Emailadresse, Liste von Benutzernamen).
Um die Emails an „root“ nach „irgenwer“ umzuleiten. Dabei ist der „:“ wichtig. Weitere alias einrichten, wie für Erika Musterman z.B:
erika: musterman
erika.musterman: musterman
#groups
irgendeine: irgendwer, musterman, nochwer
Damit gehen für der Benuter „musterman“ auch die Emails erika@beispiel.com, erika.musterman@beispiel.com an Musterman und es wird eine Kopie an die Gruppe „irgendeine“ und zwar an „irgendwer“ und „nochwer“ geschickt.
Danach muss man die Map wieder indizieren mit „hash:/etc/aliases „ damit die Aliases auch gefunden werden.
Allgemeine Netzwerkeinstellungen
IPv4 wird ohnehin schon immer unterstützt, aber seit Postfix 2.2 wird auch IPv6 unterstützt. Momentan, also am 19. Sept. 2015, ist übrigens die Version 3.0.1 aktuell.
Standardeinstellung in der master.ct ist übrigens „inet_protocols = IPv4“, aber mit inet_protocols = all“ werden beide Protokolle verwendet. Für die Netzwerkschnittstellen ist der Standardwert „inet_interfaces = all“ und damit lauscht der Postfix an allen Netzwerkschinttstellen.
Am besten bindet man den Postfix-smtp-Client mit „smtp_bind_address = xx.xx.xx.xx“ an die IP, für die der MX-Eintrag besteht, damit sich andere Mailserver nicht beschweren und uns abweisen. Für v6 verwendet man „smtp_bind_address6 = xxxx:xxx:x:x:x:x:x:x“
Mailserver, die Mailclients von allen IP-Adressen gestatten Mails zu versenden, werden auch Open Relay genannt, weil ein unbekannter Mailclient E-Mails an Empfänger, die nicht am eigenen Mailserver angemeldet sind, verenden dürfen. Spam und Viren sind die Folge. Die Standardeinstellung von Postfix verhindert aber schon den Missbrauch als Open Relay, denn Postfix vertraut nur den IP-Adressen seiner Netzwerkschinttstellen.
Für einige statische IP-Adressen kann man Postfix mittels „mynetworks_styls“ (für ganze IP-Klassen, subnets oder host) oder „mynetworks“ (für individuelle IPs) festlegen, wer Emails versenden darf. Für dynamische IPs ist aber eine SMTP-Authentifizierung erforderlich. Standardmäßig ist Postfix mit „mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128“ für den localhost eingestestellt. Hier sei angemerkt, dass es oft sinnvoll ist den eigenen Serviceprovider als Relay-Host zu definieren, da viele Mailserver mit Unbekannten nicht kommunizieren. Dazu benötigt man die Ip des Mialservers und legt dann fest „relayhost = [relayhost.isp.example.com]. Möglich wäre hier auch:
relayhost = $mydomain
relayhost = [gateway.example.com]
relayhost = uucphost
relayhost = [an.ip.add.ress]

Open Relay
Als offenes Relay wird ein Mailserver bezeichnet, der Mails weiterleitet, obwohl weder Absender noch Empfänger von ihm selbst gehostet werden.
Beispiel: Der Mailserver „mail.grossefirma.de“ soll Mails für die Domäne „grossefirma.de“ verarbeiten.
Erlaubt sollten sein:
Mails an z.B. „info@grossefirma.de“
Mails von z.B. „info@grossefirma.de“
aber nicht:
Mails von „kaufmich@werbefritze-xyz.de“ an „user@irgendwo-anders.de“
Mails mit gefälschten Absenderadressen aus der Domain „grossefirma.de“, die über diesen Server verschickt werden
Diese falsch konfigurierten Mailserver werden meist nach wenigen Minuten Onlinezeit automatisiert gefunden und dann von Spammern für den Versand ihrer Massenmails verwendet.
Abgesehen von der Belästigung der Empfänger dieser Werbebotschaften können für den Betreiber des offenen Relays extreme Kosten durch den generierten Traffic entstehen. Zudem wird das offene Relay schnell in sogenannten Blacklists eingetragen, was dazu führt, dass normale Mails von diesem Server ebenfalls bei vielen Empfängern nicht mehr akzeptiert werden.
Wie kann ich bei meinem Mailserver ein offenes Relay verhindern?
Bei eigentlich jeder Mailserversoftware sind Regelmechanismen vorhanden, die ein unautorisiertes Versenden von Mails verhindern können.
Grundsätzlich:
Mailversand ohne Authentifizierung wenn überhaupt nur von firmeninternen IP-Adressen zulassen
Authentifizierungstechniken wie SMTP-Auth (zur Not auch POP-before-SMTP) beim Versand von Mails erzwingen
Annahme von Mails ohne Authentifizierung nur für eigene Domains erlauben

Testen
Jetzt werden wir die Basiskonfiguration eimal kurz testen, bevor wir uns Dovecot zuwenden.
Wir verwenden dazu telnet, verbinden uns mit Postfix und verschicken eine E-Mail.
$ telnet mail.beispiel.com 25
Trying xx.xx.xx.xx…
Connected to mail.beispiel.com.
Escape character is ‚^]‘.
220 mail.beispiel.com ESMTP Postfix (Ubuntu)
HELO client.beispiel.com
250 mail.example.com
MAIL FROM:
250 2.1.0 Ok
RCPT TO:
454 4.7.1 : Relay access denied
RCPT TO:
250 2.1.5 Ok
DATA
Subject: Sending an email using telnet
354 End data with .
Hallo anderer client oder root,
blablabla
Tschüß
.
250 2.0.0 Ok: queued as 06473162319
QUIT
221.2.0.0 Bye
Die Verbindung hat funktioniert und mit „ESMTP Postfix (Ubuntu)“ hat er uns gesagt, dass er auch ESMTP kann. Die Ausgabe entspicht der Zeile „smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)“ in der main.cf und kann natürlich abgeändert werden.
Mit dem MAIL FROM: war Postfix einverstanden, aber er wollte mich von einer unbekannten Adresse aus, nicht an einen fremden Server senden lassen, sondern nur lokal, was nach der zweiten Eingabe von RCPT TO: auch gelang. Nach Data kann man die Daten einfügen einen Betreff kann man wir mit SUBJECT: noch einbauen und um die Eingabe zu beenden, schreiben wir einen Punkt in eine neue Zeile. Das war’s noch nicht ganz, denn jetzt sollten sie den Postfix stoppen, oder dafür sorgen, dass er nicht als open relay läuft!
Testen Sie das auf http://www.mailradar.com/openrelay/ oder http://die-ip-adresse.de/open-relay-test.php bzw. den Email-Server auf http://mxtoolbox.com/SuperTool.aspx
Wir wollen uns jetzt keine weiteren „550 relay not permitted“ holen und weder das RFC 2822 https://www.ietf.org/rfc/rfc2822.txt noch das RFC 3463 https://tools.ietf.org/html/rfc3463 genauer ansehen, obwohl unser Postfix ESMTP beherrscht, sondern wir sehen uns jetzt Dovecot näher an, da sowieso Dovecot die Authentifizierung übernehmen soll.
Installation von Dovecot und Grundkonfiguration
Installieren sie apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-managesieved dovecot-sieve dovecot-mysql
Wer lieber PostgreSQL verwenden will, installiert dovecot-pgsql statt dovecot-mysql, sonst ist kaum ein Unterschied in den Einstellungen und Webmin unterstützt auch beide Datenbanken.

daistschluss

Dort liest man unter home_mailbox (default: empty)
Optional pathname of a mailbox file relative to a local(8) user’s home directory.
Specify a pathname ending in „/“ for qmail-style delivery.
The precedence of local(8) delivery features from high to low is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,fallback_transport_maps, fallback_transport and luser_relay.
Examples:
home_mailbox = Mailbox
home_mailbox = Maildir/
mbox, von englisch „mailbox“ („Postfach“), ist ein Dateiformat, mit dem mehrere E-Mails zusammen in einer Datei gespeichert werden. Das Format ist meist von Unix bekannt.
Maildir ist eine Verzeichnisstruktur zum Speichern und Verwalten von E-Mails. Jede E-Mail wird dabei als eigene Datei in fest definierten Verzeichnissen repräsentiert. Das Speicherkonzept von Maildir kommt ohne die Verwendung komplizierter Locking-Mechanismen aus, da sich das Betriebssystem auf Grund der Datenstruktur komplett um diese Aufgabe kümmern kann.
Ich bevorzuge hier Mailbox und setze es mit „postconf -e ‚home_mailbox = Mailbox’“.
SMTP-Authentifizierung

SMTP-AUTH ermöglicht einem E-Mail-Client, sich mittels einer Authentifizierungsmethode (SASL) zu identifizieren. Sie sollten Transport Layer Security (TLS) benutzen, um den Authentifizierungsvorgang zu verschlüsseln. Sobald die Authentifizierung durchgeführt worden ist, erlaubt der SMTP-Server dem Client, E-Mails weiterzuleiten.
Um Postfix für SMTP-AUTH mittels Dovecot SASL zu konfigurieren, gehe ich nun mittels Webin auf „Postfix Mail Server“, klicke auf „edit config files“ und füge in die main.cf ein:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

Zertifikat für TLS
Jetzt bräuchten wir ein Zertifikat. Siehe dazu https://help.ubuntu.com/lts/serverguide/certificates-and-security.html
TLS-(SSL-)Verschlüsselung
Wer einen MTA außerhalb des LANs betreibt, sollte TLS-Verschlüsselung (früher SSL genannt) anbieten. Dafür benötigt man ein zweiteiliges SSL-/TLS-Zertifikat. Eine einfache Möglichkeit, an ein Dummy-Zertifikat zu kommen, bietet das Paket ssl-cert, das hier benutzt wird. Wer den Server nicht nur privat nutzt, sollte sich aber auf jeden Fall ein richtiges, von einer respektierten Zertifizierungsstelle signiertes, Zertifikat besorgen. Uns genügt das mit Ubuntu mitgelieferte Dummy-Zertifikat und wir fügen in die main.cf ein:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Sobald Sie ein Zertifikat haben, konfigurieren Sie Postfix, um TLS-Verschlüsselung für eingehende sowie ausgehende E-Mail zur Verfügung zu stellen:
sudo postconf -e ’smtp_tls_security_level = may‘
sudo postconf -e ’smtpd_tls_security_level = may‘
sudo postconf -e ’smtp_tls_note_starttls_offer = yes‘
sudo postconf -e ’smtpd_tls_key_file = /etc/ssl/private/server.key‘
sudo postconf -e ’smtpd_tls_cert_file = /etc/ssl/certs/server.crt‘
sudo postconf -e ’smtpd_tls_loglevel = 1′
sudo postconf -e ’smtpd_tls_received_header = yes‘
sudo postconf -e ‚myhostname = mail.beispiel.de‘
Falls Sie Ihre eigene Zertifizierungsstelle (»Certificate Authority«, CA) zum Signieren des Zertifikats verwenden, geben Sie das ein:
sudo postconf -e ’smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem‘
Jetzt wollen wir den Postix einmal neu starten oder in Webmin mit „Reload Configuration“ die neue Konfiguration laden.
SASL konfigurieren
Da wir Dovecot und Dovecot SASL benutzen wollen, müssen wir nun zuerst einmal dovecot-common installieren:
apt-get install dovecot-common
Dovecot wird automatisch gestrartet und scheint auch schon in Webmin auf. Unter „Edit config files“ wählen wir nun die „10-master.conf“ aus und ergänzen auf:
service auth {
# auth_socket_path points to this userdb socket by default. It’s typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone’s userdb lookups.
unix_listener auth-userdb {
#mode = 0600
#user =
#group =
}

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
Für Outlook Clients sollte „auth_mechanisms = plain „ noch auf „auth_mechanisms = plain login“ geändert werden.
Dovecot würde sich jetzt beim Start beschweren, dass er kein Netzwerkprotokoll findet, daher installieren wir ihn gleich fertig mit
apt-get install dovecot-imapd dovecot-pop3d
und starten ihn dann.
Dovecot einrichten
Da wir im Postfix „home_mailbox = Maildir/“ gesetzt haben, wird nun in der dovecot.conf auch „mail_location = maildir:/home/%u/Maildir“ gesetzt.
Achtung:
If !include conf.d/*.conf is uncommented in /etc/dovecot/dovecot.conf, it is necessary to set mail_location in /etc/dovecot/conf.d/10-mail.conf or comment the line out. 10-mail.conf will override the mail_location in dovecot.conf. If you choose to set the mail_location in 10-mail.conf, you have to change it to: mail_location = maildir:~/Maildir
dovecot -n zeigt uns die aktuelle Konfiguration an, nachdem wir sie mit „Aply configuration“ in Webmin aktualisiert haben.

It’s a good idea to pre-create the Maildir for future users:
sudo maildirmake.dovecot /etc/skel/Maildir
sudo maildirmake.dovecot /etc/skel/Maildir/.Drafts
sudo maildirmake.dovecot /etc/skel/Maildir/.Sent
sudo maildirmake.dovecot /etc/skel/Maildir/.Trash
sudo maildirmake.dovecot /etc/skel/Maildir/.Templates
Then, for an existing user:
sudo cp -r /etc/skel/Maildir /home/myuser/
sudo chown -R myuser:usergroup /home/myuser/Maildir
sudo chmod -R 700 /home/myuser/Maildir

Troubleshooting Postfix http://www.postfix-book.com/debugging.html

How to setup simple but yet powerful mail server using Postfix, Dovecot and Sasl in Debian https://www.rosehosting.com/blog/how-to-setup-simple-but-yet-powerful-mail-server-using-postfix-dovecot-and-sasl-in-debian-6-squeeze/

Der perfekte Mail-Server http://wiki.nefarius.at/linux/der_perfekte_mail-server

Postfix

Postfix Standard Configuration Examples http://www.postfix.org/STANDARD_CONFIGURATION_README.html#stand_alone

Dovecot
Mail Delivery Agent https://de.wikipedia.org/wiki/Mail_Delivery_Agent

Secure IMAP server http://www.dovecot.org/
Authentication Mechanisms http://wiki.dovecot.org/Authentication/Mechanisms

SASL
ssl/tls 993
starttls 143

Simple Authentication and Security Layer https://de.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer
Postfix SASL Howto http://www.postfix.org/SASL_README.html

Postfix and Dovecot SASL http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL

Simple Authentication and Security Layer (SASL) http://www.ietf.org/rfc/rfc4422.txt
Simple Authentication and Security Layer (SASL) https://tools.ietf.org/html/rfc4422

GNU SASL Library – Libgsasl http://josefsson.org/gsasl/
Cyrus SASL library, version 2 http://www.cyrusimap.org/docs/cyrus-sasl/2.1.25/
GNU Simple Authentication and Security Layer – Zusammenfassung https://savannah.gnu.org/projects/gsasl/

Simple Authentication and Security Layer (SASL) Mechanisms http://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml

Transport Layer Security https://de.wikipedia.org/wiki/Transport_Layer_Security
OpenSSL https://de.wikipedia.org/wiki/OpenSSL
GnuTLS https://de.wikipedia.org/wiki/GnuTLS
LibreSSL https://de.wikipedia.org/wiki/LibreSSL
STARTTLS https://de.wikipedia.org/wiki/STARTTLS

SASL authentication using LDAP database http://blog.toxa.de/archives/493
SMTP-Authentifizierung mit Postfix (Debian) https://www.df.eu/at/service/df-faq/cloudserver/anleitungen/smtp-authentifizierung-mit-postfix-debian/
SASL http://wiki2.dovecot.org/Sasl
SASL stands for „Simple Authentication and Security Layer“. SASL itself is nothing more than a list of requirements for authentication mechanisms and protocols to be SASL-compatible as described in RFC 4422. IMAP, POP3 and SMTP protocols all have support for SASL.

Many people confuse SASL with one specific SASL implementation: the Cyrus SASL library. Dovecot has its own SASL implementation which may at some point be separated from Dovecot itself to „compete“ against Cyrus SASL library in server side….

Dovecot SSL configuration http://wiki.dovecot.org/SSL/DovecotConfiguration
# Make sure you have imaps and pop3s if you want to support them.
# It’s also possible to only use STARTTLS/STLS commands in imap/pop3 port.
protocols = imap pop3 imaps pop3s

Dovecot SSL configuration http://wiki2.dovecot.org/SSL/DovecotConfiguration
Postfix/dovecot SASL and SSL/TLS guide https://wiki.centos.org/HowTos/postfix_sasl
SSL vs TLS vs STARTTLS https://www.fastmail.com/help/technical/ssltlsstarttls.html
Is STARTTLS more safe than TLS/SSL? http://serverfault.com/questions/523804/is-starttls-more-safe-than-tls-ssl

postfix howtos https://wiki.centos.org/HowTos/postfix
Postfix and Dovecot on Ubuntu Dapper Drake http://www.adomas.org/2006/08/postfix-dovecot/

Switching to Dovecot SASL for SMTP AUTH
Introduction
When I first built up the configurations for vPostMaster I was struggling getting the SMTP server to authenticate directly against the database via Cyrus SASL. Since then, Dovecot has added a SASL implementation, and it’s much easier to deal with

We recently had a customer that needed to have non-PLAIN SMTP logins supported, and the Cyrus SASL rimap method just doesn’t work for that.

NOTE: For versions of vPostMaster 1.48 and after, and vPostMaster Pro 2.24 and after, you can use this recipe to enable non-PLAIN login mechanisms once your users have reset their passwords (getting their plain-text password in the database).

Recipe
To switch over to using Dovecot SASL, which directly authenticates against the database, you can do the following:

Verify that your Postfix supports Dovecot SASL:
postconf -a
Do not go any further if „dovecot“ is not printed above.
In /etc/postfix/main.cf, add the following lines:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
And in the dovecot.conf (/etc/dovecot.conf, /etc/dovecot/dovecot.conf) there is a „auth default“ section. Add the „socket listen“ section so the end result is something like the following:
auth default {
mechanisms = plain cram-md5 ntlm
passdb sql {
args = /etc/dovecot/dovecot-vpostmaster.conf
}
userdb sql {
args = /etc/dovecot/dovecot-vpostmaster.conf
}
user = root
socket listen {
client {
# Assuming the default Postfix $queue_directory setting
path = /var/spool/postfix/private/auth
mode = 0660
# Assuming the default Postfix user and group
user = postfix
group = postfix
}
}
}
Note that the „mechianisms“ list above lists „cram-md5“ and „ntlm“. Do not make that change until you have plain-text passwords in the database.
Restart dovecot and postfix
At this point, you should no longer be using the „saslauthd“ authentication mechanism, instead you should be authenticating directly against the database via Dovecot SASL.

Non-PLAIN Logins
To get non-plain logins working there is one further thing that needs to be done… This is that the database must contain unencrypted copies of all the passwords.

The next version of vPostMaster switches over to storing passwords in plain-text in the database. I’ve gone back and forth on this, as I don’t

believe that storing plain-text passwords is a good thing, but in order to not require plain-text for authentication the server needs an unencrypted copy of the password.

With the 1.48 version of vPostMaster, there will be a plain-text password field. This can be disabled, but is enabled by default. Any accounts set up or with the password changed after this version upgrade will have the plain-text password in the database.

Once all your users have their plain-text passwords in the database, you will then be able to switch dovecot over to using the plain-text password instead of the encrypted version by changing the „dovecot-vpostmaster.conf“ file so that it reads similar to:

driver = pgsql
connect = host=localhost dbname=vpostmaster user=imapserver password=X
default_pass_scheme = PLAIN
password_query = SELECT users.plaintextpasswd AS password FROM users
WHERE users.name = ‚%n‘ AND users.domainsname = ‚%d‘
AND users.active = ‚t‘ AND (SELECT active FROM domains
WHERE name = ‚%d‘) = ‚t‘
user_query = SELECT userdir AS home, 1001 AS uid, 1001 AS gid
FROM users WHERE users.name = ‚%n‘ AND users.domainsname = ‚%d‘
AND users.active = ‚t‘ AND (SELECT active FROM domains
WHERE name = ‚%d‘) = ‚t‘
NOTE: The „password_query“ and „user_query“ lines need to be a single very long line.

Then change the „mechanisms“ in the dovecot.conf, restart dovecot, and you should be in business.

Back to top
© 2015 tummy.com, ltd., All Rights Reserved · Privacy · Terms[:en]DNS
Wir wollen keine DNS-Server betreiben und möglichst schnell unseren Postfix in Betrieb nehemen, aber ein paar Voraussetzungen müssen jedenfalls erfüllt sein.
Bevor wir den Postfix überhaupt installieren, wollen wir einmal überprüfen, ob es für unsere domain einen MX-Eintrag gibt. Wir überprüfen das mit „dig +nocmd beispiel.com any +multiline +noall +answer“ oder kurz „dig beispiel.com +short“.
Sehen wir „10 mail.beispiel.com“ als Antwort, können wir mit der Insatallation von Postfix beginnen, sonst müssen wir in der DNS-Verwaltung zuerst einmal einen MX-Record anlegen.

Auf Domain Name System (Wikipedia) erhalten Sie einen Überblick. Wir benötigen eine MX-Eintrag und einen PTR-Record (Reverse DNS), damit z.B. „mail.“ in beide Richtungen aufgelöst werden kann d.h. IP-Adresse > DNS-Name und umgehrt.

mail.domain.de IN A 192.168.1.2
IN MX 10 mail.domain.de
2.1.168.192.in-addr.arpa IN PTR mail.domain.de

Installation von Webmin, Postfix und Dovecot
Installation von Webmin
Installation nach „Installing on Debian“ von http://www.webmin.com/deb.html
Fügen Sie
„deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib“ und eventuell auch gleich ‚deb http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse‘ bzw. die aktuellen Backports in die source.list hinzu.
Ich mache das mit „vim /etc/apt/source.list“, dann „i“ für den Insert-modus, die 2 Zeilen einfügen und mit „:“ in den Befehlsmodus zurück kehren, um mit „wq“ zu schreiben und vim zu beenden.
Dann genügt es den GPG Schüssel zu installieren
„wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc“
und Webmin zu installieren, mit
„apt-get update
apt-get install webmin“
Schon sollten Sie auf https://beispiel.com:10000/ ihr Webmin zur Verfügung haben. Ich finde Webmin für die Web-Administration recht praktisch. Auf eine nähere Beschreibung wird hier nicht eingegangen, da die Benutzeroberfläche selbsterklärend ist.

Installation von Postfix und Dovecot und deren Grundkonfiguration
Installation von Postfix und Grundkonfiguration
Zuerst sei erwähnt, dass unter Ubuntu zwar eine Installation und Konfiguration mittels eines einzigen Befehls „sudo apt-get install mail-stack-delivery“ möglich ist, allerdings kann ich mail-stack-delivery nicht empfehlen, wenn man keine Erfahrung mit Postfix und Dovecot hat, da die Konfiguration dadurch noch komplizierter und undurchschaubarer wird.
Mit dpkg -l ‚postfix*‘ bekommen sie die Möglichkeiten aufgelistet und wir installieren
„apt-get install postfix postfix-doc postfix-mysql“. Wenn Sie bei den Fragen der Eingabeaufforderung unsicher waren, können Sie die Konfiguration mit „dpkg-reconfigure postfix“ wiederholen und folgendes eingeben:
Internetseite
mail.example.com
Benutzername oder root
mail.example.com, localhost.localdomain, localhost
Nein
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
0
+
Alle
Sie können aber auch darauf verzichten, denn wir konfigurieren Postfix ohnehin noch ganz genau, Zeile für Zeile.
Jetzt ist es Zeit, auf zwei Dinge hinzuweisen. Erstens können Sie den Befehl „postconf“ zur Konfiguration aller postfix-Parameter benutzen, oder die Konfigurationsdatei direkt editieren. Zweitens finden Sie die „Postfix Configuration Parameters“ für die main.cf hier: http://www.postfix.org/postconf.5.html

Wir verwenden die Konfigurationsdatein und zwar in Webmin, wo sie jetzt schon schön aufgelistet sind. Doch bevor wir mit der Konfiguration beginnen, installieren wir auch gleich Dovecot, denn immerhin wollen wir beide ja zur Zusammenarbeit überreden.

Es gibt hier viele Einzelpakete, die man mit „apt-cache search dovecot gelistet bekommt.
Wir installieren „apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-managesieved dovecot-sieve dovecot-lmtpd dovecot-mysql ntpdate“.

In Webmin sehen wir, dass nach der Installation Postfix und Dovecot schon laufen. Wir wiedmen uns nun der Postfix Basis-Konfiguration. Mit Klick auf „Edit Config Files“ wird glich die „main.cf“ geöffnet, denn Webmin weiß schon, was jetzt kommt. 😉

„Hostname“ konfigurieren

Um den MX-Eintrag haben wir uns ja bereits gekümmert, nun wollen wir „myhostname“ und „mydomain“ betrachten und richtig setzen. Dazu starten wir in einem zweiten Terminal (remote) telnet mit „telnet mail.beispiel.com 25“
„220 mail.example.com ESMTP Ubuntu“ ist uns recht und wir beendendie Session mit „QUIT“.

Damit könnte man zufrieden sein, aber wir setzen jedenfalls „myhostname = mail.example.com“ und fragen den Postfix mit „postconf mydomain“.
„mydomain = localdomain“ ist uns nicht recht, daher setzen wir in der main.ct „mydomain = exempel.com“ und nach jedem Speicher, klicken wir in Webmin auf „reload configuration“.

Die „Final Destination“ konfigurieren
Damit ist gemeint, dass dieser Postfix-Server der endgültige Bestimmungsort ist. Postfix wird Nachrichten, für die er die „final destination“ ist, lokal weiter leiten. Was in $mydomain steht, weiß Postfix schon, also können wir schreiben „mydestination = $mydomain. In die main.cf chreiben wir „mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost“ oder
„mydestination =
$myhostname
$mydomain
localhost.$mydomain
localhost“
Denn Postfix liest jede Zeile die nikcht mit dem Kommentarzeichen #, aber mit Leerzeichen beginnt, als Fortsetzung der vorherigen Zeile. Natürlich können Sie statt „$mydomain“ auch „beispiel.com“ schreiben, Postfix ist das egal.
Alias setzten
Mit hash:/etc/aliases oder hash:/etc/postfix/aliases legen wir das Verzeichnis für die aliases fest.
Wir editieren die aliases und schreiben zum Beispiel:
root: irgendwer
Also key: Wert (Unix-Benutzer, Emailadresse, Liste von Benutzernamen).
Um die Emails an „root“ nach „irgenwer“ umzuleiten. Dabei ist der „:“ wichtig. Weitere alias einrichten, wie für Erika Musterman z.B:
erika: musterman
erika.musterman: musterman
#groups
irgendeine: irgendwer, musterman, nochwer
Damit gehen für der Benuter „musterman“ auch die Emails erika@beispiel.com, erika.musterman@beispiel.com an Musterman und es wird eine Kopie an die Gruppe „irgendeine“ und zwar an „irgendwer“ und „nochwer“ geschickt.
Danach muss man die Map wieder indizieren mit „hash:/etc/aliases „ damit die Aliases auch gefunden werden.
Allgemeine Netzwerkeinstellungen
IPv4 wird ohnehin schon immer unterstützt, aber seit Postfix 2.2 wird auch IPv6 unterstützt. Momentan, also am 19. Sept. 2015, ist übrigens die Version 3.0.1 aktuell.
Standardeinstellung in der master.ct ist übrigens „inet_protocols = IPv4“, aber mit inet_protocols = all“ werden beide Protokolle verwendet. Für die Netzwerkschnittstellen ist der Standardwert „inet_interfaces = all“ und damit lauscht der Postfix an allen Netzwerkschinttstellen.
Am besten bindet man den Postfix-smtp-Client mit „smtp_bind_address = xx.xx.xx.xx“ an die IP, für die der MX-Eintrag besteht, damit sich andere Mailserver nicht beschweren und uns abweisen. Für v6 verwendet man „smtp_bind_address6 = xxxx:xxx:x:x:x:x:x:x“
Mailserver, die Mailclients von allen IP-Adressen gestatten Mails zu versenden, werden auch Open Relay genannt, weil ein unbekannter Mailclient E-Mails an Empfänger, die nicht am eigenen Mailserver angemeldet sind, verenden dürfen. Spam und Viren sind die Folge. Die Standardeinstellung von Postfix verhindert aber schon den Missbrauch als Open Relay, denn Postfix vertraut nur den IP-Adressen seiner Netzwerkschinttstellen.
Für einige statische IP-Adressen kann man Postfix mittels „mynetworks_styls“ (für ganze IP-Klassen, subnets oder host) oder „mynetworks“ (für individuelle IPs) festlegen, wer Emails versenden darf. Für dynamische IPs ist aber eine SMTP-Authentifizierung erforderlich. Standardmäßig ist Postfix mit „mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128“ für den localhost eingestestellt. Hier sei angemerkt, dass es oft sinnvoll ist den eigenen Serviceprovider als Relay-Host zu definieren, da viele Mailserver mit Unbekannten nicht kommunizieren. Dazu benötigt man die Ip des Mialservers und legt dann fest „relayhost = [relayhost.isp.example.com]. Möglich wäre hier auch:
relayhost = $mydomain
relayhost = [gateway.example.com]
relayhost = uucphost
relayhost = [an.ip.add.ress]

Open Relay
Als offenes Relay wird ein Mailserver bezeichnet, der Mails weiterleitet, obwohl weder Absender noch Empfänger von ihm selbst gehostet werden.
Beispiel: Der Mailserver „mail.grossefirma.de“ soll Mails für die Domäne „grossefirma.de“ verarbeiten.
Erlaubt sollten sein:
Mails an z.B. „info@grossefirma.de“
Mails von z.B. „info@grossefirma.de“
aber nicht:
Mails von „kaufmich@werbefritze-xyz.de“ an „user@irgendwo-anders.de“
Mails mit gefälschten Absenderadressen aus der Domain „grossefirma.de“, die über diesen Server verschickt werden
Diese falsch konfigurierten Mailserver werden meist nach wenigen Minuten Onlinezeit automatisiert gefunden und dann von Spammern für den Versand ihrer Massenmails verwendet.
Abgesehen von der Belästigung der Empfänger dieser Werbebotschaften können für den Betreiber des offenen Relays extreme Kosten durch den generierten Traffic entstehen. Zudem wird das offene Relay schnell in sogenannten Blacklists eingetragen, was dazu führt, dass normale Mails von diesem Server ebenfalls bei vielen Empfängern nicht mehr akzeptiert werden.
Wie kann ich bei meinem Mailserver ein offenes Relay verhindern?
Bei eigentlich jeder Mailserversoftware sind Regelmechanismen vorhanden, die ein unautorisiertes Versenden von Mails verhindern können.
Grundsätzlich:
Mailversand ohne Authentifizierung wenn überhaupt nur von firmeninternen IP-Adressen zulassen
Authentifizierungstechniken wie SMTP-Auth (zur Not auch POP-before-SMTP) beim Versand von Mails erzwingen
Annahme von Mails ohne Authentifizierung nur für eigene Domains erlauben

Testen
Jetzt werden wir die Basiskonfiguration eimal kurz testen, bevor wir uns Dovecot zuwenden.
Wir verwenden dazu telnet, verbinden uns mit Postfix und verschicken eine E-Mail.
$ telnet mail.beispiel.com 25
Trying xx.xx.xx.xx…
Connected to mail.beispiel.com.
Escape character is ‚^]‘.
220 mail.beispiel.com ESMTP Postfix (Ubuntu)
HELO client.beispiel.com
250 mail.example.com
MAIL FROM:
250 2.1.0 Ok
RCPT TO:
454 4.7.1 : Relay access denied
RCPT TO:
250 2.1.5 Ok
DATA
Subject: Sending an email using telnet
354 End data with .
Hallo anderer client oder root,
blablabla
Tschüß
.
250 2.0.0 Ok: queued as 06473162319
QUIT
221.2.0.0 Bye
Die Verbindung hat funktioniert und mit „ESMTP Postfix (Ubuntu)“ hat er uns gesagt, dass er auch ESMTP kann. Die Ausgabe entspicht der Zeile „smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)“ in der main.cf und kann natürlich abgeändert werden.
Mit dem MAIL FROM: war Postfix einverstanden, aber er wollte mich von einer unbekannten Adresse aus, nicht an einen fremden Server senden lassen, sondern nur lokal, was nach der zweiten Eingabe von RCPT TO: auch gelang. Nach Data kann man die Daten einfügen einen Betreff kann man wir mit SUBJECT: noch einbauen und um die Eingabe zu beenden, schreiben wir einen Punkt in eine neue Zeile. Das war’s noch nicht ganz, denn jetzt sollten sie den Postfix stoppen, oder dafür sorgen, dass er nicht als open relay läuft!
Testen Sie das auf http://www.mailradar.com/openrelay/ oder http://die-ip-adresse.de/open-relay-test.php bzw. den Email-Server auf http://mxtoolbox.com/SuperTool.aspx
Wir wollen uns jetzt keine weiteren „550 relay not permitted“ holen und weder das RFC 2822 https://www.ietf.org/rfc/rfc2822.txt noch das RFC 3463 https://tools.ietf.org/html/rfc3463 genauer ansehen, obwohl unser Postfix ESMTP beherrscht, sondern wir sehen uns jetzt Dovecot näher an, da sowieso Dovecot die Authentifizierung übernehmen soll.
Installation von Dovecot und Grundkonfiguration
Installieren sie apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-managesieved dovecot-sieve dovecot-mysql
Wer lieber PostgreSQL verwenden will, installiert dovecot-pgsql statt dovecot-mysql, sonst ist kaum ein Unterschied in den Einstellungen und Webmin unterstützt auch beide Datenbanken.

daistschluss

Dort liest man unter home_mailbox (default: empty)
Optional pathname of a mailbox file relative to a local(8) user’s home directory.
Specify a pathname ending in „/“ for qmail-style delivery.
The precedence of local(8) delivery features from high to low is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory,fallback_transport_maps, fallback_transport and luser_relay.
Examples:
home_mailbox = Mailbox
home_mailbox = Maildir/
mbox, von englisch „mailbox“ („Postfach“), ist ein Dateiformat, mit dem mehrere E-Mails zusammen in einer Datei gespeichert werden. Das Format ist meist von Unix bekannt.
Maildir ist eine Verzeichnisstruktur zum Speichern und Verwalten von E-Mails. Jede E-Mail wird dabei als eigene Datei in fest definierten Verzeichnissen repräsentiert. Das Speicherkonzept von Maildir kommt ohne die Verwendung komplizierter Locking-Mechanismen aus, da sich das Betriebssystem auf Grund der Datenstruktur komplett um diese Aufgabe kümmern kann.
Ich bevorzuge hier Mailbox und setze es mit „postconf -e ‚home_mailbox = Mailbox’“.
SMTP-Authentifizierung

SMTP-AUTH ermöglicht einem E-Mail-Client, sich mittels einer Authentifizierungsmethode (SASL) zu identifizieren. Sie sollten Transport Layer Security (TLS) benutzen, um den Authentifizierungsvorgang zu verschlüsseln. Sobald die Authentifizierung durchgeführt worden ist, erlaubt der SMTP-Server dem Client, E-Mails weiterzuleiten.
Um Postfix für SMTP-AUTH mittels Dovecot SASL zu konfigurieren, gehe ich nun mittels Webin auf „Postfix Mail Server“, klicke auf „edit config files“ und füge in die main.cf ein:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

Zertifikat für TLS
Jetzt bräuchten wir ein Zertifikat. Siehe dazu https://help.ubuntu.com/lts/serverguide/certificates-and-security.html
TLS-(SSL-)Verschlüsselung
Wer einen MTA außerhalb des LANs betreibt, sollte TLS-Verschlüsselung (früher SSL genannt) anbieten. Dafür benötigt man ein zweiteiliges SSL-/TLS-Zertifikat. Eine einfache Möglichkeit, an ein Dummy-Zertifikat zu kommen, bietet das Paket ssl-cert, das hier benutzt wird. Wer den Server nicht nur privat nutzt, sollte sich aber auf jeden Fall ein richtiges, von einer respektierten Zertifizierungsstelle signiertes, Zertifikat besorgen. Uns genügt das mit Ubuntu mitgelieferte Dummy-Zertifikat und wir fügen in die main.cf ein:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Sobald Sie ein Zertifikat haben, konfigurieren Sie Postfix, um TLS-Verschlüsselung für eingehende sowie ausgehende E-Mail zur Verfügung zu stellen:
sudo postconf -e ’smtp_tls_security_level = may‘
sudo postconf -e ’smtpd_tls_security_level = may‘
sudo postconf -e ’smtp_tls_note_starttls_offer = yes‘
sudo postconf -e ’smtpd_tls_key_file = /etc/ssl/private/server.key‘
sudo postconf -e ’smtpd_tls_cert_file = /etc/ssl/certs/server.crt‘
sudo postconf -e ’smtpd_tls_loglevel = 1′
sudo postconf -e ’smtpd_tls_received_header = yes‘
sudo postconf -e ‚myhostname = mail.beispiel.de‘
Falls Sie Ihre eigene Zertifizierungsstelle (»Certificate Authority«, CA) zum Signieren des Zertifikats verwenden, geben Sie das ein:
sudo postconf -e ’smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem‘
Jetzt wollen wir den Postix einmal neu starten oder in Webmin mit „Reload Configuration“ die neue Konfiguration laden.
SASL konfigurieren
Da wir Dovecot und Dovecot SASL benutzen wollen, müssen wir nun zuerst einmal dovecot-common installieren:
apt-get install dovecot-common
Dovecot wird automatisch gestrartet und scheint auch schon in Webmin auf. Unter „Edit config files“ wählen wir nun die „10-master.conf“ aus und ergänzen auf:
service auth {
# auth_socket_path points to this userdb socket by default. It’s typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone’s userdb lookups.
unix_listener auth-userdb {
#mode = 0600
#user =
#group =
}

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
Für Outlook Clients sollte „auth_mechanisms = plain „ noch auf „auth_mechanisms = plain login“ geändert werden.
Dovecot würde sich jetzt beim Start beschweren, dass er kein Netzwerkprotokoll findet, daher installieren wir ihn gleich fertig mit
apt-get install dovecot-imapd dovecot-pop3d
und starten ihn dann.
Dovecot einrichten
Da wir im Postfix „home_mailbox = Maildir/“ gesetzt haben, wird nun in der dovecot.conf auch „mail_location = maildir:/home/%u/Maildir“ gesetzt.
Achtung:
If !include conf.d/*.conf is uncommented in /etc/dovecot/dovecot.conf, it is necessary to set mail_location in /etc/dovecot/conf.d/10-mail.conf or comment the line out. 10-mail.conf will override the mail_location in dovecot.conf. If you choose to set the mail_location in 10-mail.conf, you have to change it to: mail_location = maildir:~/Maildir
dovecot -n zeigt uns die aktuelle Konfiguration an, nachdem wir sie mit „Aply configuration“ in Webmin aktualisiert haben.

It’s a good idea to pre-create the Maildir for future users:
sudo maildirmake.dovecot /etc/skel/Maildir
sudo maildirmake.dovecot /etc/skel/Maildir/.Drafts
sudo maildirmake.dovecot /etc/skel/Maildir/.Sent
sudo maildirmake.dovecot /etc/skel/Maildir/.Trash
sudo maildirmake.dovecot /etc/skel/Maildir/.Templates
Then, for an existing user:
sudo cp -r /etc/skel/Maildir /home/myuser/
sudo chown -R myuser:usergroup /home/myuser/Maildir
sudo chmod -R 700 /home/myuser/Maildir

Troubleshooting Postfix http://www.postfix-book.com/debugging.html

How to setup simple but yet powerful mail server using Postfix, Dovecot and Sasl in Debian https://www.rosehosting.com/blog/how-to-setup-simple-but-yet-powerful-mail-server-using-postfix-dovecot-and-sasl-in-debian-6-squeeze/

Der perfekte Mail-Server http://wiki.nefarius.at/linux/der_perfekte_mail-server

Postfix

Postfix Standard Configuration Examples http://www.postfix.org/STANDARD_CONFIGURATION_README.html#stand_alone

Dovecot
Mail Delivery Agent https://de.wikipedia.org/wiki/Mail_Delivery_Agent

Secure IMAP server http://www.dovecot.org/
Authentication Mechanisms http://wiki.dovecot.org/Authentication/Mechanisms

SASL
ssl/tls 993
starttls 143

Simple Authentication and Security Layer https://de.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer
Postfix SASL Howto http://www.postfix.org/SASL_README.html

Postfix and Dovecot SASL http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL

Simple Authentication and Security Layer (SASL) http://www.ietf.org/rfc/rfc4422.txt
Simple Authentication and Security Layer (SASL) https://tools.ietf.org/html/rfc4422

GNU SASL Library – Libgsasl http://josefsson.org/gsasl/
Cyrus SASL library, version 2 http://www.cyrusimap.org/docs/cyrus-sasl/2.1.25/
GNU Simple Authentication and Security Layer – Zusammenfassung https://savannah.gnu.org/projects/gsasl/

Simple Authentication and Security Layer (SASL) Mechanisms http://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml

Transport Layer Security https://de.wikipedia.org/wiki/Transport_Layer_Security
OpenSSL https://de.wikipedia.org/wiki/OpenSSL
GnuTLS https://de.wikipedia.org/wiki/GnuTLS
LibreSSL https://de.wikipedia.org/wiki/LibreSSL
STARTTLS https://de.wikipedia.org/wiki/STARTTLS

SASL authentication using LDAP database http://blog.toxa.de/archives/493
SMTP-Authentifizierung mit Postfix (Debian) https://www.df.eu/at/service/df-faq/cloudserver/anleitungen/smtp-authentifizierung-mit-postfix-debian/
SASL http://wiki2.dovecot.org/Sasl
SASL stands for „Simple Authentication and Security Layer“. SASL itself is nothing more than a list of requirements for authentication mechanisms and protocols to be SASL-compatible as described in RFC 4422. IMAP, POP3 and SMTP protocols all have support for SASL.

Many people confuse SASL with one specific SASL implementation: the Cyrus SASL library. Dovecot has its own SASL implementation which may at some point be separated from Dovecot itself to „compete“ against Cyrus SASL library in server side….

Dovecot SSL configuration http://wiki.dovecot.org/SSL/DovecotConfiguration
# Make sure you have imaps and pop3s if you want to support them.
# It’s also possible to only use STARTTLS/STLS commands in imap/pop3 port.
protocols = imap pop3 imaps pop3s

Dovecot SSL configuration http://wiki2.dovecot.org/SSL/DovecotConfiguration
Postfix/dovecot SASL and SSL/TLS guide https://wiki.centos.org/HowTos/postfix_sasl
SSL vs TLS vs STARTTLS https://www.fastmail.com/help/technical/ssltlsstarttls.html
Is STARTTLS more safe than TLS/SSL? http://serverfault.com/questions/523804/is-starttls-more-safe-than-tls-ssl

postfix howtos https://wiki.centos.org/HowTos/postfix
Postfix and Dovecot on Ubuntu Dapper Drake http://www.adomas.org/2006/08/postfix-dovecot/

Switching to Dovecot SASL for SMTP AUTH
Introduction
When I first built up the configurations for vPostMaster I was struggling getting the SMTP server to authenticate directly against the database via Cyrus SASL. Since then, Dovecot has added a SASL implementation, and it’s much easier to deal with

We recently had a customer that needed to have non-PLAIN SMTP logins supported, and the Cyrus SASL rimap method just doesn’t work for that.

NOTE: For versions of vPostMaster 1.48 and after, and vPostMaster Pro 2.24 and after, you can use this recipe to enable non-PLAIN login mechanisms once your users have reset their passwords (getting their plain-text password in the database).

Recipe
To switch over to using Dovecot SASL, which directly authenticates against the database, you can do the following:

Verify that your Postfix supports Dovecot SASL:
postconf -a
Do not go any further if „dovecot“ is not printed above.
In /etc/postfix/main.cf, add the following lines:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
And in the dovecot.conf (/etc/dovecot.conf, /etc/dovecot/dovecot.conf) there is a „auth default“ section. Add the „socket listen“ section so the end result is something like the following:
auth default {
mechanisms = plain cram-md5 ntlm
passdb sql {
args = /etc/dovecot/dovecot-vpostmaster.conf
}
userdb sql {
args = /etc/dovecot/dovecot-vpostmaster.conf
}
user = root
socket listen {
client {
# Assuming the default Postfix $queue_directory setting
path = /var/spool/postfix/private/auth
mode = 0660
# Assuming the default Postfix user and group
user = postfix
group = postfix
}
}
}
Note that the „mechianisms“ list above lists „cram-md5“ and „ntlm“. Do not make that change until you have plain-text passwords in the database.
Restart dovecot and postfix
At this point, you should no longer be using the „saslauthd“ authentication mechanism, instead you should be authenticating directly against the database via Dovecot SASL.

Non-PLAIN Logins
To get non-plain logins working there is one further thing that needs to be done… This is that the database must contain unencrypted copies of all the passwords.

The next version of vPostMaster switches over to storing passwords in plain-text in the database. I’ve gone back and forth on this, as I don’t

believe that storing plain-text passwords is a good thing, but in order to not require plain-text for authentication the server needs an unencrypted copy of the password.

With the 1.48 version of vPostMaster, there will be a plain-text password field. This can be disabled, but is enabled by default. Any accounts set up or with the password changed after this version upgrade will have the plain-text password in the database.

Once all your users have their plain-text passwords in the database, you will then be able to switch dovecot over to using the plain-text password instead of the encrypted version by changing the „dovecot-vpostmaster.conf“ file so that it reads similar to:

driver = pgsql
connect = host=localhost dbname=vpostmaster user=imapserver password=X
default_pass_scheme = PLAIN
password_query = SELECT users.plaintextpasswd AS password FROM users
WHERE users.name = ‚%n‘ AND users.domainsname = ‚%d‘
AND users.active = ‚t‘ AND (SELECT active FROM domains
WHERE name = ‚%d‘) = ‚t‘
user_query = SELECT userdir AS home, 1001 AS uid, 1001 AS gid
FROM users WHERE users.name = ‚%n‘ AND users.domainsname = ‚%d‘
AND users.active = ‚t‘ AND (SELECT active FROM domains
WHERE name = ‚%d‘) = ‚t‘
NOTE: The „password_query“ and „user_query“ lines need to be a single very long line.

Then change the „mechanisms“ in the dovecot.conf, restart dovecot, and you should be in business.

Back to top
© 2015 tummy.com, ltd., All Rights Reserved · Privacy · Terms[:]

Notizen zu Open Source, Linux, Informatik, Physiologie, Dadaichmuss, Umfragen, Satire, außergewöhnlichen Begebenheiten, Weltgeschehen, Lifestyle, Tai Chi …