用PAM認證加強Linux伺服器的安全

2021-06-18 07:01:55 字數 3466 閱讀 1343

pam(pluggable authentication modules)即可插拔式認證模組,它是一種高效而且靈活便利的使用者級別的認證方式,它也是當前linux伺服器普遍使用的認證方式

1.部署pam認證的必要性

我們知道一台linux伺服器會開許多不同的服務,這些服務中很多服務本身並沒有認證功能,只是把認證交給使用者名稱及密碼。如果這樣的話,那麼所有服務都用linux系統的使用者名稱及密碼來認證,對於伺服器來說是很危險的。比如一台伺服器開著ftp、smtp、ssh等服務,那麼新建乙個使用者預設就享有對以上的服務的操作許可權,那麼如果乙個使用者的帳號密碼洩露會涉及到多個服務。因此,不管是pc還是伺服器在類linux系統中部署pam認證是非常必要的。通過新型的認證模組——pam就能解決認證方面的不足,加強linux系統安全。

2.pam認證的方式

pam認證一般遵循這樣的順序:service(服務)→pam(配置檔案)→pam_*.so。pam認證首先要確定那一項服務,然後載入相應的pam的配置檔案(位於/etc/pam.d下),最後呼叫認證檔案(位於/lib/security下)進行安全認證。通常情況下,在linux系統安裝完成後會在/etc/pam.d路徑下為我們提供了一些預設的配置檔案。另外,大家要知道/lib/security目錄是認證檔案的預設存放位置。/etc/pam.d路徑下的預設配置檔案是我們進行pam配置的模板,通常情況下我們根據安全需要對於進行修改或者新增相應的項即可。

3.pam認證的構成

客觀地說pam認證還是比較複雜的,簡單地講它包括四種常見認證型別(module type):即auth認證管理、account使用者管理、password密碼認證管理、session會話管理。以/etc/pam.d/login為例,我們可以看到它的配置檔案,區域1中的auth、account、password、session等都是認證型別。區域2中的required、 requisite 、sufficient 、optional是認證的流程控制。最後面的區域3就是認證的pam檔案了。

八、常用的pam服務模組

下面是linux提供的pam模組列表(只是其中一部分):  

模組檔案    模組功能描述                    相關配置檔案 

pam_access   提供logdaemon風格的登入控制             /etc/security/access.conf   

pam_chroot   提供類似chroot命令的功能  

pam_cracklib  對密碼的強度進行一定的檢查庫檔案libcrack和字典檔案 /usr/lib/cracklib_dict  

pam_deny    總是無條件地使認證失敗   

pam_env     設定或取消環境變數                 /etc/security/pam_env.conf 

pam_filter   對輸入輸出流進行過濾 filters 

pam_ftp.so   對匿名ftp使用者進行認證 

pam_group    當使用者在指定的終端上請求指定的服務時賦予該使用者相應的組許可權 /etc/security/group.conf 

pam_issue    在提示使用者輸入使用者名稱之前顯示/etc/issue檔案的內容  /etc/issue 

pam_krb4    對使用者密碼進行kerberos認證             相應的kerberos庫檔案 

pam_lastlog   在使用者登入成功後顯示關於使用者上次登入的資訊,並維護/var/log/lastlog檔案     /var/log/lastlog

pam_limits   限制使用者會話所能使用的系統資源           /etc/security/limits.conf   

pam_listfile  根據指定的某個檔案決定是否允許或禁止提供服務    例如/etc/ftpusers  

pam_mail    檢查使用者的郵箱中是否有新郵件            /var/spool/mail/***x  

pam_mkhomedir  為使用者建立主目錄 /etc/skel/   

pam_motd    顯示/etc/motd檔案的內容 /etc/motd  

pam_nologin   根據/etc/nologin檔案的存在與否來決定使用者認證是否成功  /etc/nologin  

pam_permit   總是無條件地使認證成功  

pam_pwdb    作為pam_unix_***x模組的乙個替代使用password database通用介面進行認證  /etc/pwdb.conf 

pam_radius   提供遠端身份驗證撥入使用者服務(radius)的認證

pam_rhosts_auth 利用檔案~/.rhosts和 /etc/hosts.equiv對使用者進行認證。

pam_rootok 檢查使用者是否為超級使用者,如果是超級使用者則無條件地通過認證。

pam_securetty  提供標準的unix securetty檢查            /etc/securetty

pam_time    提供基於時間的控制,比如限制使用者只能在某個時間段內才能登入 /etc/security/time.conf 

pam_unix    提供標準的unix認證pam_userdb 利用berkeley db資料庫來檢查berkeley db使用者/密碼 /etc/passwd和 /etc/shadow 

pam_warn    利用syslog( )記錄一條告警資訊

pam_wheel    只允許wheel組的使用者有超級使用者的訪問許可權

pluggable authentication modules for linux 可插撥認證模組

當使用者訪問伺服器,服務程式將請求傳送到pam模組,pam模組根據服務名稱在/etc/pam.d目錄下選擇乙個對應的服務檔案,最後根據服務檔案的內容選擇具體的pam模組進行處理。

通過ldd檢視服務程式在編譯時是否使用了libpam.so,決定服務程式是否支援pam認證。

具體的pam檔案放在/lib/security目錄下,服務檔案放在/etc/pam.d目錄下

pam服務檔案格式

eg:auth        required   pam_security.so

auth        required   pam_stack.so service=system-auth

service表示呼叫子服務檔案

module-type:

auth              檢查使用者和密碼,分配許可權

account           檢查賬號是否過期,是否有權登入

session           從使用者登入成功到退出的會話控制

password          控制使用者改密碼的過程

control-flag:

required          要求矣須通過,否則結束退出

requisite         如果不通過還可繼續向下認證,後面有一通過即可。

sufficient        通過則不需要向下認證

optional          可選項

linux中pam認證解析

摘自 首先了解一下,什麼是linux的pam認證呢?pam認證機制 簡單來說就是linux系統採取的這一種對不同使用者以及系統中的不同服務進行的安全認證機制。認證流程 linux系統首先確定所需認證的服務,然後載入相應的pam的配置檔案 位於 etc pam.d下 最後呼叫認證檔案 位於 lib s...

Linux使用PAM鎖定多次登陸失敗的使用者

如何在linux環境中使用pam鎖定多次登入失敗使用者 修改如下檔案 etc pam.d sshd 遠端ssh etc pam.d login 終端 內容如下 1 2 3 4 5 6 pam 1.0 auth required pam tally2.so deny 3 unlock time 120...

用FinalShell連線linux伺服器

參考 主要特性 1.多平台支援windows,macos,linux 2.多標籤,批量伺服器管理.3.支援登入ssh和windows遠端桌面.4.漂亮的平滑字型顯示,內建100多個配色方案.5.終端,sftp同屏顯示,同步切換目錄.6.命令自動提示,智慧型匹配,輸入更快捷,方便.7.sftp支援,通...