Mailversand über Postfix mit saslauthd und MySQL

#1
Hallo,
ich habe mich gerade neu angemeldet, in der Hoffnung, dass mir hier jemand weiterhelfen kann.

Ich bin dabei, einen Mailserver auf einem Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-37-generic x86_64) mit Postfix und Courier aufzusetzen. Alle Anmeldungen sollen per MySQL geprüft werden. Der Empfang von Mails funktioniert tadellos, das Lesen per IMAP ebenfalls. Aber der Versand will nicht. Google hat mir schon etliche Hinweise geben wollen, aber nichts davon löst mein Problem.

In den Logs findet man folgendes:
==> /var/log/auth.log <==
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin Parse the username testuser@[domain]
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin try and connect to a host
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin trying to open db 'mailserver' on host '127.0.0.1'
==> /var/log/mysql/mysql.log <==
150519 10:16:18 185 Connect mxadmin@localhost on
184 Connect mxadmin@localhost on mailserver
==> /var/log/auth.log <==
May 19 10:16:18 mail postfix/smtpd[11178]: begin transaction
==> /var/log/mysql/mysql.log <==
184 Query START TRANSACTION
==> /var/log/auth.log <==
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin create statement from userPassword testuser [domain]
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin doing query select password FROM users where email='testuser@[domain]';
==> /var/log/mysql/mysql.log <==
184 Query select password FROM users where email='testuser@[domain]'
==> /var/log/auth.log <==
May 19 10:16:18 mail postfix/smtpd[11178]: commit transaction
==> /var/log/mysql/mysql.log <==
184 Query COMMIT
==> /var/log/auth.log <==
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin Parse the username testuser@[domain]
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin try and connect to a host
May 19 10:16:18 mail postfix/smtpd[11178]: sql plugin trying to open db 'mailserver' on host '127.0.0.1'
==> /var/log/mysql/mysql.log <==
186 Connect mxadmin@localhost on mailserver
==> /var/log/auth.log <==
May 19 10:16:18 mail saslauthd[10688]: pam_unix(smtp:auth): check pass; user unknown
==> /var/log/mysql/mysql.log <==
186 Quit
184 Quit
185 Init DB mailserver
185 Query SELECT email, password, "", 5000, 5000, "/mail/virtmail", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", "", "" FROM users WHERE email = 'testuser@[domain]'
==> /var/log/auth.log <==
May 19 10:16:18 mail saslauthd[10688]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
==> /var/log/mail.log <==
May 19 10:16:18 mail imapd: LOGIN, user=testuser@[domain], ip=[::ffff:192.168.20.143], port=[50399], protocol=IMAP
==> /var/log/auth.log <==
May 19 10:16:20 mail saslauthd[10688]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
May 19 10:16:20 mail saslauthd[10688]: do_auth : auth failure: ] [service=smtp] [realm=[domain]] [mech=pam] [reason=PAM auth error]
==> /var/log/mail.log <==
May 19 10:16:20 mail postfix/smtpd[11178]: warning: SASL authentication failure: Password verification failed
May 19 10:16:20 mail postfix/smtpd[11178]: warning: unknown[192.168.20.143]: SASL PLAIN authentication failed: authentication failure
May 19 10:16:22 mail postfix/smtpd[11178]: warning: unknown[192.168.20.143]: SASL LOGIN authentication failed: authentication failure

Der User "testuser@domain" existiert definitiv in der Datenbank, sonst könnte er sich nicht per IMAP seine Mails anschauen.

Wäre super, wenn mir jemand einen Tipp geben könnte.

Vielen Dank im Voraus
-Lunatic

Hier meine Konfig-Dateien:
-------------------------------------------------------
/etc/postfix/main.cf
config_directory = /etc/postfix
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
delay_warning_time = 24h
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550
maximal_queue_lifetime=2d
bounce_queue_lifetime=2d
queue_run_delay = 500s
minimal_backoff_time=500s
maximal_backoff_time=4000s
myhostname = [hostname]
sender_canonical_maps=hash:/etc/postfix/sender_canonical
recipient_canonical_maps=hash:/etc/postfix/recipient_canonical
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtp_sasl_auth_enable = no
myorigin = /etc/mailname
mydestination =
relayhost =
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql_relay_recipients.cf
mynetworks = 127.0.0.0/8 192.168.200.0/24
mailbox_size_limit = 0
message_size_limit = 0
virtual_mailbox_limit = 0
smtpd_recipient_limit = 5000
recipient_delimiter =
inet_interfaces = all
inet_protocols = ipv4
transport_maps = mysql:/etc/postfix/mysql_transport_maps.cf
virtual_mailbox_base = /mail/virtmail
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_sender_domain,
reject_invalid_hostname,
reject_unknown_recipient_domain,
reject_unauth_destination,
reject_invalid_hostname,
check_sender_access hash:/etc/postfix/blocked_senders,
check_client_access hash:/etc/postfix/whitelisted_senders,
permit
broken_sasl_auth_clients = yes
smtpd_helo_required = yes
disable_vrfy_command = yes
header_checks = regexp:/etc/postfix/header_checks
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_pipelining
-------------------------------------------------------
/etc/postfix/master.cf

smtp inet n - - - - smtpd
-o smtpd_sasl_auth_enable=yes
pickup unix n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=virtmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
-------------------------------------------------------
/etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd ### habe auch schon auxprop ausprobiert
auxprop_plugin: sql
mech_list: plain login
allow_plaintext: true
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mxadmin
sql_passwd: [Passwort]
sql_database: mailserver
sql_select: select password FROM users where email='%u@%r'
log_level: 7
-------------------------------------------------------
/etc/default/saslauthd
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -r -m /var/spool/postfix/var/run/saslauthd"
-------------------------------------------------------
 
#2
Und was ist jetzt an warning: SASL authentication failure: Password verification failed undeutlich? smtpd_sasl_auth_enable = yes wäre schon mal ein Anfang. Ich würde das übrigens nicht (mehr) mit Courier, sondern mit Dovecot machen.
 
#3
Die Fehlermeldung an sich verstehe ich schon, ich verstehe nur nicht, warum sie kommt. Es wird in der DB nach dem richtigen Usernamen gefragt (machnmal gibt es ja das Problem, dass der realm nicht übergeben wird).
smtpd_sasl_auth_enable habe ich in der master.cf stehen.
Überhaupt habe ich genau dieses Setup vor einigen Jahren unter Debian 6 erfolreich eingerichtet, jetzt will ich es eben auf Ubuntu 14 migrieren, daher will ich bei Courier bleiben. Der Empfang der Mails und das Abholen der Mails klappen ja auch wie unter Debian erfolgreich, aber wieso will sasl bei gleicher Konfig jetzt nicht?
 
#4
Ich vermute mal ganz stark, dass der saslauthd unter Ubuntu 14 anders läuft als unser Debian 6. Zumindest hatte ich schon arge Probleme von debian 5 auf wheezy (frag mich jetzt aber nicht, wo der Fehler im Detail war). Ich kann nachher nochmal die Config raussuchen.
 

Werbung

Top