Linux Centos系列的安全認(rèn)證
歡迎來到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識(shí)。
CentOS 7
在 CentOS 7 系統(tǒng)中,/etc/pam.d/system-auth 會(huì)包含下面一段描述
# User changes will be destroyed the next time authconfig is run.
authconfig
authconfig是 CentOS 系統(tǒng)中的一個(gè)命令行工具,用于配置和管理系統(tǒng)的認(rèn)證參數(shù)。它提供了一個(gè)簡潔而強(qiáng)大的方式來設(shè)置用戶身份驗(yàn)證機(jī)制,包括密碼策略、身份驗(yàn)證方法和用戶信息存儲(chǔ)
常用配置參數(shù):
密碼復(fù)雜度相關(guān)配置
--passminlen=<number>:密碼最小長度
--passminclass=<number>:密碼中最少包含幾種類別
--passmaxrepeat=<number>:密碼中同一字符最多連續(xù)使用次數(shù),比如:aaa
--passmaxclassrepeat=<number>:密碼同一類別中最多連續(xù)使用同一字符次數(shù),比如:123
--enablereqlower:密碼中至少需要一個(gè)小寫字符
--disablereqlower:密碼中不需要小寫字符
--enablerequpper:密碼中至少需要一個(gè)大寫字符
--disablerequpper:密碼中不需要大寫字符
--enablereqdigit:密碼中至少需要一個(gè)數(shù)字
--disablereqdigit:密碼中不需要數(shù)字
--enablereqother:密碼中至少需要一個(gè)特殊字符
--disablereqother:密碼中不需要其他字符
登錄失敗策略相關(guān)配置
--enablefaillock:開啟登錄失敗策略
--disablefaillock:關(guān)閉登錄失敗策略
--faillockargs=<options>:登錄失敗策略相關(guān)配置
備份恢復(fù)相關(guān)配置
--savebackup=<名稱>:備份所有相關(guān)配置文件
--restorebackup=<名稱>:恢復(fù)指定的備份內(nèi)容
--restorelastbackup:恢復(fù)在上一次配置更改前保存的配置文件的備份,authconfig每次進(jìn)行更改都會(huì)自動(dòng)備份,可以使用該命令進(jìn)行恢復(fù)
生效配置
--test:不更新配置文件,只顯示新設(shè)置
--update:更新配置文件, 如果沒有使用 --update 選項(xiàng),則不會(huì)將更改寫入系統(tǒng)配置文件
authconfig使用
備份配置
authconfig --savebackup=/backups/authconfigbackup20241011
恢復(fù)配置
路徑必須使用絕對(duì)路徑
因?yàn)閭浞菸募邪琾asswd、group等這些文件,所以在備份之后創(chuàng)建的用戶就沒有了,不過其家目錄還在,所以恢復(fù)的時(shí)候可以把用戶相關(guān)的文件移除
authconfig --restorebackup=/backups/authconfigbackup20241011
設(shè)置口令長度8位,包含大寫字母、小寫字母、特殊字符和數(shù)字
authconfig --passminlen=8 --enablerequpper --enablereqlower --enablereqother --enablereqdigit --update
驗(yàn)證
# useradd tmp# passwd tmp
更改用戶 tmp 的密碼 。
新的 密碼:
無效的密碼: 密碼包含少于 1 的大寫字母
重新輸入新的 密碼:
抱歉,密碼不匹配。
新的 密碼:
無效的密碼: 密碼包含少于 1 的小寫字母
重新輸入新的 密碼:
抱歉,密碼不匹配。
新的 密碼:
無效的密碼: 密碼包含少于 1 的非字母或數(shù)字字符
無效的密碼: 密碼少于 8 個(gè)字符
重新輸入新的 密碼:
不過,這條指令只修改了 /etc/security/pwquality.conf 這個(gè)文件,但 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth 都沒有被修改
開啟登錄失敗策略并配置
authconfig --enablefaillock --faillockargs='deny=3 unlock_time=600' --update
如果不指定 --faillockargs ,默認(rèn)是在15分鐘之內(nèi)連續(xù)4次登錄失敗,賬號(hào)就會(huì)被鎖定20分鐘,可通過 grep -E 'pam_faillock.so' /etc/pam.d/* 查看自動(dòng)生成的相關(guān)配置
# grep -E 'pam_faillock.so' /etc/pam.d/*
...
/etc/pam.d/system-auth:auth required pam_faillock.so preauth silent deny=4 unlock_time=1200
/etc/pam.d/system-auth:auth required pam_faillock.so authfail deny=4 unlock_time=1200
/etc/pam.d/system-auth:account required pam_faillock.so
faillockargs 支持的選項(xiàng)
silent :不輸出賬號(hào)被block的相關(guān)信息
deny=:連續(xù)多少次失敗會(huì)被block,默認(rèn)3次
fail_interval=: 在多少時(shí)間內(nèi)檢查連續(xù)失敗次數(shù),默認(rèn)15分鐘
unlock_time: 賬號(hào)被block多長時(shí)間
even_deny_root :root賬號(hào)同樣適用相關(guān)策略
由于默認(rèn)添加了 silent 選項(xiàng),所以當(dāng)用戶被鎖定后再次嘗試登錄不會(huì)有相關(guān)提示,可以手動(dòng)將其去掉
可以通過 faillock --user USERNAME 查看用戶是否被鎖定,通過 faillock --user USERNAME --reset 解除鎖定,也可以 faillock --reset 解除所有鎖定
配置使用LDAP
authconfig --enableldap --enableldapauth --ldapserver="ldap.example.com" --ldapbasedn="ou=Anytown,o=example.com" --update
這個(gè)沒有做驗(yàn)證。。
CentOS 8
在 CentOS 8 系統(tǒng)中,/etc/pam.d/system-auth 會(huì)包含下面一段描述
# User changes will be destroyed the next time authselect is run.
authselect
在 CentOS 8 及更高版本中,authselect 取代了 authconfig 用于管理身份驗(yàn)證和密碼策略
authselect 的基本概念
Profile(配置集): 每個(gè)配置集定義了一套完整的 PAM 和 NSS 配置文件,用于控制身份驗(yàn)證行為。配置集包含的文件通常包括 /etc/pam.d/system-auth、/etc/nsswitch.conf 等
Feature(功能模塊): 配置集可以啟用或禁用某些功能模塊,例如失敗登錄鎖定(faillock)、智能卡認(rèn)證(with-smartcard)等
Custom Profile(自定義配置集): 用戶可以創(chuàng)建自己的自定義配置集,基于現(xiàn)有配置集進(jìn)行修改,以滿足特定的身份驗(yàn)證需求
authselect 提供的標(biāo)準(zhǔn)配置集
minimal 配置集 :提供最基本的身份驗(yàn)證功能,只針對(duì)本地用戶,不依賴于任何外部服務(wù)
sssd 配置集: (System Security Services Daemon)支持本地和遠(yuǎn)程目錄服務(wù),可配置包括本地、 LDAP、Kerberos 等
winbind 配置集 : 與 Windows 活動(dòng)目錄(Active Directory)進(jìn)行集成
nsswitch 配置集 : 僅配置 nsswitch.conf 文件,而不對(duì) PAM 進(jìn)行配置。它適用于需要定制名稱服務(wù)切換(NSS)機(jī)制,但不想更改身份驗(yàn)證機(jī)制的場景 下
常用功能模塊
with-faillock : 啟用 PAM faillock 模塊,用于限制用戶在多次登錄失敗后的嘗試次數(shù),并鎖定賬戶一定時(shí)間
with-pamaccess: 啟用 PAM pam_access 模塊,該模塊用于限制哪些用戶可以從哪些主機(jī)進(jìn)行訪問。通過 /etc/security/access.conf 配置文件控制訪問權(quán)限
常用指令
配置集相關(guān)
select PROFILE-ID 選擇配置集
list 列出可用的配置集
show PROFILE-ID 顯示配置集信息
current 獲得當(dāng)前選擇配置集的標(biāo)識(shí)符
check 檢查當(dāng)前配置是否有效
create-profile 創(chuàng)建新的 authselect 配置集
test PROFILE-ID 列出配置集中所有文件內(nèi)容
功能模塊相關(guān)
list-features PROFILE-ID 列出指定配置集有效的功能模塊
enable-feature 啟用當(dāng)前選擇配置集中的功能
disable-feature 禁用當(dāng)前選擇配置集的功能
備份恢復(fù)相關(guān)
backup-list 列出有效備份
backup-remove BACKUP 刪除備份
backup-restore BACKUP 從備份中恢復(fù)
authselect使用
選擇配置集
這里只需要本地用戶認(rèn)證,所以選擇使用minimal配置集
# authselect select minimal --force
備份保存在 /var/lib/authselect/backups/2024-10-18-01-48-58.Iyjn0X # 這里會(huì)自動(dòng)進(jìn)行備份
選擇了配置文件 "minimal"。
配置密碼復(fù)雜度
修改配置文件 /etc/security/pwquality.conf 的內(nèi)容即可,相關(guān)參數(shù)與authconfig一致
配置登錄失敗策略
需要開啟 faillock
authselect enable-feature with-faillock
修改配置文件 /etc/security/faillock.conf 的內(nèi)容即可,相關(guān)參數(shù)與authconfig一致
進(jìn)行應(yīng)用
authselect apply-changes
查看
# authselect current
檔案檔案 ID: minimal
啟用的功能:
- with-faillock
自定義配置集
# 此命令將在 /etc/authselect/custom/myprofile/ 目錄下創(chuàng)建一個(gè)新的自定義配置集,基于 sssd
authselect create-profile myprofile -b sssd
藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。
更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。