當(dāng)前位置:
首頁(yè) >
Linux系统安全与应用(一)——账号安全与控制与PAM认证模块
發(fā)布時(shí)間:2024/2/28
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Linux系统安全与应用(一)——账号安全与控制与PAM认证模块
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Linux系統(tǒng)安全與應(yīng)用(一)——賬號(hào)安全與控制與PAM認(rèn)證模塊
- 一、賬號(hào)安全控制
- 1、系統(tǒng)賬號(hào)清理
- 2、密碼安全控制
- ①、設(shè)置密碼有效期
- ②、要求用戶下次登陸時(shí)更改密碼
- 3、命令歷史限制
- 4、終端自動(dòng)注銷
- 5、切換用戶:su
- ①、用途及用法
- ②、密碼驗(yàn)證
- ③、限制使用su命令切換用戶
- 二、Linux中的PAM安全認(rèn)證
- 1、su命令的安全隱患
- 2、PAM可插拔式認(rèn)證模塊
- 3、PAM認(rèn)證原理
- 4、每一列的名稱解釋
- 5、控制標(biāo)記的補(bǔ)充說明
- 6、PAM安全認(rèn)證流程
一、賬號(hào)安全控制
1、系統(tǒng)賬號(hào)清理
| usermod -s /sbin/nologin 用戶名 | 禁止用戶登錄 | |
| usermod -s /bin/false 用戶名 | 禁止用戶登錄 | |
| usermod -L 用戶名 | 鎖定用戶賬戶 | |
| passwd -l 用戶名 | 鎖定用戶賬戶 | |
| 刪除無(wú)用的賬號(hào) | userdel [-r] 用戶名 | |
| chattr +i /etc/passwd /etc/shadow | 鎖定賬號(hào)文件 | |
| lsattr /etc/passwd /etc/shadow | 查看賬號(hào)文件 | |
| chattr -i /etc/passwd /etc/shadow | 解鎖賬號(hào)文件 | |
2、密碼安全控制
①、設(shè)置密碼有效期
②、要求用戶下次登陸時(shí)更改密碼
3、命令歷史限制
- 減少記錄的命令條數(shù)
- 登錄時(shí)自動(dòng)清空命令歷史
4、終端自動(dòng)注銷
5、切換用戶:su
①、用途及用法
②、密碼驗(yàn)證
- root→任意用戶,不驗(yàn)證密碼
- 普通用戶→其他用戶,驗(yàn)證目標(biāo)用戶的密碼
③、限制使用su命令切換用戶
- 將允許使用su命令的用戶加入wheel組
- 啟用pam_wheel認(rèn)證模塊
二、Linux中的PAM安全認(rèn)證
1、su命令的安全隱患
- 默認(rèn)情況下,任何用戶都允許使用su命令,有機(jī)會(huì)反復(fù)嘗試其他用戶(如root)的登錄密碼,帶來安全風(fēng)險(xiǎn)
- 為了加強(qiáng)su命令的使用控制,可借助于PAM認(rèn)證模塊,只允許極個(gè)別用戶使用su命令進(jìn)行切換
2、PAM可插拔式認(rèn)證模塊
- 是一種高效而且靈活便利的用戶級(jí)別的認(rèn)證方式
- 也是當(dāng)前Linux服務(wù)器普遍使用的認(rèn)證方式
3、PAM認(rèn)證原理
- 一般遵循的規(guī)律
- Service(服務(wù))→ PAM(配置文件)→ pam_*.so
- 首先要確定哪一項(xiàng)服務(wù),然后加載相應(yīng)的 PAM 的配置文件(位于 /etc/pam.d 下),最后調(diào)用認(rèn)證文件(位于 /lib64/security 下)進(jìn)行安全認(rèn)證
- 用戶訪問服務(wù)器時(shí),服務(wù)器的某一個(gè)服務(wù)程序把用戶的請(qǐng)求發(fā)送到 PAM 模塊進(jìn)行認(rèn)證
- 不同的應(yīng)用程序所對(duì)應(yīng)的 PAM 模塊是不同的
- 如果想要查看某個(gè)程序是否支持 PAM 認(rèn)證,可以使用 ls 命令,進(jìn)行查看 /etc/pam.d/
4、每一列的名稱解釋
| auth | 對(duì)用戶身份進(jìn)行識(shí)別,如提示輸入密碼,判斷是否為root | |
| account | 對(duì)賬號(hào)各項(xiàng)屬性進(jìn)行檢查,如是否允許登錄系統(tǒng),賬號(hào)是否已經(jīng)過期,是否到達(dá)最大用戶數(shù)等 | |
| password | 使用用戶信息來更新數(shù)據(jù),如修改用戶密碼 | |
| session | 定義登錄前以及退出后所要進(jìn)行的會(huì)話操作管理,如登錄連接信息,用戶數(shù)據(jù)的打開和關(guān)閉,掛載文件系統(tǒng) | |
| required | 表示需要返回一個(gè)成功值,如果返回失敗,不會(huì)立即將失敗結(jié)果返回,而是繼續(xù)進(jìn)行同類型的下一步驗(yàn)證,所有此類型的模塊都執(zhí)行完成后,再返回失敗 | |
| requisite | 與required類似,但如果此模塊返回失敗,則立刻返回失敗并表示此類型失敗 | |
| sufficient | 如果此模塊返回成功,則直接向程序返回成功,表示此類成功,如果失敗,也不影響這類型的返回值 | |
| optional | 不進(jìn)行成功與否的返回,一般不用于驗(yàn)證,只是顯示信息(通常用于session類型) | |
| include | 表示在驗(yàn)證過程中調(diào)用其他的 PAM 配置文件。比如很多應(yīng)用通過完整調(diào)用/etc/pam.d/system-auth (主要負(fù)責(zé)用戶登錄系統(tǒng)的認(rèn)證工作)來實(shí)現(xiàn)認(rèn)證而不需要重新逐一去寫配置項(xiàng) | |
| 第三列代表PAM模塊 | 默認(rèn)是在/lib64/security/目錄下,如果不在此默認(rèn)路徑下,要填寫絕對(duì)路徑 | |
| 同一個(gè)模塊,可以出現(xiàn)在不同的模塊類型中,它在不同的類型中所執(zhí)行的操作都不相同,這是由于每個(gè)模塊針對(duì)不同的模塊類型編制了不同的執(zhí)行函數(shù) | ||
| 第四列代表PAM模塊的參數(shù) | 根據(jù)所使用的模塊進(jìn)行添加 傳遞給模塊的參數(shù),參數(shù)可以有多個(gè),之間用空格分隔開 | |
5、控制標(biāo)記的補(bǔ)充說明
- required
表示該行以及所涉及模塊的成功是用戶通過鑒別的【必要條件】。換句話說,只有當(dāng)對(duì)應(yīng)于應(yīng)用程序的所有帶required標(biāo)記的模塊全部成功后,該程序才能通過鑒別。同時(shí),如果任何帶required標(biāo)記的模塊出現(xiàn)了錯(cuò)誤,PAM并不立刻將錯(cuò)誤消息返回給應(yīng)用程序,而是在所有此類型模塊都調(diào)用完畢后才將錯(cuò)誤消息返回調(diào)用他的程序。
反正說白了,就是必須將所有的此類型模塊都執(zhí)行一次,其中任何一個(gè)模塊驗(yàn)證出錯(cuò),驗(yàn)證都會(huì)繼續(xù)進(jìn)行,并在執(zhí)行完成之后才返回錯(cuò)誤信息。這樣做的目的就是不讓用戶知道自己被哪個(gè)模塊拒絕,通過一種隱蔽的方式來保護(hù)系統(tǒng)服務(wù)。就像設(shè)置防火墻規(guī)則的時(shí)候?qū)⒕芙^類的規(guī)則都設(shè)置為drop樣,以致于用戶在訪問網(wǎng)絡(luò)不成功的時(shí)候無(wú)法準(zhǔn)確判斷到底是被拒絕還是目標(biāo)網(wǎng)絡(luò)不可達(dá)。 - requisite
與required相仿,只有帶此標(biāo)記的模塊返回成功后,用戶才能通過鑒別。不同之處在于其一旦失敗就不再執(zhí)行堆中后面的其他模塊,并且鑒別過程到此結(jié)束,同時(shí)也公立即返回錯(cuò)誤信息。與上面的required相比,似乎要顯得更光明正大一些。 - sufficient
表示該行以及所涉及模塊驗(yàn)證成功是用戶通過鑒別的【充分條件】。也就是說只要標(biāo)記為sufficient的模塊一旦驗(yàn)證成功,那么PAM便立即向應(yīng)用程序返回成功結(jié)果而不必嘗試任何其他模塊。即便后面的層疊模塊使用了requisite或者required控制標(biāo)志也是一樣。當(dāng)標(biāo)記為sufficient的模塊失敗時(shí),sufficient模塊會(huì)當(dāng)做optional對(duì)待。因此擁有sufficient標(biāo)志位的配置項(xiàng)在執(zhí)行驗(yàn)證出錯(cuò)的時(shí)候并不公導(dǎo)致整個(gè)驗(yàn)證失敗,但執(zhí)行驗(yàn)證成功之時(shí)則大門敞開。所以該控制位的使用務(wù)必慎重。 - optional
他表示即便該行所涉及的模塊驗(yàn)證失敗用戶仍能通過認(rèn)證。在PAM體系中,帶有該標(biāo)記的模塊失敗后將繼續(xù)處理下一模塊。也就是說即使本行指定的模塊驗(yàn)證失敗,也允許用戶享受應(yīng)用程序提供的服務(wù)。使用該標(biāo)志,PAM框架會(huì)忽略這個(gè)模塊產(chǎn)生的驗(yàn)證錯(cuò)誤,繼續(xù)順序執(zhí)行下一個(gè)層疊模塊。
6、PAM安全認(rèn)證流程
- 1、required驗(yàn)證失敗時(shí)仍然繼續(xù),但返回Fail
- 2、requisite驗(yàn)證失敗則立即結(jié)束整個(gè)驗(yàn)證過程,返回Fail
- 3、sufficient驗(yàn)證成功則立即返回,不再繼續(xù),否則忽略結(jié)果并繼續(xù)
- 4、optional不用于驗(yàn)證,只顯示信息(通常用于session類型)
總結(jié)
以上是生活随笔為你收集整理的Linux系统安全与应用(一)——账号安全与控制与PAM认证模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存条大揭秘:容量、速度、兼容性全面解析
- 下一篇: Linux系统安全与应用(二)——安全机