简述PAM模块认证

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版|50资产|一周时长
简介:

 简述PAM模块认证

Pam可插拔的认证模块

接口文件在/etc/pam.d/目录下

调用的模块文件 /lib/security目录下

模块的配置文件/etc/security/目录下

日志信息存放在/var/log/secrue

网络中的很多用户需要对我们的服务器进行远程管理、FTP登录等等,服务器需要对用户进行认证

通过PAM调用与之服务相对应的接口文件进行模块认证。

PAM服务文件

格式:

Tyep       control     模块

Type 有这几类

auth  验证是否有这个账号

account    账号是否过期

password   改变口令的时候对密码的长短、是否是字典里的进行验证

session     回话控制

control 

  required   必须通过,

           如果没有通过 ,彻底否定  ,而且还要看后续模块

           如果通过 ,且还要看后续模块

  requisite   必须通过,

           如果没有通过 ,彻底否定  ,而且不看后续模块

           如果通过 ,且还要看后续模块

  sufficient  如果没有通过 ,不否定  ,而且看后续模块

            只要有一个通过  通过

optional   

Include    (共同调用的接口文件,包含很多模块)

   

常用的PAM模块

pam_access.so  控制访问者地址与账号名称

pam_lisffile.so 控制访问者的账号名称或登录位置

pam_limits.so 控制位用户分配的资源

pam_rootok.so 对管理员无条件允许通过

pam_userdb.so 设定独立用户账号数据库认证

等等

下面通过几个小例子说明一下

1、不允许普通用户登录服务器

打开sshd的接口文件 /etc/pam.d/login 如下,调用了pam_nologin.so模块,且是必须验证的

查看关于pam_nologin.so模块的说明文档知道,在/etc/目录下新建一个nologin文件就可以了

touch /etc/nologin

user1在通过ssh登录一下试试,登不进去了,如下:

(由于login文件里也调用了该模块,所以在本机上所有用户也登陆不了了)

2、限制用户user1只能从192.168.101.3SSH登录 模块为pam_access.so

vim /etc/pam.d/sshd   --编辑ssh的接口文件sshd如下

pam_access.so模块有个像对应的配置文件access.conf

vim /etc/security/access.conf 添加如下一行

 + : user1 : 192.168.101.3

- : user1 : all     表示不允许从其它地方ip登录

其中”+“表示授权   ”user1“ 授权的用户    ”192.168.101.3“ 表示来源

192.168.101.3的登录,授权成功

日志如下:

 pam_access(sshd:session): access denied for user `user1' from `192.168.101.103'

从其它的ip登录,拒绝

 PAM: pam_open_session(): Permission denied

如果是只有user1能从192.168.101.180登录

将”- : user1 : all  “改为“- : all : all  

3、限制user1账号本地终端的登录次数为2次 模块pam_limits.so

vim /etc/security/limits.conf   添加如下一句

user1            -       maxlogins       2

-“ 表示hardsoft都一样 (关于语法格式,配置文件里有说明)

vim /etc/pam.d/login  --编辑login接口文件添加如下:

session    required     pam_limits.so

user1登录三次,第三次被拒绝如下:

4、在我的用户中凡是在test组中的用户都能ssh,不是改组的用户不能SSH 模块pam_listfile.so (基于额外的文件)

vim /etc/pam.d/sshd 添加如下:

session    required  pam_listfile.so  item=group  sense=allow  file=/etc/grouptest onerr=succeed

--额外文件为/etc/grouptest   如果没有这个文件,无限制

新建改文件,并添加test

echo "test" > /etc/grouptest

User1test组能登录,user2不在,不能登录

5、只允许root从安全的终端登录即不允许从tty1登录  模块pam_securetty.so

vim /etc/securetty

删除 tty1

默认Login接口文件已经调用了该模块

root从终端1登录时,如下

6、在本地不允许使用bash shell登录 模块 pam_shells.so

默认是在/etc/shells里列出的都能

[root@localhost pam.d]# vim /etc/shells 

/bin/sh

/bin/bash

/sbin/nologin

/bin/tcsh

/bin/csh

/bin/ksh

将上述的/bin/bash 删掉

 vim /etc/pam.d/login  编辑登录文件来调用该模块 如下

session    required     pam_shells.so

这个验证时好像有些小问题!!!!!



本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1102047

相关文章
|
数据安全/隐私保护 安全
|
Web App开发 安全 网络安全
|
4月前
|
安全 Linux Shell
Linux服务器 /etc/pam.d目录下的文件都是什么作用?
【8月更文挑战第2天】Linux服务器 /etc/pam.d目录下的文件都是什么作用?
667 2