So-net無料ブログ作成

openldapサーバを構築しよう [No.7 パスワードポリシーの確認] [openldap]

前回はSSLの確認を行いました。
今回はパスワードポリシーの確認したいと思います。

動作環境等は以下の通りです。
OS:CentOS 6.4 x84_64(Minimal Desktop)
hostname:ldap1.local.localdomain.com
IP:192.168.0.81/255.255.255.0/192.168.0.1
LDAP:openldap 2.4.23
SSL:OpenSSL 0.9.8y
PORT:LDAP(389)/LDAPS(636)

DIT(Directory Information Tree)は以下の通りです。
ldap-dit.png

さっそく、やってみましょう。

1.アカウントロック
pwdMaxFailure: 3に設定したので、3回間違うとロックします。
# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "uid=user01,ou=People,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy +
Enter LDAP Password:
ldap_bind: Invalid credentials (49)

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy pwdFailureTime
Enter LDAP Password:
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
pwdFailureTime: 20130809221406Z

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "uid=user01,ou=People,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy +
Enter LDAP Password:
ldap_bind: Invalid credentials (49)

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy pwdFailureTime
Enter LDAP Password:
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
pwdFailureTime: 20130809221406Z
pwdFailureTime: 20130809221612Z

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "uid=user01,ou=People,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy +
Enter LDAP Password:
ldap_bind: Invalid credentials (49)

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy pwdFailureTime
Enter LDAP Password:
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
pwdFailureTime: 20130809221406Z
pwdFailureTime: 20130809221612Z
pwdFailureTime: 20130809221651Z

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "uid=user01,ou=People,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy +
Enter LDAP Password:
ldap_bind: Invalid credentials (49); Account locked


2.パスワード履歴
pwdInHistory: 3に設定したので、3つの履歴を保持する
# ldappasswd -x -D "cn=Manager,dc=example,dc=com" -S -W "uid=user01,ou=People,dc=example,dc=com"
New password:
Re-enter new password:
Enter LDAP Password:

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy pwdHistory
Enter LDAP Password:
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
pwdHistory: 20130809222157Z#1.3.6.1.4.1.1466.115.121.1.40#11#P@ssword123

何回かパスワード変更を実施

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy pwdHistory
Enter LDAP Password:
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
pwdHistory: 20130809223829Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}hviJ/k45I83
 YFrRU10Gsj8tSnmPCi94/
pwdHistory: 20130809224808Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}TOtyUo1TkS0
 cpgI2k+HBAl28f8xBR4Cq
pwdHistory: 20130809224924Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}7UZSKetH+f6
 mf1UUuok7YOzmILf4iEN/


3.ユーザー自身のパスワード変更
pwdAllowUserChange: TRUEに設定したので、ユーザー自身でパスワードが変更できます。
# ldappasswd -x -D "uid=user01,ou=People,dc=example,dc=com" -S -W
New password:
Re-enter new password:
Enter LDAP Password:

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy pwdHistory
Enter LDAP Password:
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
pwdHistory: 20130809222157Z#1.3.6.1.4.1.1466.115.121.1.40#11#P@ssword123
pwdHistory: 20130809222833Z#1.3.6.1.4.1.1466.115.121.1.40#38#{SSHA}TXOFppv+Cim
 EiSV0KIwpRV6op/u+pt3G


4.過去のパスワードは利用できない
# ldappasswd -x -D "uid=user01,ou=People,dc=example,dc=com" -S -W
New password:
Re-enter new password:
Enter LDAP Password:
Result: Constraint violation (19)
Additional info: Password is in history of old passwords

5.パスワード文字数のチェック
pwdMinLength: 6に設定したので、6文字未満はポリシー違反
(お詫び)No.5のDIT構築でpwdCheckQuality: 2を書き漏らしました。
# ldappasswd -x -D "uid=user01,ou=People,dc=example,dc=com" -S -W
New password:
Re-enter new password:
Enter LDAP Password:
Result: Constraint violation (19)
Additional info: Password fails quality checking policy

6.初回パスワード変更
pwdMustChange: TRUEに設定していますが、
PwdResetが自動的にユーザーエントリに設定されません。
バグなんでしょうか・・・
仕方ないので、Managerで設定します。

# vi pwdreset.ldif

以下のように編集します。

dn: uid=user01,ou=People,dc=example,dc=com
changetype: modify
replace: pwdReset
pwdReset: TRUE

# ldapmodify -x -H "ldap://ldap1.local.localdomain.com/" -D "cn=Manager,dc=example,dc=com" -W -f pwdreset.ldif
Enter LDAP Password:
modifying entry "uid=user01,ou=People,dc=example,dc=com"

# ldapsearch -x -H "ldap://ldap1.local.localdomain.com/" -D "uid=user01,ou=People,dc=example,dc=com" -W -b uid=user01,ou=People,dc=example,dc=com -s sub objectclass=* -e ppolicy
Enter LDAP Password:
ldap_bind: Success (0); Password must be changed
# search result
search: 2
result: 50 Insufficient access
text: Operations are restricted to bind/unbind/abandon/StartTLS/modify passwo
 rd

ちなみにですが、pwdMustChange: FALSEの場合は、
pwdReset: TRUEをユーザーエントリに追加しても
初回パスワード変更は強制されません。


パスワード有効期限は時間がかかるので省略します。ご自身で確認してください。
これでパスワードポリシーの確認は完了です。
最後にLDAP用のGUIツールを紹介します。

次回もお楽しみに!!

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。