[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 メーリングリストの案内