授权错误 SMTP + PAM-MySQL 无法进行身份验证

我创建了一个邮件服务器 Postfix 并配置身份验证以检查数据库设置 Postfixadmin.

我可以通过身份验证 Courier IMAP, 由于它可以通过哈希化密码正确认证,但我怀疑我的身份验证机制 SASL + PAM-MySQL SMTP 不能。

我得到了这些错误

/var/log/mail.log

:

pam_unix(smtp:auth): check pass; user unknown
Aug 22 03:23:08 omitted saslauthd[26402]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Aug 22 03:23:10 omitted saslauthd[26402]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
Aug 22 03:23:10 omitted saslauthd[26402]: do_auth : auth failure: [user=user@domain.com] [service=smtp] [realm=domain.com] [mech=pam] [reason=PAM auth error]

这是内容

/etc/pam.d/smtp

:

auth required pam_mysql.so user=postfixadmin passwd=omitted host=127.0.0.1 db=postfixadmin table=mailbox usercolumn=username passwdcolumn=password crypt=2
account sufficient pam_mysql.so user=postfixadmin passwd=omitted host=127.0.0.1 db=postfixadmin table=mailbox usercolumn=username passwdcolumn=password crypt=2

以下是密码加密的相应片段

/etc/postfixadmin/config.inc.php

:

// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// md5 = md5 sum of the password
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
// mysql_encrypt = useful for PAM integration
// authlib = support for courier-authlib style passwords
// dovecot:CRYPT-METHOD = use dovecotpw -s 'CRYPT-METHOD'. Example: dovecot:CRAM-MD5
$CONF['encrypt'] = 'mysql_encrypt';

但我的内容

/etc/postfix/sasl/smtp.conf

:

pwcheck_method: saslauthd
mech_list: plain login
log_level: 7
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfixadmin
sql_passwd: omitted
sql_database: postfixadmin
sql_select: select password from mailbox where username='%u@%r'

我试图使用哈希 MD5, 但 Courier 我不能。 所以从窗户里 ...
已邀请:

裸奔

赞同来自:

我的配置完全相同 (Postfix + Cyrus SASL 使用 saslauthd + PAM), 而且我也在它的设置上度过了时钟。 但知道它可以很好。

在我的情况下,我有与您相同的设置

/etc/pam.d/smtp

但不是在

/etc/postfix/sasl/smtp.conf

.

看起来你混合使用插件 SQL Cyrus (

auxprop_plugin: sql

) 通过 saslauthd 和 PAM mysql.

http://www.postfix.org/SASL_RE ... _comm
说如果要存储加密密码 (这似乎是如此 crypt = 2 在配置中 PAM), 然后你不能使用插件 Cyrus SASL sql.

你可以尝试 PAM. 要这样做,你只需要跟进

/etc/postfix/sasl/smtp.conf

pwcheck_method: saslauthd
mech_list: login plain
log_level: 4

您不需要数据库配置 / 此文件中的密码,因为

PAM

已经知道一切!

还要检查

/etc/default/saslautd

, 我有:

START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=1
OPTIONS="-c -r -m /var/spool/postfix/var/run/saslauthd"

检查你选择了

p



机制

变量并检查标志

选项

多变的。 通常你必须有更多 1 在

线程

多变的。 你可以像这样给它。 您不需要安装 «1», 像我的。

编辑

: 它似乎回应了一个非常古老的问题! 没关系,它将被提及 Google 他对建立的每个人都有用 SASL 从 PAM.

要回复问题请先登录注册