Bez*_*oso 5 smtp postfix saslauthd pam
我正在使用 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]
Run Code Online (Sandbox Code Playgroud)
以下是内容/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
Run Code Online (Sandbox Code Playgroud)
以下是密码加密的相关片段/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';
Run Code Online (Sandbox Code Playgroud)
这是我的内容/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'
Run Code Online (Sandbox Code Playgroud)
我尝试使用 MD5 哈希,但 Courier 会失败。所以那是窗外......
我的配置与您完全相同(Postfix + Cyrus SASL 使用 saslauthd + PAM),而且我也花了几个小时来配置它。但要知道它工作得很好。
就我而言,我的设置与您相同,/etc/pam.d/smtp
但在/etc/postfix/sasl/smtp.conf
.
看来您正在将 SQL Cyrus 插件(auxprop_plugin: sql)与 saslauthd 和 PAM mysql 混合使用。
Postfix 文档说,如果您想存储加密密码(自从您在 PAM 配置中设置“crypt=2”以来似乎就是这种情况),那么您不能使用 Cyrus SASL sql 插件。
您可以尝试仅使用 PAM。为此,您只需要遵循/etc/postfix/sasl/smtp.conf
pwcheck_method: saslauthd
mech_list: login plain
log_level: 4
Run Code Online (Sandbox Code Playgroud)
您不需要在此文件中进行任何数据库/密码配置,因为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"
Run Code Online (Sandbox Code Playgroud)
检查您在MECHANISMS变量中选择了pam ,并检查OPTIONS变量中的标志。通常, THREADS变量中的值应该大于 1 。你可以让它这样。你不需要像我一样设置“1”。
编辑:看来我回答了一个非常古老的问题!没关系,这将被 Google 引用,并且可能对任何使用 PAM 设置 SASL 的人有用。
归档时间: |
|
查看次数: |
6590 次 |
最近记录: |