qmailとsmtp-authの環境で認証が上手くいかなくてハマりました。
主な構成は
netqmail 1.05 + qmail-smtpd-auth-0.31パッチ + checkpassword
それでBecky!の設定で、SMTP認証とLOGIN、PLAINにチェックいれて
試してみました。
そしたら
454 oops, unable to write pipe and I can't auth (#4.3.0)
というエラーがでて認証が正常にできていない模様。
ちなみにqmail-smtpdを起動していたコマンドは以下のとおりです。(/etc/rc.d/init.d/qmail内に記述)
tcpserver -HR -v -u `id -u qmaild` -g `id -g qmaild` -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd サーバーのFQDN \
/bin/checkpassword /bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd 3 &
色々調べてたのですが、どうもqmailと起動するスクリプトを修正する必要がある模様。
・qmailの設定
http://www.syns.net/2/2/index.html#auth上記サイトをみていたらtcpserverの-uや-gオプションの指定がqmaildのユーザーID
ではないことに気づきました。
ということで私の起動コマンドを
tcpserver -HR -v -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd サーバーのFQDN \
/bin/checkpassword /bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd 3 &
にしてroot権限で実行させたところ、正常に認証できました。
認証のファイル(この場合/etc/passwdとか/etc/shadow)をみに
いかなくてはいけないのでqmaildユーザーではなくrootで
起動ってことなんでしょうかね。
ということで、どうやらtcpserverの-uや-gオプションはqmaild
のままにして、 /bin/checkpasswordのパーミッションを
700から4755に変更することでも解決できるようです。
情報元は失念…。
この方法はsetuidを使用しているのでセキュリティ的にどうなんでしょうね。
いやぁ、そうとうハマっておりました。
でも解決策を講じる前にもたまに認証に成功してたのはなんだったんだろう。
*これらの解決方法以外にももっと良い方法があるがあるかも
しれませんので参考程度に。
[追記]
サーバーのFQDNを入れ忘れたときにも前述のエラーがでました。
とにかく起動しているコマンド(スクリプト)を見直すと吉です。
posted by webdev at 00:00|
Comment(0)
|
TrackBack(0)
|
Unix/Linux
|

|