本文共 1500 字,大约阅读时间需要 5 分钟。
PAM 可插入的验证模块 Pluggable可插拔的 Authentication 身份验证 Modules模块 ssh telnet sftp 都需要经过验证,早期是各自的服务经过自己的验证,这个验证模块只能在ssh服务中使用,其他的不能使用 API应用程序访问接口,当应用程序需要这个功能就针对这个API开发 各自软件的开发者就关注自己的服务,也不用花大量时间验证了, pam本身不提供服务,认证功能的开发是针对pam架构开发的 SPI开发认证模块的时候调用的接口(相当于卖家) API表示应用程序要使用认证的接口(相当于买家) PAM相当于中间平台 系统管理员就负责配置文件就可以了 这些文件具体实现了服务模块 只有上班时间链接ssh服务,下班不让链接,就可以设置pam_time模块 不是所有模块都有配置文件,有些模块比较简单就没有配置文件 每个应用程序要调用模块,怎么去调用,有一个配置文件,但是一般都每个模块提供一个配置文件就跟/etc/sudoers.d/alice…一样,不然放在一个容易混乱 定义了一些调用应用程序的规则,这些规则定义了怎么去调用服务模块 一个用户sshd访问的时候,/usr/sbin/sshd就回去看/etc/pam.d的配置文件sshd,根据文件里面定义的内容,来决定使用什么模块 有PAM官方文档 passwd对应的配置文件 里面定义的规则 调用的模块 一般用这个配置文件,目录下面可以针对单个服务创建配置文件 模块type四种类型 auth负责账号的验证 account验证账号是否合法(张三用户规定什么时候访问,但是不在这个时间段访问就是不合法,也可以控制终端 passswd负责检查账号密码复杂性 session会话,做一些额外的操作 -号代表有没有也无所谓 account验证账号有效性 有三个auth就等于有三轮面试 哪路面试一票否决,那轮面试一票肯定,就要看required字,如果是required,就是一票否决 这一轮如果失败就是一票否决 required否决了还会继续后面的type类型检查,requisite一票否决并且后面的type类型检查也不做了 直接成功,后续的type类型不查了 起到陪衬作用,仅做参考 调用其他的模块 复杂情况,在什么样的状态下就采取什么样的行为 done=一票通过制 bad一票否决 一般都是用简单语法 写完立即生效类似hosts.allow,也可能导致配置错了,全部连接不了,建议开一个终端不要断 模块的文档 下载文档看 过滤一下系统中是否有程序调用这个模块 加上这个模块就必须用户登录用的shell类型必须是/etc/shell里面的 如果su用这个模块就代表必须要/etc/shell这个文件里面必须有的shell才能登录 修改tom用户shell类型为csh 再把/etc/shell里的csh删除 shell类型不存在所以无法登录了 改回去就能登录了 把bash删除 root有一票肯定就不受影响 修改shel,就又可以登录了 登录成功 ** sudo visudo lastb失败登录信息 aide aide软件包提供的工具 tcpdmatch 自制工具 测试hosts.allow策略的** ssh配置,端口转发,两个选项比较重要 L D ssh服务的各种配置文件格式,选项,比如限制用户登录的超限时长,最大并发链接数多少 ssh之后又dropbear编译安装 aide 检查数据完整性是否修改 sudo 授权用户登录 tcp_wrapper hosts.allow hosts.deny PAM转载地址:http://xzkgn.baihongyu.com/