pam语法

Pluggable Authentication Modules for Linux 可插拨认证模块 
当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,最后根据服务文件的内容选择具体的PAM模块进行处理。 

通过ldd查看服务程序在编译时是否使用了libpam.so,决定服务程序是否支持PAM认证。 
具体的pam文件放在/lib/security目录下,服务文件放在/etc/pam.d目录下 

PAM服务文件格式 
eg: 
auth required pam_security.so 
auth required pam_stack.so service=system-auth 
service表示调用子服务文件 

Module-type: 
auth 检查用户和密码,分配权限 
account 检查账号是否过期,是否有权登录 
session 从用户登录成功到退出的会话控制 
password 控制用户改密码的过程 
control-flag: 
required 要求矣须通过,否则结束退出 
requisite 如果不通过还可继续向下认证,后面有一通过即可。 
sufficient 通过则不需要向下认证 
optional 可选项 

常用PAM服务文件 
login -------/etc/pam.d/login 
ipop3d -------/etc/pam.d/pop 
vsftpd -------/etc/pam.d/ftp(编译安装)或/etc/pam.d/vsftpd(rpm安装) 
sshd -------/etc/pam.d/sshd 
su -------/etc/pam.d/su 
imap -------/etc/pam.d/imap 

/lib/security目录下,各个pam模块的作用,可参考/usr/share/doc/pam-0.99.3.0下的帮助文件。 
相同类型Module-type组成一个堆栈。 

常用PAM模块 
pam_access.so 控制访问者地址与账号名称 
pam_listfile.so 控制访问者的账号名称或登录位置 
pam_limits.so 控制为用户分配的资源 
pam_rootok.so 对管理员(uid=0)无条件允许通过 
pam_userdb.so 设定独立用户账号数据库认证 

pam_access.so模块的使用―――控制访问sshd服务的主机和用户 
1.修改需使用这个模块的服务文件,如sshd: /etc/pam.d/sshd添加 
account required pam_access.so 
2.修改模块的配置文件 
/etc/security/access.conf 
- : redhat : ALL EXCEPT 192.168.0. (格式) 
3.测试 
ssh redhat@192.168.0.22 
ssh redhat@127.0.0.1 
pam_access.so根据主机、IP、用户、拒绝或允许访问。 

pam_listfile.so的应用 (比pam_access.so更加详细控制) 
1.首先查看它的帮助文件,看它的具体格式,参数如何 
#less /usr/share/doc/pam-0.99.3.0/txts/README.pam_listfile 
item user,tty,group 说明列表文件中的内容 
sense allow,deny 拒绝或允许文件中的用户 
file 指定一个文件,内容根据item项来添加 
onerr succeed,fail 当模块本身产生错误时,返回的值,如无法打开file指定的文件,一般设为succeed 
2.将模块应用到sshd服务 
将上面添加的pam_access.so清掉,然后在/etc/pam.d/sshd中添加(第一行) 
auth required pam_listfile.so item=user sense=deny file=/etc/denyuser onerr=succeed 
注意添加的位置顺序,否则看不到效果 
3.创建编缉列表文件 
#echo “redhat” >/etc/denyuser 
4.测试 
#ssh -l redhat 192.168.0.22 失败 
#ssh -l chinaitlab 192.168.0.22 成功 

#w 显示已登录的用户及最近的一次操作 

pam_limits.so的应用 
1.查看帮助文件,确认它的配置文件位置,参数模式 
#less /usr/share/doc/pam-0.99.3.0/txt/README.pam_limits 
<domain> <type> <item> <value> 
<domain> 用户名或组名 
<type> soft软限制 
hard硬限制(不能达到的) 
<item> 限制的内容,fsize文件大小,nproc最大进程数,maxlogins用户登录次数 
2.将模块应用到sshd服务,修改服务文件 
#vi /etc/pam.d/sshd 添加: 
session required pam_limits.so 
session 控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源 
3.编缉pam_limits.so的配置文件/etc/security/limits.conf 
redhat hard maxlogins 2 
限制redhat登录到sshd服务的次数,不能达到2。 
4.测试 
#ssh -l redhat 192.168.0.22 第1个 
#ssh -l redhat 192.168.0.22 第2个 
表示同时最多可以有1个redhat用户登录
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值