CentOS 5
Sponsored Link

パスワードポリシーを設定する2010/05/05

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

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

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

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

password     sufficient     pam_unix.so md5 shadow nullok try_first_pass use_authtok \
                 
remember=5
[5] パスワードの最低文字数を設定する。ユーザーは設定された文字数未満のパスワードは設定できない。
なお、以下では minlen=* が設定に相当しますが、その他の値(後述)も minlen と連動しているため、 設定しなくとも値を0にして指定しておく必要があります。
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:パスワードの最低文字数を8文字に設定する

password     requisite     pam_cracklib.so try_first_pass retry=3 \
                 
minlen=8 dcredit=0 ucredit=0 lcredit=0 ocredit=0
[6] 5の設定に加えて、パスワードに数字がN文字以上含まれていなければならない。( dcredit=-N )
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:パスワードに数字が2文字以上含まれることを要求する

password     requisite     pam_cracklib.so try_first_pass retry=3 \
                 
minlen=8 dcredit=-2 ucredit=0 lcredit=0 ocredit=0
[7] 5,6の設定に加えて、パスワードに大文字がN文字以上含まれていなければならない。( ucredit=-N )
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:パスワードに大文字が1文字以上含まれることを要求する

password     requisite     pam_cracklib.so try_first_pass retry=3 \
                 
minlen=8 dcredit=-2 ucredit=-1 lcredit=0 ocredit=0
[8] 5,6,7の設定に加えて、パスワードに小文字がN文字以上含まれていなければならない。( lcredit=-N )
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:パスワードに小文字が1文字以上含まれることを要求する

password     requisite     pam_cracklib.so try_first_pass retry=3 \
                 
minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=0
[9] 5,6,7,8の設定に加えて、パスワードに記号がN文字以上含まれていなければならない。( ocredit=-N )
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:パスワードに記号が1文字以上含まれることを要求する

password     requisite     pam_cracklib.so try_first_pass retry=3 \
                 
minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1
[10] 変更後のパスワードが現在のパスワードとN文字以上異なることを要求する。( difok=N )
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 15行目あたり:変更後のパスワードが現在のパスワードと3文字以上異なることを要求する

password     requisite     pam_cracklib.so try_first_pass retry=3
difok=3
[11] ログインの失敗回数を設定する。ユーザーは設定された値の回数を超えて連続でログイン失敗するとアカウントがロックされる。
[root@dlp ~]#
vi /etc/pam.d/system-auth
# 以下のように2行追記する。失敗回数は「deny=*」で設定し、以下の例では5回連続失敗でロックする

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth
required     pam_env.so

auth
required     pam_tally2.so deny=5

auth
sufficient     pam_fprintd.so

auth
sufficient     pam_unix.so nullok try_first_pass

auth
requisite     pam_succeed_if.so uid >= 500 quiet

auth
required     pam_deny.so
account
required     pam_unix.so

account
required     pam_tally2.so

account
sufficient     pam_localuser.so

account
sufficient     pam_succeed_if.so uid < 500 quiet

account
required     pam_permit.so
# あるユーザーの失敗回数を確認する

[root@dlp ~]#
pam_tally2 -u cent

Login
Failures     Latest failure     From

cent
7     02/23/11 13:10:26     tty1
# ロックされたユーザーを開放する

[root@dlp ~]#
pam_tally2 -r -u cent

[12] パスワードの暗号化方式を変更する。
システムの設定値が変更されるのみで既存ユーザーには影響しないため、 暗号化方式変更後はユーザーにパスワード変更してアップデートしてもらう必要がある。 「chage -d 0 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
関連コンテンツ