歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Pam的配置過程詳解

PAM:可插拔的認證模塊

模塊  /lib/security

接口文件  /etc/pam.d/

type

auth  驗證是否有該帳號

account  口令 帳號是否過期

password  用戶修改口令

session   會話過程

control

required    必須通過,

          如果沒有通過 ,測底否定  ,而且還要看後續模塊

          如果通過 ,且還要看後續模塊

requisite   必須通過,

          如果沒有通過 ,測底否定  ,而且不看後續模塊

          如果通過 ,且還要看後續模塊

sufficient  如果沒有通過 ,不否定  ,而且看後續模塊

           只要有一個通過  通過

查看模塊

[root@localhost security]# pwd

/lib/security

[root@localhost security]# ls

1.簡單模塊的應用

例如 pam_nologin.so  模塊

[root@localhost ~]# vim /etc/nologin   #不進行任何設置

普通的用戶就不能登錄了

原因是

[root@localhost pam.d]# pwd

/etc/pam.d

[root@localhost pam.d]# vim sshd

3  account    required     pam_nologin.so    

查看日志如下:

calhost ~]# tail -f /var/log/secure

1:28:44 localhost sshd[5647]: fatal: Access denied for user u1 by PAM account configuration

Dec 23 21:28:44 localhost sshd[5646]: Failed password for u1 from 192.168.10.1 port 3486 ssh2

刪除rm /etc/nologin 就可以正常登錄

2.模塊pam_access.so  

例子1.限定user1只能從192.168.10.1 ssh

[root@localhost security]# pwd

/etc/security

[root@localhost security]# vim access.conf

25 + : user1 :192.168.10.1

26 - :user1 : all

限定user1可以從任何地方 ssh  其他人(管理員除外)都不可以ssh

查看日志如下:

Dec 23 23:17:06 localhost sshd[7256]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost.localdomain  user=user1

Dec 23 23:17:09 localhost sshd[7256]: Failed password for user1 from 127.0.0.1 port 44903 ssh2

3.模塊pam_limits.so

4.限制用戶連接次數

[root@localhost security]# vim limits.conf  

49 user1            -       maxlogins       2

驗證

User1 最多只能連接2個,超過的時候就不能登錄上去

查看日志如下

Dec 24 00:03:14 localhost sshd[7958]: pam_limits(sshd:session): Too many logins (max 2) for user1

驗證user1 可以通過制定ip登錄 其他ip不行

注意:每一次做完限制的時候不要忘了清空規則,以免影響後面的測試。

限定 test user1組用戶可以ssh,  user2 不屬於test組,不可以利用ssh

1.先以vsftpd為例測試某些組的用戶不能登錄

2.安裝vsftpd

[root@localhost pam.d]# pwd

/etc/pam.d

[root@localhost pam.d]# vim vsftpd

auth   required  pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#在/etc/vsftpd/ftpusers裡的用戶都不能登錄ftpd

將user1 加入ftpuser 測試驗證。

測試發現不能登錄,新添加的user2 可以登錄

查看日志如下:

Dec 24 00:38:52 localhost vsftpd: pam_listfile(vsftpd:auth): Refused user user1 for service vsftpd

下面我們做一組能夠ssh的用戶 指定只有這一組能夠通過ssh登錄

[root@localhost security]# gpasswd -a user1 test

[root@localhost security]# groups user1

user1 : user1 test

[root@localhost security]# useradd user2

[root@localhost pam.d]# pwd

/etc/pam.d

[root@localhost pam.d]# vim sshd

session   required  pam_listfile.so item=group sense=allow file=/etc/allowgroup onerr=succeed

把用戶組test添加到/etc/groupallow

vim /etc/allowgroup

Test

驗證如下:

User1可以通過ssh登錄 user2 不可以通過ssh登錄

查看日志如下:

Dec 24 01:07:28 localhost sshd[9091]: Accepted password for user1 from 192.168.10.20 port 1066 ssh2

Dec 24 01:08:46 localhost sshd[9130]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.10.20  user=user2

Dec 24 01:08:48 localhost sshd[9130]: Failed password for user2 from 192.168.10.20 port 1067 ssh2

 

注意:每一次做完限制的時候不要忘了清空規則,以免影響後面的測試。

模塊pam_securetty

禁止root從第二個終端登錄

進入模塊後刪除tty2即可

[root@localhost ~]# vim /etc/securetty

Ctrl +Alt+F2 切換到第二個終端測試

發現不能登錄

查看日志

Dec 24 01:20:14 localhost login: pam_securetty(login:auth): access denied: tty 'tty2' is not secure !

Dec 24 01:20:19 localhost login: FAILED LOGIN 1 FROM (null) FOR root, Authentication failure

模塊pam_shell

在本地登錄 凡是使用bash時都不允許登錄

使用login的應用 使用pam_shell 控制

[root@localhost ~]# vim /etc/shells

/bin/sh

#/bin/bash        先把bash刪掉掉

/sbin/nologin

/bin/tcsh

/bin/csh

/bin/ksh

[root@localhost pam.d]# vim login

session    required     pam_shells.so

測試發現所有的bash 用戶都不能登錄

Dec 24 01:34:51 localhost login: pam_unix(login:session): session opened for user user1 by LOGIN(uid=0)

Dec 24 01:34:51 localhost login: Module is unknown

提示未知的模塊

模塊pam_cracklib

[root@localhost pam.d]# vim system-auth

13  password    requisite     pam_cracklib.so try_first_pass retry=3

修改密碼最多三次 超過退出

本文出自 “Running” 博客,請務必保留此出處http://dg123.blog.51cto.com/4750342/1098275

Copyright © Linux教程網 All Rights Reserved