ログメッセージがたくさん出すぎて、うざったいシリーズ、第3弾?!
今日は、openldapのslapdです。
slapdが、/var/log/messagesに、こんなログをたくさんだしてました。
Nov 1 11:52:45 SERVER slapd[17176]: OTP unavailable because can't read/write key database /etc/opiekeys: Permission denied
googleで検索したら、slapdの話ではなかったのでしたが、すぐ見つかりました。cyrus-sasl2が出しているそうです。
ネットで情報を探す以外の手段としては、とりあえず、こんな力技で探す方法もあります・・・(笑)
# grep -R "OTP unavailable" /usr/local/lib
・・・
Binary file /usr/local/lib/compat/pkg/libotp.so.2 matches
Binary file /usr/local/lib/sasl2/libotp.a matches
Binary file /usr/local/lib/sasl2/libotp.so matches
Binary file /usr/local/lib/sasl2/libotp.so.2 matches
Binary file /usr/local/lib/libsasl2.a matches
・・・
あとは、pkg_which /usr/local/lib/sasl2/libotp.so してみればcyrus-sasl2だと解る、というわけ。
とりあえず、ソースコードを確認してみました。
ports/security/cyrus-sasl2/work/cyrus-sasl-2.1.22/plugins/otp.c
static int opie_mech_avail(void *glob_context __attribute__((unused)),
sasl_server_params_t *sparams,
void **conn_context __attribute__((unused)))
{
const char *fname;
unsigned int len;
sparams->utils->getopt(sparams->utils->getopt_context,
"OTP", "opiekeys", &fname, &len);
if (!fname) fname = OPIE_KEYFILE;
if (access(fname, R_OK|W_OK) != 0) {
sparams->utils->log(NULL, SASL_LOG_ERR,
"OTP unavailable because "
"can't read/write key database %s: %m",
fname, errno);
return SASL_NOMECH;
}
return SASL_OK;
}
まあ、これは、眺めただけです(笑)。いや、なんか手当てしようとしても無駄かな、って瞬間的に思いました。
OTPってのは、One Time Passwordの略で、セキュリティ向上のための技術の一種なんですが・・・えーと、私たちは、OTPは使ってません。だからOTP関係の設定は、まったくしていません。する気にもなれません。
でも、cyrus-sasl2のOTPプラグインが、なんかしようとして、で、勝手にエラーだと、わめいているわけですね。なんか、またか!って感じで、cyrus-sasl2のプラグインの完成度って・・・って感じがしてしまいます。
解決方法は、とりあえず応急処置としては、libotp*を削除してしまうだけでもよさそうです。
# rm /usr/local/lib/sasl2/libotp*
(slapdを再起動しないと、反映されなかったみたいなので)
# /usr/local/etc/rc.d/slapd.sh restart
cyrus-sasl2のプラグインといえば、ずいぶん前に、gssapiなんとかってのがあって、kerberos関係のものらしいんですが、kerberosなんてものも使ってませんので、エラーがでてました。そのときも、
# rm /usr/local/lib/sasl2/libgssapi*
とか、やった記憶があります。
portsの、/usr/ports/security/cyrus-sasl2 でインストールするときに、
# make WITHOUT_GSSAPI=yes WITHOUT_OTP=yes
とやってビルドすれば、libgssapi*、libotp*はインストールされないようです。さっそく、pkgtools.confのMAKE_ARGSに追加しました。WITHOUT_GSSAPIは入れてあったのですが・・・
☆ ☆ ☆ ☆ ☆ ☆
今日、ようやく、すべてのLDAPサーバを、openldap-sasl-client-2.2.30 から、openldap-sasl-client-2.3.27 へアップデートしました。
2.2から2.3にするだけで、こんなに苦労するとは・・・
(苦労するだろうと思ってたから、ずーっとアップデートしなかったんですが)
slapd.confの書き方が微妙に違ってたりするのは、エラーメッセージが出るのでわかりました。
もう1つ、こんなメッセージがでてましたが、
bdb_db_open: Warning - No DB_CONFIG file found in directory /var/db/openldap-data: (2)
Expect poor performance for suffix dc=ほげ,dc=ほげ,・・・
/usr/local/etc/openldap/DB_CONFIG.example というのがあったので、これをコピーしました。
# cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG