首页 > 代码库 > Linux中pam认证详解(下)

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 

 

 


本文出自 “快乐一生” 博客,请务必保留此出处http://tyjhz.blog.51cto.com/8756882/1436561