[LDAP-Users:412] Re: スクリーンセーバでロックされると、再ログインできない
toshi hirasawa
toshi_hirasawa @ guitar.ocn.ne.jp
2009年 1月 17日 (土) 14:20:29 JST
なんどもスレよごしですいません。
一応、解決したのでご報告いたします。
結局、migrationToolでつくった部分が問題の様子だったので、パスワード変更
を試みてみました。
こんな感じで検証してみました。
1)ldapseach "uid=hirasawa"でサーチして。
2)サーチしたパスワード文字列の部分をbase64でdecodeすると
{md5}$1$xxxxxxxxxx$XXXXXXXXXXXX
のように格納されていることを確認。
この文字列はmigrateツールをつかっているときに自分で{crypt} から{md5}に
書き換えた覚えあり。 < これが原因?
3) ldappasswd -x -W -D "cn=Manager,dc=hirasawa,dc=private" -S
"uid=hirasawa,ou=People,dc=hirasawa,dc=private"
でパスワードの変更
4)ldapsearch "uid=hirasawa"でサーチしてbase64でdecodeすると
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxx
のように変更された。
この状態でようやく バスワードロックの呪縛からのがれることができました。
いやー、勉強になりました。
ありがとうございます。
平澤
菊池さん含め、皆さんのおしゃっていたとおりでした。
(LDAPの正しい挙動がよくわかっていなかったため、ぐるぐるおなじところをま
わってしまいました
みなさん、もうしわけございませんでした。)
で、原因ですが........
2つのアカウントの差ってなんだろう?と考えてみたのですが、
差1) hirasawaのLDAPのLDIFはmigrateツールでつくったが、ldapuserは自前
でLDIFを書いた
migrateツールの元データはクライアントから抽出しましたと。
差2) hirasawaのパスワードは比較的複雑で, ldapuserは単純(関係ないっ
すよね 笑)
でも、hirasawaでも再認証してくれたときも一時期あったんですが、あれって
夢?わたしの勘違い?
toshi hirasawa さんは書きました:
> おはようございます。
>
> ユーザアカウントhirasawaではなんどやってもだめなので、
> テストアカウント ldapuserがつくってあったのを思い出したので、こちらで
> やってみましたと
>
> 結果からいうと、うまくいきます。
>
> クライアントから ldapsearch -x -D
> "uid=ldapuser,ou=People,dc=hirasawa,dc=private" -W "uid=ldapuser"
> を叩いて、聞かれたパスワードにはldapuserのパスワードをいれる
> とこんな感じになります
>
> bash-3.2$ ldapsearch -x -D
> "uid=ldapuser,ou=People,dc=hirasawa,dc=private" -W "uid=ldapuser" <
> こちらはOK
> Enter LDAP Password:
> # extended LDIF
> #
> # LDAPv3
> # base <> with scope subtree
> # filter: uid=ldapuser
> # requesting: ALL
> #
>
> # ldapuser, People, hirasawa.private
> dn: uid=ldapuser,ou=People,dc=hirasawa,dc=private
> objectClass: account
> objectClass: posixAccount
> uid: ldapuser
> cn: ldapuser
> loginShell: /bin/bash
> uidNumber: 1000
> gidNumber: 1000
> homeDirectory: /home/ldapuser
> userPassword:: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> # search result
> search: 2
> result: 0 Success
>
> # numResponses: 2
> # numEntries: 1
> bash-3.2$
> bash-3.2$
> bash-3.2$ ldapsearch -x -D
> "uid=hirasawa,ou=People,dc=hirasawa,dc=private" -W "uid=hirasawa"
> < こちらはだめだめ
> Enter LDAP Password:
> ldap_bind: Invalid credentials (49)
> bash-3.2$
>
>
> 菊池さん含め、皆さんのおしゃっていたとおりでした。
> (LDAPの正しい挙動がよくわかっていなかったため、ぐるぐるおなじところを
> ま わってしまいました
> みなさん、もうしわけございませんでした。)
>
> で、原因ですが........
>
> 2つのアカウントの差ってなんだろう?と考えてみたのですが、
> 差1) hirasawaのLDAPのLDIFはmigrateツールでつくったが、ldapuserは自前
> でLDIFを書いた
>
> migrateツールの元データはクライアントから抽出しましたと。
>
> 差2) hirasawaのパスワードは比較的複雑で, ldapuserは単純(関係ないっ
> すよね 笑)
>
>
> でも、hirasawaでも再認証してくれたときも一時期あったんですが、あれって
> 夢?わたしの勘違い?
>
>
>
> ---------- 手順的には ----------------------------------
>
> 手順的には
> 1)hirasawaでログイン
> 2)hirasawaでロックするとだめだめであることを確認
> 3)hirasawaからログアウト
>
> rootで以下の前準備
>
> 4)root権限で/home/ldapuserディレクトリを作成
> 5)chmod 1000:1000 ldapuser する
>
>
> ここから本番で
> 1)ldapuserでログイン
> 2)ロックして再度認証されることを確認
>
> これだとうまくいくですよ
>
> 一応、ロック後の再認証(うまくいっているとき)のログをはりつけておきます。
>
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 fd=99 ACCEPT from
> IP=192.168.1.15:45378 (IP=0.0.0.0:389)
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 op=0 BIND dn=""
> method=128
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 op=0 RESULT tag=97
> err=0 text=
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 op=1 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 op=1 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 op=1 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:30 cent5-30 slapd[12434]: conn=290 fd=99 closed
> (connection lost)
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 fd=99 ACCEPT from
> IP=192.168.1.15:45379 (IP=0.0.0.0:389)
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=0 BIND dn=""
> method=128
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=0 RESULT tag=97
> err=0 text=
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=1 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uidNumber=1000))"
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=1 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=1 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=2 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixGroup)(gidNumber=1000))"
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=2 SRCH attr=cn
> userPassword memberUid uniqueMember gidNumber
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=2 SEARCH RESULT
> tag=101 err=0 nentries=0 text=
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=3 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=3 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=3 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=4 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=4 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=4 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=5 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=5 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:35 cent5-30 slapd[12434]: conn=291 op=5 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=6 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=6 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=6 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=7 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=7 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=7 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 fd=100 ACCEPT from
> IP=192.168.1.15:45380 (IP=0.0.0.0:389)
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=0 BIND dn=""
> method=128
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=0 RESULT tag=97
> err=0 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=1 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0 filter="(uid=ldapuser)"
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=1 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=2 BIND
> dn="uid=ldapuser,ou=People,dc=hirasawa,dc=private" method=128
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=2 BIND
> dn="uid=ldapuser,ou=People,dc=hirasawa,dc=private" mech=SIMPLE ssf=0
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=2 RESULT tag=97
> err=0 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=3 BIND anonymous
> mech=implicit ssf=0
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=3 BIND dn=""
> method=128
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=3 RESULT tag=97
> err=0 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=8 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=8 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=8 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=9 SRCH
> base="dc=hirasawa,dc=private" scope=2 deref=0
> filter="(&(objectClass=posixAccount)(uid=ldapuser))"
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=9 SRCH attr=uid
> userPassword uidNumber gidNumber cn homeDirectory loginShell gecos
> description objectClass
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 op=9 SEARCH RESULT
> tag=101 err=0 nentries=1 text=
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 op=4 UNBIND
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=291 fd=99 closed
> (connection lost)
> Jan 17 10:25:37 cent5-30 slapd[12434]: conn=292 fd=100 closed
>
>
>
>
>
>
>
>
> toshi hirasawa さんは書きました:
>> おはようございます。
>>
>> みなさまにはいろいろとご迷惑おかけしております。
>>
>> 我流で勉強したので、もうなにがなんだか状態ですが、
>> クライアントからサーバにたいして3つのパターンでldapsearchをかけてみま
>> した。
>>
>>
>>
>> [hirasawa @ cent5-8 ~]$ ldapsearch -x "uid=hirasawa"
>> とやるとACLの制限をかけていないので、パスワードを含めて、uid=hirasawa
>> の 情報をひっぱれる
>>
>>
>>
>> [hirasawa @ cent5-8 ~]$ ldapsearch -x -D
>> "cn=Manager,dc=hirasawa,dc=private" -W "uid=hirasawa"
>> Enter LDAP Password: < rootdnのパスワードをいれる
>> とやると、当然ひっぱれる。
>>
>> で、ここからが疑問なのですが、
>> wiresharkを見たところ、つぎのようなオペレーションと等価なのかな?とお
>> もったんですが、
>> 私の考えはまちがっていますか?
>>
>>
>> [hirasawa @ cent5-8 ~]$ ldapsearch -x -D
>> "uid=hirasawa,ou=People,dc=hirasawa,dc=private" -W "uid=hirasawa"
>> Enter LDAP Password:
>> ldap_bind: Invalid credentials (49)
>> [hirasawa @ cent5-8 ~]$
>>
>> 、Invalid credentialsがもどってきますが、これが通るようにすれば、問題
>> 解 決?に
>> なりませんかね?
>>
>> と、素人考えですが、突っ込みをお願いいたします。
>>
>>
>> 平澤
>>
>>
>
>
LDAP-Users メーリングリストの案内