千家信息网

简述PAM模块认证

发表于:2024-10-26 作者:千家信息网编辑
千家信息网最后更新 2024年10月26日,简述PAM模块认证Pam可插拔的认证模块接口文件在/etc/pam.d/目录下调用的模块文件 /lib/security目录下模块的配置文件/etc/security/目录下日志信息存放在/var/l
千家信息网最后更新 2024年10月26日简述PAM模块认证

简述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.3上SSH登录 模块为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

"-" 表示hard和soft都一样 (关于语法格式,配置文件里有说明)

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

User1在test组能登录,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

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

0