您好,登錄后才能下訂單哦!
簡述PAM模塊認證
Pam可插拔的認證模塊
接口文件在/etc/pam.d/目錄下
調用的模塊文件 /lib/security目錄下
模塊的配置文件/etc/security/目錄下
日志信息存放在/var/log/secrue
網絡中的很多用戶需要對我們的服務器進行遠程管理、FTP登錄等等,服務器需要對用戶進行認證
通過PAM調用與之服務相對應的接口文件進行模塊認證。
PAM服務文件
格式:
Tyep control 模塊
Type 有這幾類
auth 驗證是否有這個賬號
account 賬號是否過期
password 改變口令的時候對密碼的長短、是否是字典里的進行驗證
session 回話控制
control :
required 必須通過,
如果沒有通過 ,徹底否定 ,而且還要看后續模塊
如果通過 ,且還要看后續模塊
requisite 必須通過,
如果沒有通過 ,徹底否定 ,而且不看后續模塊
如果通過 ,且還要看后續模塊
sufficient 如果沒有通過 ,不否定 ,而且看后續模塊
只要有一個通過 通過
optional
Include (共同調用的接口文件,包含很多模塊)
常用的PAM模塊
pam_access.so 控制訪問者地址與賬號名稱
pam_lisffile.so 控制訪問者的賬號名稱或登錄位置
pam_limits.so 控制位用戶分配的資源
pam_rootok.so 對管理員無條件允許通過
pam_userdb.so 設定獨立用戶賬號數據庫認證
等等
下面通過幾個小例子說明一下
1、不允許普通用戶登錄服務器
打開sshd的接口文件 /etc/pam.d/login 如下,調用了pam_nologin.so模塊,且是必須驗證的
查看關于pam_nologin.so模塊的說明文檔知道,在/etc/目錄下新建一個nologin文件就可以了
touch /etc/nologin
用user1在通過ssh登錄一下試試,登不進去了,如下:
(由于login文件里也調用了該模塊,所以在本機上所有用戶也登陸不了了)
2、限制用戶user1只能從192.168.101.3上SSH登錄 模塊為pam_access.so
vim /etc/pam.d/sshd --編輯ssh的接口文件sshd如下
和pam_access.so模塊有個像對應的配置文件access.conf
vim /etc/security/access.conf 添加如下一行
+ : user1 : 192.168.101.3
- : user1 : all 表示不允許從其它地方ip登錄
其中”+“表示授權 ”user1“ 授權的用戶 ”192.168.101.3“ 表示來源
從192.168.101.3的登錄,授權成功
日志如下:
pam_access(sshd:session): access denied for user `user1' from `192.168.101.103'
從其它的ip登錄,拒絕
PAM: pam_open_session(): Permission denied
如果是只有user1能從192.168.101.180登錄
將”- : user1 : all “改為“- : all : all ”
3、限制user1賬號本地終端的登錄次數為2次 模塊pam_limits.so
vim /etc/security/limits.conf 添加如下一句
user1 - maxlogins 2
”-“ 表示hard和soft都一樣 (關于語法格式,配置文件里有說明)
vim /etc/pam.d/login --編輯login接口文件添加如下:
session required pam_limits.so
用user1登錄三次,第三次被拒絕如下:
4、在我的用戶中凡是在test組中的用戶都能ssh,不是改組的用戶不能SSH 模塊pam_listfile.so (基于額外的文件)
vim /etc/pam.d/sshd 添加如下:
session required pam_listfile.so item=group sense=allow file=/etc/grouptest onerr=succeed
--額外文件為/etc/grouptest 如果沒有這個文件,無限制
新建改文件,并添加test組
echo "test" > /etc/grouptest
User1在test組能登錄,user2不在,不能登錄
5、只允許root從安全的終端登錄即不允許從tty1登錄 模塊pam_securetty.so
vim /etc/securetty
刪除 tty1
默認Login接口文件已經調用了該模塊
當root從終端1登錄時,如下
6、在本地不允許使用bash shell登錄 模塊 pam_shells.so
默認是在/etc/shells里列出的都能
[root@localhost pam.d]# vim /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
將上述的/bin/bash 刪掉
vim /etc/pam.d/login 編輯登錄文件來調用該模塊 如下
session required pam_shells.so
這個驗證時好像有些小問題!!!!!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。