首页 > 代码库 > Linux中pam认证详解(下)
Linux中pam认证详解(下)
Linux中pam认证详解(下)
在上一篇中详细的介绍了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
(3)编辑access.so模块的配置文件
[root@huangzhong pam.d]# vim /etc/security/access.conf
(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登录测试结果如下:
//在192.168.2.1上ssh登录,结果如下:
在这里也可以通过查看日志信息,查看登录的结果,所要查看的日志是:
[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
(2) 创建manager组,并编辑一些用户
[root@huangzhong pam.d]# vim /etc/manager
//创建用户user2和user3,并给予口令
(3) 登录测试
使用user1登录测试
使用user2和user3登录测试结果如下:
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
(2) 编辑/etc/security/limits.conf 文件
[root@huangzhong pam.d]# vim /etc/security/limits.conf
(3) 登录测试
使用user1登录3次测试结果如下:
查看日志信息如下:
[root@huangzhong pam.d]# tail -f /var/log/secure
本文出自 “快乐一生” 博客,请务必保留此出处http://tyjhz.blog.51cto.com/8756882/1436561