Linux中pam認證詳解(下)

Linuxpam認證詳解(下)

在上一篇中詳細的介紹了pam的介紹、pam認證原理、pam認證構成以及pam驗證控制類型,下面向大家詳細介紹一下常用的pam服務模塊,以及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/xxxx

pam_mkhomedir 爲用戶建立主目錄 /etc/skel/

pam_motd 顯示/etc/motd文件的內容 /etc/motd

pam_nologin 根據/etc/nologin文件的存在與否 /etc/nologin

來決定用戶認證是否成功

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

pam_pwdb 作爲pam_unix_xxxx模塊的一個替代。/etc/pwdb.conf

使用Password Database通用接口進行認證。

pam_radius 提供遠程身份驗證撥入用戶服務(RADIUS)的認證

pam_rhosts_auth 利用文件~/.rhosts和/etc/hosts.equiv和~/.rhosts

/etc/hosts.equiv對用戶進行認證。

pam_rootok 檢查用戶是否爲超級用戶,如果是超級用戶(uid=0)則無條件地通過認證。

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

pam_time 提供基於時間的控制,比如限制 /etc/security/time.conf

用戶只能在某個時間段內才能登錄

pam_unix 提供標準的Unix認證 /etc/passwd和/etc/shadow

pam_userdb 利用Berkeley DB數據庫來檢查用戶/密碼

pam_warn 利用syslog( )記錄一條告警信息

pam_wheel 只允許wheel組的用戶有超級用戶的存取權限

 

二、pam認證的應用

1、案例1(pam_access.so)

現有一賬號user1 只允許192.168.2.1 ssh登錄

(1)安裝pam

[root@huangzhong ~]# mount /dev/cdrom /media/cdrom/

[root@huangzhong ~]# cd /media/cdrom/Packages/

[root@huangzhong Packages]# ll |grep pam  //過濾與pam相關的包

[root@huangzhong Packages]# yum install pam-1.1.1-13.el6.x86_64.rpm 

(2)因爲限制ssh登錄,所以這裏要用到sshd模塊,因此要編輯/etc/pam.d/

[root@huangzhong ~]# cd /etc/pam.d/

[root@huangzhong pam.d]# vim sshd

wKioL1O99geDnjwxAAEsEWCM8KQ180.jpg 

(3)編輯access.so模塊的配置文件

[root@huangzhong pam.d]# vim /etc/security/access.conf

wKiom1O99kOyF4J8AAEQy_4PWCs495.jpg 

(4)測試驗證

//新建user1用戶

[root@huangzhong ~]# useradd user1

[root@huangzhong ~]# passwd user1

Changing password for user user1.

New password: 

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is too simple

Retype new password: 

passwd: all authentication tokens updated successfully.

//在本地ssh登錄測試結果如下:

wKioL1O99iCxHyvSAAE_p75laq8564.jpg 

//在192.168.2.1上ssh登錄,結果如下:

 

wKioL1O99jWwnVwhAAFKjGHwVFY724.jpg

wKiom1O99p3w-U4bAAGaakCIVJA799.jpg

在這裏也可以通過查看日誌信息,查看登錄的結果,所要查看的日誌是:

[root@huangzhong ~]# tail -f /var/log/secure

2、案例2(pam_listfile.so)

在對Linux服務器進行管理時,只允許manager組的用戶可以管理,是通過ssh管理。

(1) 因爲限制ssh登錄,所以這裏要用到sshd模塊,因此要編輯/etc/pam.d/

[root@huangzhong ~]# cd /etc/pam.d/

[root@huangzhong pam.d]# vim sshd

wKiom1O99rOhiLOjAAFcdUKZW_8451.jpg 

(2) 創建manager組,並編輯一些用戶

[root@huangzhong pam.d]# vim /etc/manager

wKioL1O99o7zpLl_AABP8bvWow8222.jpg 

//創建用戶user2和user3,並給予口令

wKiom1O99sfAGSSpAALjbStWNoI350.jpg 

(3) 登錄測試

使用user1登錄測試

wKioL1O99qaAr8WsAAKrgIVt0Ek023.jpg 

使用user2和user3登錄測試結果如下:

wKiom1O99u3xNuPsAAHpWXa9fWQ638.jpg 

 

3、案例3(pam_limts.so)

限制user1,ssh在線的登陸次數爲2次

(1) 因爲限制ssh登錄,所以這裏要用到sshd模塊,因此要編輯/etc/pam.d/

[root@huangzhong ~]# cd /etc/pam.d/

[root@huangzhong pam.d]# vim sshd

wKiom1O991KBecA5AADBs4DQDHQ585.jpg 

(2) 編輯/etc/security/limits.conf  文件

[root@huangzhong pam.d]# vim /etc/security/limits.conf 

wKiom1O99z6BKsHtAADW-mWEWcs934.jpg 

(3) 登錄測試

使用user1登錄3次測試結果如下:

wKioL1O99zOx8ObTAAGadsiwi8Y844.jpg 

查看日誌信息如下:

[root@huangzhong pam.d]# tail -f /var/log/secure

wKiom1O9923BIU9MAARyk0PASS4476.jpg 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章