PAM <备忘>

# 实验环境Centos 6.5 64位系统

1、配置文件在/etc/pam.d/ 目录下

2、使用ldd命令查看程序是否支持PAM

ldd `which sshd` | grep -i "pam"

3、以sshd服务为例:

语法格式为:service    type    control    module-path    module-arguments

<可以通过 man pam.d 查看详细信息>

service:

auth:     主要是接受用户名和密码,进而对用户的密码进行认证

account:    主要是检查账户是否被允许登陆系统

password:  主要是更新密码

session:    主要是记录一些信息:opening/closing some data exchange with a user, mounting dir, etc.

type:

required:    必须通过此认证,但是如果失败,失败的结果也不会立即通知用户,而是要等到同一stack中的所有模块全部执行完毕再将失败结果返回给应用程序。<例如,用户在登陆时,使用的用户名不存在,也不会立即提示用户名错误,而是要等输完密码后才提示,起到一定的防破解作用。>

requisite:    与required类似,但是不同之处在于,如果返回失败,将不会再执行同一stack内的任何模块,而是直接将控制权返回给应用程序。

sufficient:    表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack内的其他模块,但是如果本模块返回失败的话可以忽略。

optional:表明本模块是可选的,它的成功与否一般不会对身份认证起关键作用,其返回值一般被忽略。

include:    包括指定的配置文件中的所有行。

module-path: 用来指定模块的路径,默认路径在 /lib64/security/ 目录 <系统不同,位置可能不同,可以通过 `rpm -ql pam` 查看pam包将模块装到了什么地方。>

module_arguments: 模块执行时候的参数,可以使用[man 模块名] 来查看详细参数。

4、常用模块<可以使用 man module_name 查看模块的具体使用方法和应用的位置>:

pam_nologin.so:    如果存在/etc/nologin文件,则不允许除root外的所有普通用户登陆。

pam_tally2.so:        用户在登陆系统时,输错密码多少次,锁定用户多长时间 (通过 man pam_tally2 查看详细信息),例如: 输错两次密码锁定用户,也包括root,锁定时间为100s

<auth       required     pam_tally2.so    deny=2 even_deny_root unlock_time=100>

查看当前锁定的用户: pam_tally2        手动解锁被锁定用户: pam_tally2  -u  username  -r

pam_time.so:    指定用户在指定终端的指定时间访问指定程序。配置文件为 /etc/security/time.conf。例如:

sshd;*;bloke;!Al0000-0800 & Al1800-2400

#在每天的零点到八点和每天的18点到24点之间不允许在任何终端登录系统。

pam_timestamp: 和使用sudo类似,在认证成功后指定时间内不需要再次认证,默认是300s。

5、在设置时,需要注意顺序和type

时间: 2024-10-03 03:03:20

PAM <备忘>的相关文章

linux PAM 用户登录认证

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段.从本篇开始会总结一些常用的pam模块及其实现的功能,今天讲的是pam_tally2模块. 一.参数与场景 应用场景:设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟或永久锁

TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用

一.TCP WRAPPERS 1.TCP WRAPPERS的作用是什么? 保护服务器的一些服务,可以限制客户端访问这些服务. TCP WRAPPERS支持那些服务?判断一个服务是否支持TCP WRAPPERS的保护有那些方法? 查看该服务是否加载libwrap,查看该服务是不是基于xinetd服务. ssh ,vsftpd,telnet,http(不支持wrap模块)ipop3 2.检查服务是否支持被TCP WRAPPERS保护 3.防护规则存放在 /etc/hosts.allow /etc/h

记一次PAM failure导致的ssh登录VPS失败

今天想在VPS上装一个monit做监控.没想到出了点问题折腾了差不多一天. 问题的起源是monit依赖于LinuxPAM.这个东西我以前是一点都没怎么了解过,还以为只是个普通的依赖库,所以就没怎么注意.没想到一时的大意白白浪费了一天时间. 在安装完PAM后,monit顺利地安装成功了.可是我突然发现,ssh不能连到VPS了!我以为是我本地的xshell有问题,就把当前的连接断掉(为什么要断啊T_T),试着连了连其他的服务器.试了几个都可以,就是VPS不行.于是就开始了断断续续差不多一天的折腾-

【CentOS】sudo: Account expired or PAM config lacks an “account” section for sudo

root用户切换到nowsun_old(普通用户)下,nowsun_old用户执行:sudo -l会出现以下错误 [[email protected] ~]$ sudo -l [sudo] password for nowsun_old:  sudo: Account expired or PAM config lacks an "account" section for sudo, contact your system administrator 解决方法: 1.通过查看,发现no

pam密码策略

PAM 的使用历史 PAM 是关注如何为服务验证用户的 API.在使用 PAM 之前,诸如 login(和 rlogin.telnet.rsh)之类的应用程序在 /etc/passwd 中查找用户名,然后将两者相比较并验证用户输入的名称.所有应用程序使用了这些共享服务,但是并未共享实现细节和配置这些服务的权限. 接下来,应用程序开发人员尝试编写自定义过程代码.在此过程中,需要分离应用程序与安全模块(通用安全模块可以在应用程序之间共享并且可以根据需求进行配置). PAM 机制将把多个低级别验证模式

检查是否使用PAM认证模块禁止wheel组之外的用户su为root

编辑su文件(vi /etc/pam.d/su),在开头添加下面两行: auth sufficient pam_rootok.so 和 auth required pam_wheel.so group=wheel 这表明只有wheel组的成员可以使用su命令成为root用户. 你可以把用户添加到wheel组,以使它可以使用su命令成为root用户. 添加方法为:usermod –G wheel username

Linux服务器安全策略配置-PAM身份验证模块(二)

○ 本文导航 关于PAM PAM身份验证配置文件 PAM配置文件语法格式 PAM模块接口 PAM控制标志 PAM配置方法 PAM身份验证安全配置实例 - 强制使用强密码(用户密码安全配置) - 用户SSH登录失败尝试次数超出限制后锁定账户(帐户锁定/解锁和时间设置) - 允许普通用户使用sudo而不是su(限制普通用户登录到root用户) - 禁止直接使用root用户通过SSH登录 pwgen复杂密码随机生成工具 关于PAM Linux-PAM (Pluggable Authentication

nis,nfs,pam小结

最近一周总算把nis/nfs配置起来,中间各种被坑,这里简单记录一下: 主要参考两个大牛的文章,柏青哥,鸟哥 配置完之后的功能是可以连接任意一台主机,所有主机之间共享HOME目录,而且每人都有一定的限额. 中间最坑的是没有注意到client端和server端配置不一样,nis server端没有配置shadow.这时候客户端可以用su,也可以用yptest等各种命令,就是不能用passwd修改命令,而且也不能使用ssh连接.后来都下载源码,准备从源码开剁了,仔细想想还是用tcpdump了,现在t

linux中pam模块

一.pam简介 Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式. 换句话说,不用(重新编写)重新编译一个包含PAM功能的应用程序,就可以改变它使用的认证机制. 这种方式下,就算升级本地认证机制,也不用修改程序. PAM使用配置/etc/pam.d/下的文件,来管理对程序的认证方式.应用程序 调用相应的配置文件,从而调用本地的认证模块.模块放置在/lib/security下,以加载动态库的形式进,像我们使用su命令时,系统会提示你输入root

pam之基础知识和常见模块

nns负责名称解析,认证的过程是pam来处理.2套系统是独立运行的. 认证本身也可以不借用nss,自己去找对应的解析库. 以用户登陆为例:    用户名的解析 :        USERNAME--> nsswitch.conf --> passwd : file--> /etc/passwd 密码的解析:        PASSWORD --> nsswitch.conf --> shadow : file --> /etc/shadow 认证:        USE