Postfix: 535 Authentication credentials invalid

Ich verwende Postfix, um per Relay E-Mails über Web.de zu verschicken.
Das klappte bisher auch problemlos, bis ich die Fehlermeldung bekam:

postfix/smtp[11477]: SASL authentication failed; server smtp.web.de[213.165.67.124] said: 535 Authentication credentials invalid

Nach einem Einloggen auf Web.de und dem Verschicken einer Mail an einen beliebigen Empfänger übers Webinterface, klappte auch, ohne Änderung an meiner Postfix-Konfiguration, wieder das Verschicken von E-Mails über Postfix.

Klingt komisch, ist aber so!

=================================
EDIT:
Es kommt noch schlimmer. Nachdem auch die Vorgehensweise von oben nicht mehr klappte, habe ich festgestellt, dass Web.de einfach so meinen POP3/IMAP-Zugang „sicherheitshalber“ deaktiviert hat. Dies hat Web.de in einer Mail angekündigt. Zum Reaktivieren muss man folgendes in der Weboberfläche durchführen:
https://hilfe.web.de/e-mail/einstellungen.html#pop3-imap

Postfix und TLS

Damit die TLS-Zertifikate der Gegenstellen akzeptiert werden, müssen die CA-Zertifikate bekannt sein.
Dazu wird in der Datei /etc/postfix/main.cf folgende Zeile eingefügt
smtp_tls_CApath = /etc/ssl/certs/

Damit die Zertifikate auch erkannt werden, müssen sie vorher gehasht werden:
c_rehash $(postconf -h smtp_tls_CApath)

Zum Schluss noch ein
service postfix restart

Da postfix unter Debian allerdings in einer chroot-Umgebung läuft, muss der smtp_tls_CApath vor dem postfix Start in den chroot-Ordner (/var/spool/postfix) kopiert werden. Dies geschieht am einfachsten, wenn man in der /etc/init.d/postfix folgendes abändert (ab Zeile 77):

#               # if we're using tls, then we need to add etc/ssl/certs/ca-certificates.crt.
#               if [ -f "/etc/ssl/certs/ca-certificates.crt" ]; then
#                   smtp_use_tls=$(postconf -h smtp_use_tls)
#                   smtp_enforce_tls=$(postconf -h smtp_enforce_tls)
#                   smtpd_use_tls=$(postconf -h smtpd_use_tls)
#                   smtpd_enforce_tls=$(postconf -h smtpd_use_tls)
#                   case :$smtp_use_tls:$smtp_enforce_tls:$smtpd_use_tls:$smtpd_enforce_tls: in
#                       *:yes:*)
#                           mkdir -p etc/ssl/certs
#                           cp /etc/ssl/certs/ca-certificates.crt etc/ssl/certs/
#                   esac
#               fi

                # if we're using CApath, we need to copy the whole directory
                ca_path=$(postconf -h smtp_tls_CApath)
                if [ "X$ca_path" != "X" ]; then
                        /usr/bin/c_rehash $(postconf -h smtp_tls_CApath) > /dev/null
                        # strip leading /
                        ca_path="${ca_path#/}"
                        # delete current copy
                        [ -d ${ca_path} ] && rm -rf ${ca_path}
                        mkdir -p ${ca_path}
                        if [ -d /${ca_path} ]; then
                                # copy hashes and dereference
                                cp -L /${ca_path}/*.0 ${ca_path}/
                                chmod -R a+rX ${ca_path}
                        fi
                fi

Quelle: http://bugs.debian.org/287795.

Postfix, Dovecot und virtuelle Domains (ohne SQL-Datenbank)

Meinen E-Mail-Server habe ich teilweise nach der ISP-Mail-Anleitung eingerichtet. Da mir aber die dort vorgeschlagene Einrichtung mittel mysql-Datenbank zu aufwendig erschien, habe ich es etwas abgewandelt.

Zu einer bestehenden Domain sollte eine weitere hinzukommen, die jedoch E-Mails nur weiterleitet (es soll aber auch möglich sein, E-Mails mit dieser Domain zu verschicken). Dazu wird in die Datei /etc/postfix/main.cf
folgendes eingefügt:

virtual_alias_domains = anderedomain.de
virtual_alias_maps = hash:/etc/postfix/virtual

Letztere Datei (/etc/postfix/virtual) hat dabei folgenden Inhalt, womit eine Weiterleitung auf  beispiel@example.org eingerichtet wird.

info@anderedomain.de     beispiel@example.org

Soweit so gut. Mails an info@anderedomain.de werden nun weitergeleitet an beispiel@example.org.

Nun soll es auch möglich sein, E-Mails unter dem Namen info@anderedomain.de zu verschicken. Da die Authentifizierung bei Postfix über SASL von Dovecot eingerichtet ist, und kein Linux-Systemnutzer für die E-Mail-Adresse eingerichtet werden soll, eine Datei mit einem ähnlichen Schema wie /etc/passwd angelegt.

/var/vmail/conf/benutzerdb:

info@anderedomain.de:{plain}passWORT

Für einen ersten Test sollte das ausreichen. Sicherer ist natürlich, nur den MD5-Hash des Passwortes zu speichern. Dieser lässt sich hier berechnen. Für obiges Passwort würde entsprechend die Datei dann so aussehen:
info@anderedomain.de:{MD5}30b9de8ee60962fec6006a1ac474b733

Die Passwortdatei muss nun noch Dovecot bekannt gemacht werden. In der Datei /etc/dovecot/dovecot.conf wird dazu folgendes eingetragen:

passdb passwd-file {
args = /var/vmail/conf/benutzerdb
}

Dadurch kann sich ein E-Mail-Client gegenüber dem Server authentifizieren, ohne dass ein Linux-Benutzer angelegt werden musste.