2004/07/09

Postfix + Cyrus-SASL2 + PostgreSQL

PostfixでSMTP認証させてる. 今までは, MySQLだったんだけど,
Cyrus-saslのアップデートがあったので, PostgreSQLにした.

が....Cyrus-saslをpgsqlのオプションでコンパイルしたら, メールが送れなくなった.
認証に失敗してる. ということで, Postfixも再コンパイル.

でもだめ. あー, パスワードファイルがダメなんだね.
という事で, パスワードファイルsasldb2を削除して, saslpasswd2で作り直し.

何とかメールは送れるようになった.

が, /var/log/messagesが気持ち悪い事になってる.

Jul 9 00:xx:xx zzzzzz postfix/smtpd[3374]: SQL engine 'mysql' not supported
Jul 9 00:xx:xx zzzzzz postfix/smtpd[3374]: auxpropfunc error no mechanism available
Jul 9 00:xx:xx zzzzzz postfix/smtpd[3374]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql

何が原因? ググってみると, 情報発見.
http://www.irbs.net/internet/postfix/0312/0676.html

なになに, smtpd.confでsql_engine変数にpgsqlを指定してやればよいのね.
よっしゃー.

と思ったら, こんなこと言い出した.

Jul 9 00:xx:xx zzzzzz postfix/smtpd[3205]: sql_select option missing
Jul 9 00:xx:xx zzzzzz postfix/smtpd[3205]: auxpropfunc error no mechanism available
Jul 9 00:xx:xx zzzzzz postfix/smtpd[3205]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql

さらに, ググる. こんなの見つけました.
http://www.mail-archive.com/info-cyrus@lists.andrew.cmu.edu/msg18452.html

このページでは, imapで, cyrus+mysqlがうまく使えないわけね.
ちょっと違うけど, 参考になるはず.

ここでは, /etc/imapd.confを下記のようにしている.
sasl_pwcheck_method: saslauthd
sasl_mech_list: plain
sasl_sql_engine: mysql
sasl_sql_hostnames: localhost
sasl_sql_user: mail
sasl_sql_passwd: secret
sasl_sql_database: mail
sasl_sql_select: select password from accountuser where username = '%u'

と言う事は, smtpd.confに
sql_select: select password from accountuser where username = '%u'
を加えれば, いいのか????

Jul 9 00:xx:xx zzzzzz postfix/smtpd[3528]: sql auxprop plugin using pgsql engine

キタ━━━━━━(゜∀゜)━━━━━━ !!

ということで, 現在のsmtpd.confはこうなってます.

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: CRAM-MD5
sql_engine: pgsql
sql_select: select password from accountuser where username = '%u'

ほんとは, pwcheck_method: saslauthd したいんだけど,
mech_list: login plain しか使えないらしいのであきらめてる.
ここは, SMTP over SSLしかないか?

0 件のコメント: