http://www3.irishblue.net/hatena/command.txtの通り作業しました。
最初にBerkeleyDB.4.7をインストールしているのはcyrus-saslのconfigure時に、
configure: WARNING: Disabling SASL authentication database support
という警告が出るためです。
一部冗長的な部分もありますが、念のためと考えて実行しました。
解決方法をご教示ください。
PostfixによるSMTPサーバの構築(CentOS標準版編)
ちょっと、勘違いがあるように思えます。
SMTP AUTH の認証として、SASL の PLAIN、LOGIN メカニズムを提供したい、というのが目的ですよね。それが、smtp.conf で記述している内容ですよね。
# vi /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
これは、SMTP AUTH で使う SASL の認証メカニズムとして、plain と login を使い、実際に送られてきたユーザ名、パスワードのチェックを saslauthd にやらせます、ということになります。
で、saslauthd の役割は、実際にユーザ名とパスワードが一致しているかをチェックすることで、saslauthd が何でチェックするか、というのが選べて、
# saslauthd -v
saslauthd 2.1.23
authentication mechanisms: getpwent kerberos5 rimap shadow
「getpwent」「kerberos5」「rimap」「shadow」の 4 種類が使えますよ、と言っています。
つまり、SMTP AUTH の中で「提供する」メカニズムと、そのバックエンドにある saslauthd が「利用する」メカニズムが、ごちゃ混ぜになっているような気がします。
SASL として提供するメカニズムとしては、一番シンプルな plain や login がありますが、
saslauthd(8): sasl authentication server - Linux man page
上記の saslauthd の manpage には saslauthd が利用する認証メカニズム(上記ページの Authentication Mechanisms)には、
があります。ここには、plain や login は出てきません。saslauthd 自体がどうやってパスワードを確認するかは、SASL のメカニズムを使う訳ではありません。
この中で一番汎用的なのが pam で、saslauthd が pam を使えるようになっていれば、pam の設定次第で、実際には OS の /etc/passwd & /etc/shadow を使ったり、LDAP を使ったり、ということが可能ですが、残念ながら pam が使えないようですので、OS のアカウントを saslauthd に使わせるには、shadow になると思います。
手元で PLAIN/LOGIN が使える saslauthd を調べてみると -a pam で起動されていました。
質問者様の環境でしたら、saslauthd -a shadow で起動してみてはいかがでしょうか。
または、pam_appl.h のような pam 系の開発ライブラリを導入した状態で saslauthd を
configure / make し直してみると -a pam による PLAIN/LOGIN が使えるようになるかもしれません。
ありがとうございます。-a pam はunknown authentication mechanism、-a shadowはエラー出ませんでしたがsaslauthd -vでloginやplainは表示されませんでした。何か足りないのかな?ということで、テスト機にOSをフルインストールして試してみます。
PostfixによるSMTPサーバの構築(CentOS標準版編)
ちょっと、勘違いがあるように思えます。
SMTP AUTH の認証として、SASL の PLAIN、LOGIN メカニズムを提供したい、というのが目的ですよね。それが、smtp.conf で記述している内容ですよね。
# vi /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
これは、SMTP AUTH で使う SASL の認証メカニズムとして、plain と login を使い、実際に送られてきたユーザ名、パスワードのチェックを saslauthd にやらせます、ということになります。
で、saslauthd の役割は、実際にユーザ名とパスワードが一致しているかをチェックすることで、saslauthd が何でチェックするか、というのが選べて、
# saslauthd -v
saslauthd 2.1.23
authentication mechanisms: getpwent kerberos5 rimap shadow
「getpwent」「kerberos5」「rimap」「shadow」の 4 種類が使えますよ、と言っています。
つまり、SMTP AUTH の中で「提供する」メカニズムと、そのバックエンドにある saslauthd が「利用する」メカニズムが、ごちゃ混ぜになっているような気がします。
SASL として提供するメカニズムとしては、一番シンプルな plain や login がありますが、
saslauthd(8): sasl authentication server - Linux man page
上記の saslauthd の manpage には saslauthd が利用する認証メカニズム(上記ページの Authentication Mechanisms)には、
があります。ここには、plain や login は出てきません。saslauthd 自体がどうやってパスワードを確認するかは、SASL のメカニズムを使う訳ではありません。
この中で一番汎用的なのが pam で、saslauthd が pam を使えるようになっていれば、pam の設定次第で、実際には OS の /etc/passwd & /etc/shadow を使ったり、LDAP を使ったり、ということが可能ですが、残念ながら pam が使えないようですので、OS のアカウントを saslauthd に使わせるには、shadow になると思います。
フルインストールしてみました。結果は同じでした。JULYさんがおっしゃる通りで勘違いしまくりでした。
# saslauthd -v
saslauthd 2.1.22
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
こんな感じになりました!ご回答ありがとうございます。
フルインストールしてみました。結果は同じでした。JULYさんがおっしゃる通りで勘違いしまくりでした。
# saslauthd -v
saslauthd 2.1.22
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
こんな感じになりました!ご回答ありがとうございます。