Erweiterung des Debian-Mailserver3-Howto

Das neueste Howto im Hetzner-Wiki  für einen Debian-Mailserver mit Postfix, Cyrus, Spamassassin usw. für virtuelle Domains ist zwar für sich schon sehr gut, hat aber einen entscheidenden Nachteil: Der Benutzer muss sich zu seiner Mailadresse und dem Passwort noch einen User-Namen merken.

Schöner wäre es, wenn man sich sowohl mit Username als auch mit einer dem Konto zugeordneten Mail-Adresse authentifizieren kann. Ich habe mich mal hingesetzt und dies erstmal fürs  smtp-auth am Postfix konfiguiert. 

1.) Als erstes erstellt man in der Datenbank eine View, in der Mailadressen und Passwort sowie Cyrus-User und Passwort gegeneinander aufgetragen werden:

CREATE VIEW emailpasswd AS (SELECT a.username AS alias, a.password FROM accountuser a) UNION (SELECT a.alias AS alias, b.password FROM virtual AS a and accountuser AS b WHERE a.username = b.username);

2.) Danach stellt man die Auth-Methode von Postfix um. Dazu löscht man den Symlink /etc/pam.d/smtp auf /etc/pam.d/smtp und kopiert /etc/pam.d/imap auf /etc/pam.d/smtp. Das ist vorerst nötig, damit Cyrus weiterhin korrekt authetifiziert, Postfix aber die soeben erstellte View benutzt. Sobald Cyrus auch umgestellt ist, kann man die lokale Kopie der Datei

rm /etc/pam.d/smtp
cp /etc/pam.d/imap /etc/pam.d/smtp

3.) Nun kann man /etc/pam.d/smtp so ändern, daß die neue View in der MySQL-Datenbank genutzt wird:

auth required pam_mysql.so user=<dbuser> passwd=<dbpasswd> host=<dbhost> db=<maildb> table=emailpasswd usercolumn=alias passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

account sufficient pam_mysql.so user=<dbuser> passwd=<dbpasswd> host=<dbhost> db=<maildb> table=emailpasswd usercolumn=alias passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

4.) Jetzt noch schnell den Startparameter in /etc/default/saslauthd vom SASLAuthD angepasst, so daß der Realm bei der Authentifizierungsanfrage nicht abgeschnitten wird. Der zusätliche Parameter -r schafft da Abhilfe.

OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"

5.) Alle beteiligten Dämonen noch schnell neu starten, das wars!

/etc/init.d/saslauthd restart
/etc/init.d/postfix restar

Als nächstes muss Cyrus an die veränderten Gegebenheiten angepasst werden, so lange das noch nicht geschehen ist, sollte man sich weiterhin nur mit Cyrus-user und Passwort anmelden. Nicht alle Mail-Programme unterstützen unterschiedliche Logins für IMAP/POP und SMTP.

Zusätzliche Informationen