溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

發(fā)布時(shí)間:2022-01-26 17:25:50 來(lái)源:億速云 閱讀:190 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(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框架有以下四部分組成:

  1. PAM 應(yīng)用程序,也稱(chēng)為消費(fèi)方;

  2. PAM 庫(kù);

  3. PAM 配置文件;

  4. 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

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

由上圖可以將配置文件分為四列,

第一列代表模塊類(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.soauth提示用戶(hù)輸入密碼,并與/etc/shadow文件相比對(duì).匹配返回0
account檢查用戶(hù)的賬號(hào)信息(包括是否過(guò)期等).帳號(hào)可用時(shí),返回0.
password修改用戶(hù)的密碼. 將用戶(hù)輸入的密碼,作為用戶(hù)的新密碼更新shadow文件
pam_shells.soauthaccount如果用戶(hù)想登錄系統(tǒng),那么它的shell必須是在/etc/shells文件中之一的shell
pam_deny.soaccountauthpasswordsession該模塊可用于拒絕訪(fǎng)問(wèn)
pam_permit.soauthaccountpasswordsession模塊任何時(shí)候都返回成功.
pam_securetty.soauth如果用戶(hù)要以root登錄時(shí),則登錄的tty必須在/etc/securetty之中.
pam_listfile.soauthaccountpassword session訪(fǎng)問(wèn)應(yīng)用程的控制開(kāi)關(guān)
pam_cracklib.sopassword這個(gè)模塊可以插入到一個(gè)程序的密碼棧中,用于檢查密碼的強(qiáng)度.
pam_limits.sosession定義使用系統(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

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

在/etc/pam.d/securetty中將tty1,tty2,tty5注釋即可

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

之后使用root用戶(hù)再次登錄,就會(huì)出現(xiàn)

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

這么做其實(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

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

添加兩個(gè)用戶(hù)essun和tom

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

編輯file指定的文件,添加上一個(gè)用戶(hù)essun

 #echo "essun" >/etc/sshdusers

使用tom用戶(hù)登錄

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

可以看到提示輸入密碼,當(dāng)輸入正確的密碼后會(huì)提示

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

就像輸入了錯(cuò)誤的密碼一樣。而在使用essun用戶(hù)登錄則不會(huì)出現(xiàn)拒絕登錄的提示

Linux系統(tǒng)PAM認(rèn)證機(jī)制是什么

注:此處如果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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI