2022/10/03

CentOS 7 帳號的密碼規則

密碼定期更新

/etc/login.defs 可設定定期更新的策略,以下是 CentOS 7 裡面該設定檔的預設值

PASS_MAX_DAYS    99999   # 密碼到期時間
PASS_MIN_DAYS    0       # 初始密碼更改時間
PASS_MIN_LEN    5       # 密碼最小長度
PASS_WARN_AGE    7       # 密碼過期提示時間

修改設定檔後,只會影響到新的帳號,如果要修改現有帳號的規則,要使用 chage 指令

-m:最少必須相隔幾天才能改變密碼,0 代表任何時候都可以更改密碼。
-M:最多必須相隔幾天才能改變密碼
-w:用戶密碼到期前,提前收到警告信息的天數。
-E:帳號到期的日期。過了這天,此帳號將不可用。
-d:上一次更改的日期。
-I:停滯時期。如果一個密碼已過期這些天,那麼此帳號將無法使用。
-l:列印當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。

example

# 查看 root 的設定
chage -l root

# 設定90 天後過期
chage -M 90 root

# 設定今天後 180 天的那一天,密碼過期
chage -E $(date -d +180days +%Y-%m-%d)

密碼複雜度

透過 PAM pwquality 模組提供這個功能,該模組替換了 CentOS6 的 pam_cracklib

相關的參數有

  • retry=N:定義登入/修改密碼失敗時,可以重試的次數;
  • difok=N:定義新密碼中必須有幾個字元要與舊密碼不同
  • minlen=N:定義使用者密碼的最小長度;
  • dcredit=N:定義使用者密碼中最多包含多少個數字;如果是負數(ex:-1) 代表至少要有一個數字
  • ucredit=N:定義使用者密碼中最多包含多少個大寫字母;如果是負數(ex:-1) 代表至少要有一個大寫字母
  • lcredit=N:定義使用者密碼中最多包含多少個小寫字母;如果是負數(ex:-1) 代表至少要有一個小寫字母
  • ocredit=N:定義使用者密碼中最多包含多少個特殊字元(除數字、字母之外);如果是負數(ex:-1) 代表至少要有一個特殊字元
  • enforce_for_root 確保即使是root使用者設定密碼,也應強制執行複雜性策略
  • minclass:最少要有幾類字元
  • maxrepeat:允許連續相同的字元的最大數目
  • maxclassrepeat:允許連續同一類的字元的最大數目

相關設定檔有兩個

/etc/pam.d/system-auth
/etc/security/pwquality.conf

可直接修改/etc/pam.d/system-auth,寫在這一行的後面,也就是當作該 module 的參數

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
# 最少 8 位, ucredit=0 不需要大寫字母, ocredit=0 不需要符號
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=0 dcredit=-1 ocredit=0 enforce_for_root

比較推薦的方法,是修改設定檔 /etc/security/pwquality.conf

minlen = 8
dcredit=-1
ucredit=0
lcredit=-1
ocredit=0
enforce_for_root

可查看 manual,有設定的說明

man pam_pwquality

另外也可下指令修改 /etc/security/pwquality.conf

# 最小長度
authconfig --passminlen=8 --update
grep "^minlen" /etc/security/pwquality.conf

# 設置允許連續同一類的字元的最大數目
authconfig --passmaxclassrepeat=6 --update
grep "^maxclassrepeat" /etc/security/pwquality.conf

# 至少需要一個小寫字元
authconfig --enablereqlower --update
grep "^lcredit" /etc/security/pwquality.conf

# 至少需要一個大寫字元
authconfig --enablerequpper --update
grep "^ucredit" /etc/security/pwquality.conf

# 至少需要一個數字
authconfig --enablereqdigit --update
grep "^dcredit" /etc/security/pwquality.conf

# 至少一個特殊符號
authconfig --enablereqother --update
grep "^ocredit" /etc/security/pwquality.conf

References

CentOS7/Red-Hat密码更换周期和复杂度设置 | syxdevcode博客

CentOS 設置密碼策略 - 碼上快樂

CentOS作業系統密碼複雜度策略設定_其它_程式人生

在CentOS 7上实施密码复杂性策略_allway2的博客-CSDN博客_authtok_type

LINUX設定密碼複雜度的檔案system auth,具體需要怎麼改

Linux從零開始(11/30): 在CentOS設定密碼複雜度規則 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

Linux 上密碼相關設定 | Chia-An Lee

沒有留言:

張貼留言