20.4. パスワードポリシーの管理
パスワードポリシーは、一定レベルのセキュリティーを強制することで、パスワードを使用するリスクを最小限に抑えることができます。たとえば、パスワードポリシーでは、以下を定義できます。
- ユーザーはスケジュールに応じてパスワードを変更する必要があります。
- ユーザーは、簡単ではないパスワードを提供する必要があります。
- パスワード構文は、特定の複雑な要件を満たす必要があります。
警告
パスワード管理者アカウントまたは
Directory Manager
(root DN) を使用してパスワードを設定すると、パスワードポリシーは回避され、検証されません。これらのアカウントは、通常のユーザーパスワードの管理には使用しないでください。パスワードポリシーの回避が必要なパスワード管理タスクの実行にのみ使用します。
Directory Server は、きめ細かなパスワードポリシーをサポートしており、パスワードポリシーは、ディレクトリー全体 (global パスワードポリシー)、特定のサブツリー (subtree-level または local パスワードポリシー)、または特定のユーザー (user-level または local パスワードポリシー) に適用することができます。
ユーザーアカウントに適用される完全なパスワードポリシーは、以下の要素で設定されます。
- パスワードポリシーチェックのタイプまたはレベル。この情報は、サーバーがグローバルパスワードポリシーまたはローカル (サブツリー/ユーザーレベル) パスワードポリシーを確認および有効にするかどうかを示します。パスワードポリシーは、一般的なものから特定のものまで、逆ピラミッド型になっています。グローバルパスワードポリシーは、サブツリーレベルのパスワードポリシーに置き換えられました。これは、ユーザーレベルのパスワードポリシーに置き換えられます。エントリーに対して強制されるパスワードポリシーは 1 つだけで、パスワードポリシーは追加されません。つまり、特定の属性がグローバルレベルまたはサブツリーレベルのポリシーで設定されていて、ユーザーレベルのパスワードポリシーで設定されていない場合、アクティブで適用されるポリシーはユーザーレベルのポリシーであるため、ログインが試みられてもその属性はユーザーに使用されません。
- パスワードの追加および変更の情報。パスワード情報には、パスワードの構文およびパスワード履歴の詳細が含まれます。
- バインド情報バインド情報には、許可された猶予期間の数、パスワードエージング属性、およびバインド失敗の追跡が含まれます。
注記
パスワードポリシーを設定したら、アカウントのロックアウトポリシーを設定すると、ユーザーパスワードを潜在的な脅威から保護できます。アカウントのロックアウトは、ユーザーのパスワードを繰り返し推測することで、ディレクトリーに分割を試行するハッカーから保護されます。
20.4.1. グローバルパスワードポリシーの設定
デフォルトでは、グローバルパスワードポリシー設定は無効になっています。本セクションでは、グローバルパスワードポリシーを設定する例を紹介します。
注記
パスワードポリシーを設定したら、アカウントロックアウトポリシーを設定します。詳細については、「パスワードベースのアカウントロックアウトポリシーの設定」 を参照してください。
20.4.1.1. コマンドラインを使用したグローバルパスワードポリシーの設定
dsconf
ユーティリティーを使用して、グローバルパスワードポリシー設定を表示および編集します。
- 現在の設定を表示します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy get Global Password Policy: cn=config ------------------------------------ passwordstoragescheme: PBKDF2_SHA256 passwordChange: on passwordMustChange: off passwordHistory: off passwordInHistory: 6 ...
- パスワードポリシー設定を調整します。たとえば、パスワード構文の確認を有効にしてパスワードの最小の長さを 12 文字に設定するには、次のコマンドを実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdchecksyntax=on --pwdmintokenlen=12
使用可能な設定の完全なリストを表示するには、次のように入力します。# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --help
- パスワードポリシーを有効にします。
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlockout on
20.4.1.2. Web コンソールを使用したグローバルパスワードポリシーの設定
Web コンソールを使用してグローバルパスワードポリシーを設定するには、以下を実行します。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- Database メニューを開きます。
- Password Policies メニューで、Global Policy を選択します。
- グローバルパスワードポリシーを設定します。次のカテゴリーのパラメーターを設定できます。
- パスワードストレージスキームなどの一般的な設定
- パスワード失効回数など、パスワードの有効期限設定。
- アカウントのロックアウト設定 (何回ログインに失敗したらアカウントをロックするかなど)。
- パスワード構文の設定 (パスワードの最小長など)。
ツールヒントとパラメーターの cn=config エントリーで対応する属性名を表示するには、設定の上にマウスのカーソルを合わせます。詳細は、『Red Hat Directory Server 設定、コマンド、およびファイルリファレンス』 のパラメーターの説明を参照してください。 - Save をクリックします。
20.4.2. ローカルパスワードポリシーの使用
ローカルパスワードポリシーは、ディレクトリー全体の設定を定義するグローバルパスワードポリシーとは対照的に、特定のユーザーまたはサブツリーに対するポリシーです。
きめ細かいパスワードポリシーでパスワード構文が設定されていない場合、
nsslapd-pwpolicy-inherit-global
パラメーターがオンになっていればグローバルポリシーから構文を継承できます。
--pwpinheritglobal
オプションが定義されている場合、passwordchecksyntax
オプションはローカルポリシーでオフに、グローバルポリシーでオンに設定され、次の属性をグローバルポリシーからローカルポリシーに継承できます。
passwordchecksyntax
passwordminlength
passwordmindigits
passwordminalphas
passwordminuppers
passwordminlowers
passwordminspecials
passwordmin8bit
passwordmaxrepeats
passwordmincategories
passwordmintokenlength
20.4.2.1. Directory Server がローカルパスワードポリシーエントリーを保存する場所
dsconf localpwp adduser または dsconf localpwp addsubtree コマンドを使用する場合、Directory Server はポリシー属性を保存するエントリーを自動的に作成します。
- サブツリー (例: ou=people,dc=example,dc=com) では、以下のエントリーが追加されます。
- サブツリーとそのすべての子について、さまざまなパスワードポリシー関連のエントリーを保持するためのサブツリーレベルのコンテナーエントリー (
nsPwPolicyContainer
)。以下に例を示します。dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
- サブツリーに固有のすべてのパスワードポリシー属性を保持するための実際のパスワードポリシー仕様エントリー (
nsPwPolicyEntry
) です。以下に例を示します。dn: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: ldapsubentry objectclass: passwordpolicy
- 上記の (
nsPwPolicyEntry
) エントリーを指定するpwdpolicysubentry
値を持つ CoS テンプレートエントリー (nsPwTemplateEntry
)。以下に例を示します。dn: cn="cn=nsPwTemplateEntry,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: costemplate objectclass: ldapsubentry cosPriority: 1 pwdpolicysubentry: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
- サブツリーレベルでの CoS 仕様エントリー。以下に例を示します。
dn: cn=newpwdpolicy_cos,ou=people,dc=example,dc=com objectclass: top objectclass: LDAPsubentry objectclass: cosSuperDefinition objectclass: cosPointerDefinition cosTemplateDn: cn=cn=nsPwTemplateEntry\,ou=people\,dc=example,dc=com, cn=nsPwPolicyContainer,ou=people,dc=example,dc=com cosAttribute: pwdpolicysubentry default operational
- ユーザーの場合 (例: uid=user_name,ou=people,dc=example,dc=com)、以下のエントリーが追加されます。
- ユーザーとそのすべての子について、さまざまなパスワードポリシー関連のエントリーを保持するための親レベルのコンテナーエントリー (
nsPwPolicyContainer
)。以下に例を示します。dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
- ユーザーに固有のパスワードポリシー属性を保持するための実際のパスワードポリシー仕様エントリー (
nsPwPolicyEntry
) です。以下に例を示します。dn: cn="cn=nsPwPolicyEntry,uid=user_name,ou=people,dc=example,dc=com", cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectclass: top objectclass: extensibleObject objectclass: ldapsubentry objectclass: passwordpolicy
20.4.2.2. ローカルパスワードポリシーの設定
ローカルパスワードポリシーを設定するには、以下を実行します。
注記
現在、コマンドラインを使用してのみローカルパスワードポリシーを設定できます。
- サブツリーまたはユーザーエントリーにローカルパスワードポリシーがすでに存在しているかどうかを確認します。以下に例を示します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get "ou=People,dc=example,dc=com" Error: The policy wasn't set up for the target dn entry or it is invalid
ローカルポリシーが存在しない場合は、これを作成します。- サブツリーパスワードポリシーを作成するには、以下を実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree "ou=People,dc=example,dc=com"
- ユーザーパスワードポリシーを作成するには、以下を実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"
重要新しいローカルポリシーを作成すると、上記のコマンドは、cn=config エントリーのnsslapd-pwpolicy-local
パラメーターを on に自動的に設定します。ローカルパスワードポリシーを有効にできない場合は、手動でパラメーターを off に設定します。dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlocal off
- ローカルポリシー属性を設定します。たとえば、パスワードの有効期限を有効にし、パスワードの最大期間を 14 日 (1209600 秒) に設定するには、以下を実行します。
- サブツリーパスワードポリシー:
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire=on --pwdmaxage=1209600 "ou=People,dc=example,dc=com"
- ユーザーパスワードポリシー:
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire=on --pwdmaxage=1209600 "uid=user_name,ou=People,dc=example,dc=com"
使用可能な設定の完全なリストを表示するには、次のように入力します。# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --help