RHEL4,5,6におけるパスワード強化の設定、動作をまとめました。基本的に設定変更後のOS再起動は不要です。
設定内容 | 設定ファイル / コマンド | 設定パラメータ | 設定例 | 備考 | |
1 | パスワードの長さ | /etc/pam.d/system-auth (設定ファイル) |
password requisite /lib/security/$ISA/pam_cracklib.so を追加しminlen= で最短のパスワードの長さを指定する | 以下の例ではパスワードの最短文字数を8文字に設定しています。 password requisite /lib/security/$ISA/pam_cracklib.so retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 |
・minlenに関わらず最低5文字は必要です。 ・短いパスワードに変更した場合以下が表示されます。 BAD PASSWORD: is too simple |
2 | パスワードに指定した文字を含む | /etc/pam.d/system-auth (設定ファイル) |
password requisite /lib/security/$ISA/pam_cracklib.so を追加し以下の設定を行う。 dcredit=-N (数字がN文字以上) ucredit=-N (英大文字がN文字以上) lcredit=-N (英語小文字がN文字以上) ocredit=-N (特殊文字がN文字以上) |
以下の例ではパスワードに数字、英大文字、英小文字、特殊文字をそれぞれ1文字含むことを強制します。 password requisite /lib/security/$ISA/pam_cracklib.so retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 |
|
3 | パスワードの履歴を記録し同一パスワードを禁止 | /etc/pam.d/system-auth (設定ファイル) |
password sufficient pam_unix.soを追加し以下の設定を行う。 remember= でパスワードの履歴数。 |
以下の例ではパスワードの履歴を5回分記憶します。 password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5 |
|
4 | パスワードの有効期間 | /etc/login.defs (設定ファイル) |
PASS_MAX_DAYS | PASS_MAX_DAYS 100 で有効期間は100日となります。 |
|
5 | パスワードの変更禁止期間 | /etc/login.defs (設定ファイル) |
PASS_MIN_DAYS | PASS_MIN_DAYS 7 で7日間はパスワードの変更が不可となります。 |
|
6 | 有効期間の前にユーザに警告する | /etc/login.defs (設定ファイル) |
PASS_WARN_AGE | PASS_WARN_AGE 7 パスワード有効期限一週間前からログオン時にパスワードを変更するよう警告を出力します。 |
|
7 | 初回ログオン時に強制変更させる | 以下のコマンドを実行 chage -d 0 <ユーザ名> |
- | chage -d 0 testuser | 初回ログオン直後に以下が表示されます。 You are required to change your password immediately |
8 | WHEELグループユーザのみ su コマンドを許可する | /etc/pam.d/su (設定ファイル) |
以下の行を追加する。 auth required pam_wheel.so use_uid |
・元々コメント化されている場合にはコメント外すだけです。 ・WHEELグループ以外のユーザがログオンすると「su: パスワードが違います」と表示されます。 |
|
9 | パスワード切れからパスワード無効化までの期間 | 以下のコマンドを実行 chage -I <日数> <ユーザ名> |
- | ユーザ "testuser" はパスワードが切れてから100日後にアカウントが無効化されます。 chage -I 100 testuser |
無効化された場合、ユーザはログオンできません。無効化される前ではログオン直後にパスワードを変更すればログオンすることが可能です。 |