簡述PAM模塊認證

 簡述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.3SSH登錄 模塊爲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

-“ 表示hardsoft都一樣 (關於語法格式,配置文件裏有說明)

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

User1test組能登錄,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

這個驗證時好像有些小問題!!!!!

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