CentOS 7
Sponsored Link

パスワードポリシーを設定する
2015/07/23
 
企業のコンプライアンスが求められる中で、パスワードの設定は重要です。 簡易なパスワードを設定しないようにルールで定めてはいても、システムでの強制力がなければなかなか守られません。 パスワードのルールはシステム側の設定で対応しましょう。
[1] パスワードの有効期限を設定する。
ユーザーは設定した日数以内にパスワードを変更しなければならない。
当設定はアカウント新規作成時のみ有効で、既存のアカウントには影響しない。
当設定がされていない既存ユーザーに設定する場合は「chage -M 日数 ユーザー」で設定する。
[root@dlp ~]#
vi /etc/login.defs
# 25行目:パスワードの有効期限を60日に設定

PASS_MAX_DAYS
60
[2] パスワードの最短利用日数を設定する。
ユーザーはパスワードを変更してからこの期間内はパスワードを変更できない。
当設定はアカウント新規作成時のみ有効で、既存のアカウントには影響しない。
当設定がされていない既存ユーザーに設定する場合は「chage -m 日数 ユーザー」で設定する。
[root@dlp ~]#
vi /etc/login.defs
# 26行目:パスワードの最短利用日数を2日に設定

PASS_MIN_DAYS
2
[3] パスワードの有効期限が来る前に警告を発する期間の日数を設定する。
当設定はアカウント新規作成時のみ有効で、既存のアカウントには影響しない。
当設定がされていない既存ユーザーに設定する場合は「chage -W 日数 ユーザー」で設定する。
[root@dlp ~]#
vi /etc/login.defs
# 28行目:パスワードの有効期限が来る前に警告を発する期間の日数を7日に設定

PASS_WARN_AGE
7
[4] 過去に使用したパスワードの使用を制限する。
ユーザーは設定された世代以内に同じパスワードを再び設定することができない。
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:過去5世代のパスワードの再利用を禁止する

password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok
remember=5
[5] パスワードの最低文字数を設定する。
ユーザーは設定された文字数未満のパスワードは設定できない。
# パスワードの最低文字数を8文字に設定する

[root@dlp ~]#
authconfig --passminlen=8 --update
# 以下のファイルに設定される

[root@dlp ~]#
grep "^minlen" /etc/security/pwquality.conf

minlen = 8
[6] パスワードの最低文字種類数を設定する。(種類 ⇒ 大文字/小文字/数字/特殊文字)
ユーザーは設定された値未満の文字種しか含まれないパスワードは設定できない。
# パスワードの最低文字種類数を2種に設定する

[root@dlp ~]#
authconfig --passminclass=2 --update
# 以下のファイルに設定される

[root@dlp ~]#
grep "^minclass" /etc/security/pwquality.conf

minclass = 2
[7] パスワードの最大連続文字数を設定する。
ユーザーは設定された値を超える連続同一文字が含まれるパスワードは設定できない。
# パスワードの最大連続文字数を2に設定する

[root@dlp ~]#
authconfig --passmaxrepeat=2 --update
# 以下のファイルに設定される

[root@dlp ~]#
grep "^maxrepeat" /etc/security/pwquality.conf

maxrepeat = 2
[8] パスワードの最大連続文字種類数を設定する。
ユーザーは設定された値を超える連続同一文字種が含まれるパスワードは設定できない。
# パスワードの最大連続同一文字種類数を4に設定する

[root@dlp ~]#
authconfig --passmaxclassrepeat=4 --update
# 以下のファイルに設定される

[root@dlp ~]#
grep "^maxclassrepeat" /etc/security/pwquality.conf

maxclassrepeat = 4
[9] パスワードに小文字が含まれなければならない。
# パスワードに最低 1文字の小文字を要求する

[root@dlp ~]#
authconfig --enablereqlower --update
# 以下のファイルに設定される (値を変更する場合はファイルを vi 等で編集)

[root@dlp ~]#
grep "^lcredit" /etc/security/pwquality.conf

lcredit = -1
[10] パスワードに大文字が含まれなければならない。
# パスワードに最低 1文字の大文字を要求する

[root@dlp ~]#
authconfig --enablerequpper --update
# 以下のファイルに設定される (値を変更する場合はファイルを vi 等で編集)

[root@dlp ~]#
grep "^ucredit" /etc/security/pwquality.conf

ucredit = -1
[11] パスワードに数字が含まれなければならない。
# パスワードに最低 1文字の数字を要求する

[root@dlp ~]#
authconfig --enablereqdigit --update
# 以下のファイルに設定される (値を変更する場合はファイルを vi 等で編集)

[root@dlp ~]#
grep "^dcredit" /etc/security/pwquality.conf

dcredit = -1
[12] パスワードに特殊文字が含まれなければならない。
# パスワードに最低 1文字の特殊文字を要求する

[root@dlp ~]#
authconfig --enablereqother --update
# 以下のファイルに設定される (値を変更する場合はファイルを vi 等で編集)

[root@dlp ~]#
grep "^ocredit" /etc/security/pwquality.conf

ocredit = -1
[13] 設定値よりも長い単調な文字列がパスワードに含まれてはならない。(単調な例 ⇒ '12345', 'fedcb')
[root@dlp ~]#
vi /etc/security/pwquality.conf
# 最終行に追記

maxsequence = 3
[14] 変更前のパスワードに含まれる文字が変更後のパスワードに N 文字以上含まれてはならない。
[root@dlp ~]#
vi /etc/security/pwquality.conf
# 最終行に追記:5文字を設定

difok = 5
[15] /etc/passwd 内の GECOS (コメント) フィールドに含まれる 3文字より長い文字列から成る単語が、パスワードに含まれてはならない。
[root@dlp ~]#
vi /etc/security/pwquality.conf
# 最終行に追記

gecoscheck = 1
[16] 指定した文字列がパスワードに含まれてはならない。(cracklib デフォルト辞書プラスアルファの設定)
[root@dlp ~]#
vi /etc/security/pwquality.conf
# 最終行に追記

badwords = denywords1 denywords2 denywords3
[17] パスワードの暗号化方式を設定する。
既存アカウントには当設定変更後の初回パスワード変更時に設定が適用される。
「chage -d 0 user」とすれば、次回ログイン時に強制的に user にパスワード変更させることが可能。
# 現在の暗号化方式を確認

[root@dlp ~]#
authconfig --test | grep hashing

password hashing algorithm is md5
# 暗号化方式を sha512 に変更

[root@dlp ~]#
authconfig --passalgo=sha512 --update
[root@dlp ~]#
authconfig --test | grep hashing

password hashing algorithm is sha512
 
Tweet