您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。
PAM是由sun提出的認(rèn)證機(jī)制,通過(guò)一些動(dòng)態(tài)鏈接庫(kù)和一套統(tǒng)一的API可以讓系統(tǒng)管理員選擇應(yīng)用程序怎樣去認(rèn)證用戶(hù),而不需要知道應(yīng)用程序的內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),也不需要重新編譯代碼。
pam框架有以下四部分組成:
PAM 應(yīng)用程序,也稱(chēng)為消費(fèi)方;
PAM 庫(kù);
PAM 配置文件;
PAM 服務(wù)模塊,也稱(chēng)為提供者;
該框架可為與驗(yàn)證相關(guān)的活動(dòng)提供統(tǒng)一的執(zhí)行方式。采用該方式,應(yīng)用程序開(kāi)發(fā)者可使用 PAM 服務(wù),而不必了解策略的語(yǔ)義。算法是集中提供的。可以獨(dú)立于各個(gè)應(yīng)用程序?qū)λ惴ㄟM(jìn)行修改。借助 PAM,管理員可以根據(jù)特定系統(tǒng)的需要調(diào)整驗(yàn)證過(guò)程,而不必更改任何應(yīng)用程序。調(diào)整是通過(guò) PAM 配置文件 pam.conf 來(lái)執(zhí)行的。
二、PAM的配置詳解
PAM配置文件有兩種寫(xiě)法:
一種是寫(xiě)在/etc/pam.conf文件中,但centos6之后的系統(tǒng)中,這個(gè)文件就沒(méi)有了。 另一種寫(xiě)法是,將PAM配置文件放到/etc/pam.d/目錄下,其規(guī)則內(nèi)容都是不包含 service 部分的,即不包含服務(wù)名稱(chēng),而/etc/pam.d 目錄下文件的名字就是服務(wù)名稱(chēng)。如: vsftpd,login等.,只是少了最左邊的服務(wù)名列.如:/etc/pam.d/sshd
由上圖可以將配置文件分為四列,
第一列代表模塊類(lèi)型
第二列代表控制標(biāo)記
第三列代表模塊路徑
第四列代表模塊參數(shù)
1.PAM的模塊類(lèi)型
Linux-PAM有四種模塊類(lèi)型,分別代表四種不同的任務(wù)
它們是:認(rèn)證管理(auth),賬號(hào)管理(account),會(huì)話(huà)管理(session)和密碼(password)管理,一個(gè)類(lèi)型可能有多行,它們按順序依次由PAM模塊調(diào)用.
管理方式 | 說(shuō)明 |
---|---|
auth | 用來(lái)對(duì)用戶(hù)的身份進(jìn)行識(shí)別.如:提示用戶(hù)輸入密碼,或判斷用戶(hù)是否為root等. |
account | 對(duì)帳號(hào)的各項(xiàng)屬性進(jìn)行檢查.如:是否允許登錄,是否達(dá)到最大用戶(hù)數(shù),或是root用戶(hù)是否允許在這個(gè)終端登錄等. |
session | 這個(gè)模塊用來(lái)定義用戶(hù)登錄前的,及用戶(hù)退出后所要進(jìn)行的操作.如:登錄連接信息,用戶(hù)數(shù)據(jù)的打開(kāi)與關(guān)閉,掛載文件系統(tǒng)等. |
password | 使用用戶(hù)信息來(lái)更新.如:修改用戶(hù)密碼. |
2.PAM的控制標(biāo)記
PAM使用控制標(biāo)記來(lái)處理和判斷各個(gè)模塊的返回值.(在此只說(shuō)明簡(jiǎn)單的認(rèn)證標(biāo)記)
控制標(biāo)記 | 說(shuō)明 |
---|---|
required | 表示即使某個(gè)模塊對(duì)用戶(hù)的驗(yàn)證失敗,也要等所有的模塊都執(zhí)行完畢后,PAM 才返回錯(cuò)誤信息。這樣做是為了不讓用戶(hù)知道被哪個(gè)模塊拒絕。如果對(duì)用戶(hù)驗(yàn)證成功,所有的模塊都會(huì)返回成功信息。 |
requisite | 與required相似,但是如果這個(gè)模塊返回失敗,則立刻向應(yīng)用程序返回失敗,表示此類(lèi)型失敗.不再進(jìn)行同類(lèi)型后面的操作. |
sufficient | 表示如果一個(gè)用戶(hù)通過(guò)這個(gè)模塊的驗(yàn)證,PAM結(jié)構(gòu)就立刻返回驗(yàn)證成功信息(即使前面有模塊fail了,也會(huì)把 fail結(jié)果忽略掉),把控制權(quán)交回應(yīng)用程序。后面的層疊模塊即使使用requisite或者required 控制標(biāo)志,也不再執(zhí)行。如果驗(yàn)證失敗,sufficient 的作用和 optional 相同 |
optional | 表示即使本行指定的模塊驗(yàn)證失敗,也允許用戶(hù)接受應(yīng)用程序提供的服務(wù),一般返回PAM_IGNORE(忽略). |
3.模塊路徑
模塊路徑.即要調(diào)用模塊的位置. 如果是64位系統(tǒng),一般保存在/lib64/security,如: pam_unix.so
同一個(gè)模塊,可以出現(xiàn)在不同的類(lèi)型中.它在不同的類(lèi)型中所執(zhí)行的操作都不相同.這是由于每個(gè)模塊
針對(duì)不同的模塊類(lèi)型,編制了不同的執(zhí)行函數(shù).
4.模塊參數(shù)
模塊參數(shù),即傳遞給模塊的參數(shù).參數(shù)可以有多個(gè),之間用空格分隔開(kāi),如:
password required pam_unix.so nullok obscure min=4 max=8 md5
三、常用的PAM模塊介紹
PAM模塊 | 結(jié)合管理類(lèi)型 | 說(shuō)明 |
---|---|---|
pam_unix.so | auth | 提示用戶(hù)輸入密碼,并與/etc/shadow文件相比對(duì).匹配返回0 |
account | 檢查用戶(hù)的賬號(hào)信息(包括是否過(guò)期等).帳號(hào)可用時(shí),返回0. | |
password | 修改用戶(hù)的密碼. 將用戶(hù)輸入的密碼,作為用戶(hù)的新密碼更新shadow文件 | |
pam_shells.so | authaccount | 如果用戶(hù)想登錄系統(tǒng),那么它的shell必須是在/etc/shells文件中之一的shell |
pam_deny.so | accountauthpasswordsession | 該模塊可用于拒絕訪(fǎng)問(wèn) |
pam_permit.so | authaccountpasswordsession | 模塊任何時(shí)候都返回成功. |
pam_securetty.so | auth | 如果用戶(hù)要以root登錄時(shí),則登錄的tty必須在/etc/securetty之中. |
pam_listfile.so | authaccountpassword session | 訪(fǎng)問(wèn)應(yīng)用程的控制開(kāi)關(guān) |
pam_cracklib.so | password | 這個(gè)模塊可以插入到一個(gè)程序的密碼棧中,用于檢查密碼的強(qiáng)度. |
pam_limits.so | session | 定義使用系統(tǒng)資源的上限,root用戶(hù)也會(huì)受此限制,可以通過(guò)/etc/security/limits.conf或/etc/security/limits.d/*.conf來(lái)設(shè)定 |
四、實(shí)例
1、pam_securetty.so
限制root從tty1,tty2,tty5登錄(無(wú)實(shí)際意義,只是演示pam_securetty的用法)
在/etc/pam.d/login中添加如下一行
auth required pam_securetty.so
在/etc/pam.d/securetty中將tty1,tty2,tty5注釋即可
之后使用root用戶(hù)再次登錄,就會(huì)出現(xiàn)
這么做其實(shí)并不是只限制root用戶(hù),也可以將其它用戶(hù)用此方法來(lái)限定,當(dāng)系統(tǒng)安裝完成后,使用此方法來(lái)增強(qiáng)一下安全性。
2、pam_listfile.so
僅essun用戶(hù)可以通過(guò)ssh遠(yuǎn)程登錄
在/etc/pam.d/sshd文件中添加一條
auth required pam_listfile.so item=user sense=allow ``file``=``/etc/sshdusers` `onerr=succeed
添加兩個(gè)用戶(hù)essun和tom
編輯file指定的文件,添加上一個(gè)用戶(hù)essun
#echo "essun" >/etc/sshdusers
使用tom用戶(hù)登錄
可以看到提示輸入密碼,當(dāng)輸入正確的密碼后會(huì)提示
就像輸入了錯(cuò)誤的密碼一樣。而在使用essun用戶(hù)登錄則不會(huì)出現(xiàn)拒絕登錄的提示
注:此處如果root也使用ssh遠(yuǎn)程連接,也會(huì)受到pam_listfile.so限制的。
其實(shí)pam模塊的使用方法套路都差不多
如想了解更多的PAM模塊的用法請(qǐng)man modules
溫馨提示:
如果發(fā)生錯(cuò)誤,Linux-PAM 可能會(huì)改變系統(tǒng)的安全性。這取決于你自己的選擇,你可以選擇不安全(開(kāi)放系統(tǒng))和絕對(duì)安全(拒絕任何訪(fǎng)問(wèn))。通常,Linux-PAM 在發(fā)生錯(cuò)誤時(shí),傾向于后者。任何的配置錯(cuò)誤都可能導(dǎo)致系統(tǒng)整個(gè)或者部分無(wú)法訪(fǎng)問(wèn)。
配置 Linux-PAM 時(shí),可能遇到最大的問(wèn)題可能就是 Linux-PAM 的配置文件/etc/pam.d/*被刪除了。如果發(fā)生這種事情,你的系統(tǒng)就會(huì)被鎖住。
有辦法可以進(jìn)行恢復(fù),最好的方法就是用一個(gè)備份的鏡像來(lái)恢復(fù)系統(tǒng),或者登錄進(jìn)單用。
以上就是Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。