pam

news/2024/10/22 5:15:55/

Pluggable Authentication Modules:可插入验证模块

比如一台服务器开着FTP、SSH等服务,那么新建一个用户默认就享有对以上的服务的操作权限,那么如果一个用户的帐号密码泄露会涉及到多个服务。

PAM最大的特点是实现了服务程序和认证机制的分离,它采用模块化设计和插件功能,使得我们可以轻易地在应用程序中插入新的鉴别模块或替换原先的组件,而不必对应用程序做任何修改,更不必了解太多的底层细节。

在这里插入图片描述应用调用接口,接口调用模块,通过修改配置文件去配置调用什么模块。完成身份验证。

模块的位置 /lib64/security/

配置文件:/etc/pam.d/
配置文件:/etc/pam.d/

以su的pam配置文件举例
在这里插入图片描述
pam检查的方式:从上到下,依次使用模块进行验证检查。

PAM模块类型—— module_type —— 控制使用什么类型的管理机制:
1、auth:对用户所提供的认证信息进行验证的。比如检查用户帐号和密码;
2、 account:用户管理,执行基于非验证的帐户管理。
3、 password:密码认证管理。
4、session:会话管理。

PAM验证控制类型(Control Values):
用于PAM验证类型的返回结果,都有返回值,不是0就是1,失败或成功。
1、 required:(必要条件)当认证模块传回失败的消息的时候,认证还会继续进行,全部都执行完毕后,PAM才会传回认证失败,用户不会知道哪里失败。而成功的时候,认证也会继续向下执行其他的认证。
2、 requisite:(必要条件)当认证模块传回失败的消息的时候,认证会终止,立即返回失败的结果;
3、 sufficient:如果在它之上都传回认证成功或之前根本没有返回结果,此标志的认证模块也返回成功时,则不再继续向下执行此认证模块中的其他模块,同时传回认证成功;如果失败怱略返回值继续往下检测其它模块,不过万一有其他认证模块使用“required”并传回失败时,认证还是失败的。不论 required 返回的是成功还是失败,sufficient的失败都会被当成optional被忽略
4、 optional:无论认证的成功与否,无关整个认证过程的结果,主要是记录日志。
5、 include:嵌入了另外的认证过程,继续调用其他认证。
•调用的模块的位置:/lib/security

结构:4列
1、 绿色 模块类型
auth
account
password
session

2、 粉色 控制标志
3、红色 模块
4、白色 模块的参数

									u1		u2		u3
auth   required   		modules1	pass	fail	pass
auth   sufficient		modules2	pass	pass	fail
auth   required			modules3	????	????	????
//其中u1能够登录。
//u2不能登录,因为suffivient之前有个报错。
//u3你能否登录取决于????,这个ok则ok。

常用的pam模块:

【1】pam_rootok.so
用户的UID是0,直接返回成功。

[root@pam /etc/pam.d]# vim su
#auth       sufficient  pam_rootok.so

正常来说普通用户切换到root用户要输入密码,root用户切换普通用户不需要密码,这时因为su这个配置文件中默认开启了pam_rootok.so模块,如果将他注释掉,也就是取消,那么root用户登录普通用户也要输入密码了。

在这里插入图片描述
【2】pam_wheel.so
这个模块与这个组相关,wheel这个组。

Wheel组是Unix系统一个遗留物。当服务器需要做比日常例行维护更高级的工作的时候,就经常需要用到root权限了。而这个wheel组就是建立用来归纳一些特殊的系统用户用的,这其中的用户都或多或少地拥有root的部分功能和权限。也就是说如果你不是wheel组成员,那就没有root身上任何的特权。也因为这样,使用wheel组成员用户的话,会尽量减少对系统“摧毁性”破坏的概率和风险。如今大多数的Linux发行版本中,仍然保留了wheel这个组。

1、在wheel组中的用户切换root用户不需要密码

[root@localhost pam.d]# useradd user1 -G wheel
[root@localhost ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),10(wheel)[root@localhost ~]# vim /etc/pam.d/su4 auth        sufficient  pam_wheel.so trust use_uid
//打开注释,在wheel组中的用户切换root用户不需要密码。
[user1@localhost ~]$ su -
Last login: Tue Dec 17 21:55:31 CST 2019 from 172.16.12.1 on pts/0
[root@localhost ~]#

2、只有在wheel组里面的用户,才可以su切换到root

[root@localhost ~]# vim /etc/pam.d/su6 auth        required    pam_wheel.so use_uid
//取消注释[user2@localhost ~]$ su -
Password: 
su: Permission denied

这个可以加入系统的初始化配置!

线上节点
    哪些用户可以ssh
    先用普通用户 ssh
    再 su - 到root
    约束哪些用户可以切换到root

内部节点:没有约束。

【3】pam_tally2.so
约束密码的尝试次数,防止暴力破解。

[root@localhost /etc/pam.d]# vim sshd3 auth       required pam_tally2.so deny=2 even_deny_root root_unlock_time=60 unlock_time=60最大尝试次数,2失败后锁定1分钟

查看用户登录情况

[root@localhost ~]# pam_tally2 -u root
Login           Failures Latest failure     From
root                3    12/17/19 10:38:24  172.16.0.20

解除锁定

[root@localhost ~]# pam_tally2 --reset -u 用户名

【4】pam_limits.so

资源限制,约束应用程序可以使用的系统资源。类似于磁盘限额。

[root@localhost vuser_dir]# ulimit -Sn
1024
[root@localhost vuser_dir]# ulimit -Hn
4096

这个是默认的软约束和硬约束。

[root@localhost ~]# vim /etc/security/limits.conf 
*   soft    nofile  65535
*   hard    nofile  65535
*   soft    nproc   65535
*   hard    nproc   65535
//就直接给到满就行然后重启生效。
reboot

http://www.ppmy.cn/news/345126.html

相关文章

PAM简介

PAM简介PAM是 PLUGGABLE AUTHENTICATION MODULES 的缩写.它是一套共享库.它可以让系统管理员选择应用程序怎样去认证用户,而不需要知道应用程序的内部的实现细节,也不需要重新编译代码。在PAM出现之前,一般的应用程序,在要去认证用…

Pacman基本使用

安装软件 pacman -S (软件名):安装软件,若有多个软件包,空格分隔pacman -S --needed (软件名):安装软件,若存在,不重新安装最新的软件pacman -Sy (软件名):安装软件前&a…

PAM4科普

PAM4科普 Bit Per SymbolGbps和Gbaud关系Unit Interval(UI)奈奎斯特频率 Data Rate(Gb/s Gagabit Per Second)PAMn LevelsBit Per SymbolSymbol Rate(Symbol Transfer Per Second)Unit Interval(UI)Nyquist FreqSNR Delta 图片来自于Intel发表的文章&am…

pam.d是干什么的

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需…

MMpa一pa

最新的某131网站精美套图爬取代码出炉,截至2020年4月13日有效,之后就不知道啦。 来,各位看客老爷们可以搞一下: import requests import json import re import time import osdef find_img_src(html): #这个函数其实没用到re…

PAM详解

最近接触PAM比较多,而中文版的文档过于老久,所以专门下载了英文版的指南,边学习边翻译。 由于水平有限,如有错误请及时指正。 1 简介 Linux-PAM(Pluggable Authentication Modules for Linux.基于Linux的插入式验证模块)是一组共享…

求夏普利值代码

本文提供了求夏普利值的代码&#xff0c;需要算法的地方只有分割子集。 import java.util.*;public class Shapley {/*** 得到包含这个元素的全部子集* param set* param target* return*/public static Set<Set<String>> findSubsets(List<String> set, St…