このブログは、日々頭の中に蓄積されては薄れていく技術情報を書き留めておく為のものです。
Linuxエンジニア日記
スポンサーサイト
-----------  CATEGORY: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
ページトップへ
LDAPセッション過多、そしてローカルアカウント認証の謎
2008-12-01-Mon  CATEGORY: LDAP
最近LDAPのサーバでnetstatを叩いたらなんとセッション数が1000を超えていた。

そんな大規模システムでもないのに何故??
確かにクライアント側では諸事情でnscdは動かしていないがいくらなんでも多過ぎじゃ??

ありえないセッション数に調査を開始。

サーバ上でtcpdumpを叩いてLDAPの通信を眺めていると、どうやらwebサーバのhttpd、
mailサーバのsmtpd、さらにはcrondまでもがLDAPサーバにユーザ問合せに来ている。

OSのアカウントしかLDAP認証に対応させていないのに何故だ!?

通信に来るタイミングを見ていると、どうやら親プロセスが子プロセスをfork()する度に、
立ち上げユーザの情報取得の為にnss_ldapライブラリが通信に来てやがりました。

で、ここでさらに疑問が発生。

上記の問題のデーモンの立ち上げユーザは全てroot、もしくは専用ユーザとなっていて
それらはLDAPに入れていない。nsswitch.confではローカルアカウントを先に見に行く
ようにしているのでローカルでアカウントが見つかればLDAPサーバに問合せに来ないはず。

nsswitch.conf

passwd: files ldap
shadow: files ldap
group: files ldap

ローカルにアカウントがあるのに、サーバにも問い合わせが来る原因はnss_ldapっぽい。
こいつが使用されるようになるとget()系のコールの一部がnss_ldapにリンカされてしまい、
それらが呼び出される度にnss_ldapが動き出してサーバへ問合せに来てしまうのだ。

では回避策は?
nss_ldapは/etc/ldap.confを見ているのでldap.confで対応出来ないか?
と思い調べたらあっさり発見。予想通りldap.confで回避可能だった。

以下のパラメータにLDAPに問合せに来て欲しくないユーザを列挙すればいいだけ。
ちなみにこのパラメータ自体デフォルトでは存在していないので追記しました。

/etc/ldap.conf

nss_initgroups_ignoreusers root,・・・,・・・

再びサーバ上でtcpdump。
あれだけ溢れていたLDAPの通信が全く来なくなりました。
(もちろんLDAPに対応させたユーザの問い合わせは普通に来ます)

セッション数も激減。

以上で一件落着。

LDAP Super ExpertLDAP Super Expert
(2006/04/11)
編集部

商品詳細を見る
OpenLDAP ver2.3の新機能などについて詳しく書かれている。またいくつかのミドルウェア連携の他、OpenSSH鍵認証LDAP化やsudoのLDAP化まで書かれていているのが非常に役立つ。
ページトップへ  トラックバック0 コメント0
コメント

管理者にだけ表示を許可する
 
トラックバック
TB*URL
<< 2012/05 >>
S M T W T F S
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -


余白 Copyright © 2005 Linuxエンジニア日記. all rights reserved.