web-dev-qa-db-ja.com

SMTP認証の失敗+ PAM-MySQLは認証できません

Postfixを使用してメールサーバーを構築し、Postfixadminを使用してデータベース設定と照合するための認証を設定しています。

ハッシュ化されたパスワードに対して適切に認証できるため、Courier IMAPを介して認証できますが、SASL + PAM-MySQLSMTP認証メカニズムでは認証できないと思われます。

/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: [[email protected]] [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が失敗しました。だからそれは窓の外です...

5
Bez Hermoso

私はあなたとまったく同じ設定を持っています(saslauthd + PAMを使用したPostfix + Cyrus SASL)、そしてそれを設定するのにも何時間も費やしました。しかし、それが完全に機能することを知ってください。

私の場合、/etc/pam.d/smtpにはあなたと同じ設定がありますが、/etc/postfix/sasl/smtp.confにはありません。

SQL Cyrusプラグイン(auxprop_plugin:sql)とsaslauthdおよびPAMmysqlの使用を混合しているようです。

Postfixドキュメント 暗号化されたパスワードを保存したい場合(PAM構成で「crypt = 2」を設定したためそうです)、Cyrus SASLsqlプラグインを使用できないと書かれています。

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"

[〜#〜]メカニズム[〜#〜]変数でpamを選択したことを確認し、[〜#〜] options [〜#〜]変数。通常、[〜#〜] threads [〜#〜]変数には複数が必要です。このようにすることができます。私のように「1」を設定する必要はありません。

[〜#〜]編集[〜#〜]:非常に古い質問に答えたようです!これはGoogleによって参照され、PAMを使用してSASLを設定するすべての人に役立つ可能性があります。

4
Fox