Linux运维篇-PAM安全模块配置

server/2025/1/24 5:03:59/

在这里插入图片描述

PAM是什么?

PAM(可插入认证模块)是UNIX操作系统上一个实现模块化的身份验证的服务。当程序需要对用户进行身份验证时加载并执行。PAM文件通常位于/etc/pam.d目录中。
而Linux-PAM,是linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。

需要注意的是,/etc/pam.d目录中的文件默认只有root管理员用户有权限修改,也可针对root本身做一些配置,调整前需要了解每一个配置项的含义,防止出现乌龙配置,一旦配置失误错禁了root身份验证,导致系统无法登录,只能到单用户或救援模式紧急恢复。

常见的配置文件

在redhat中,pam.d目录下有以下内容:
在这里插入图片描述
重要文件介绍:

文件名描述
login本地登陆的认证方式
sshd通过ssh服务远程登陆的认证方式
sudo使用sudo提权时的认证方式
common-auth通用身份认证模块
common-password通用密码规则模块
common-account通用账户管理模块,主要定义了账户权限的相关规则-
common-session通用会话管理模块

pam认证的构成

每一行大致可以区分为三个字段:

 认证类型    控制类型    PAM模块及其参数

第一列代表PAM认证模块类型

auth:认证、授权(检查用户的名字、密码是否正确account:检查用户的帐户是否到期、禁用等session:控制会话password:控制用户修改密码过程

第二列代表PAM控制标记

required:必须通过此认证,否则不再往下认证下去,直接退出requisite:必须通过认证,但以后还有机会,可以往下认证sufficient:一经通过,后面的不再认证(只要通过这个条件则直接通过)optional:可选项,通不通过均可

第三列代表PAM模块和PAM模块的参数,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径
常用pam模块:

名称描述
pam_access.so控制访问者的地址与帐号的名称
pam_listfile.so控制访问者的帐号名称或登陆位置
pam_limits.so控制为用户分配的资源
pam_rootok.so对管理员(uid=0)无条件通过
pam_userdb.so设定独立用户帐号数据库认证

常见配置修改

root用户登录设置

修改文件 /etc/pam.d/system-auth
在 pam_env.so下一行添加

pam_tally2.so onerr=fail deny=3 unlock_time=100 even_deny_root root_unlock_time=100
  • onerr=fail 表示定义了当出现错误时的缺省返回值;
  • even_deny_root 表示也限制root用户;
  • deny 表示设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
  • unlock_time 表示设定普通用户锁定后,多少时间后解锁,单位是秒;
  • root_unlock_time 表示设定root用户锁定后,多少时间后自动解锁否则手动,单位是秒;

ssh远程登录限制

修改文件 /etc/pam.d/sshd
在 pam_sepermit.so下一行添加

pam_tally2.so onerr=fail deny=3 unlock_time=100 even_deny_root root_unlock_time=100

pam_tally2 –u 账号 查看失败登录

pam_tally2 --user <用户名> --reset 重置失败登录(需要管理员账户执行)


http://www.ppmy.cn/server/160947.html

相关文章

【Javaweb05】 XML探秘:解码数据的哲学,构建跨界的沟通桥梁

文章目录 前言&#x1f30d;一.XML简介❄️1.为什么需要 XML ❄️2.XML 技术用于解决什么问题❄️ 3.XML概念和特点 &#x1f30d;二.XML 语法❄️ 1、文档声明❄️ 2、元素❄️3、元素命名规则 ❄️ 4、属性❄️ 5、CDATA 区 &#x1f30d;三.XML 解析技术原理之DOM4j❄️ 1…

NIO 和 Netty 在 Spring Boot 中的集成与使用

Netty到底是个啥&#xff0c;有啥子作用 1. Netty 的本质&#xff1a;对 NIO 的封装 NIO 的原生问题&#xff1a; Java 的 NIO 提供了非阻塞 I/O 和多路复用机制&#xff0c;但其使用较为复杂&#xff08;如 Selector、Channel、Buffer 的配置和管理&#xff09;。开发者需要自…

PL/SQL语言的图形用户界面

PL/SQL语言的图形用户界面 引言 随着信息技术的迅猛发展&#xff0c;数据库系统在现代应用程序中的重要性愈加凸显。PL/SQL&#xff08;Procedural Language/Structured Query Language&#xff09;作为Oracle数据库的一种程序设计语言&#xff0c;以其强大的数据处理能力和高…

修改docker共享内存shm-size

法1&#xff1a;在创建容器时增加共享内存大小 nvidia-docker run -it -p 10000:22 --name"zm" -v /home/zm:/data ufoym/deepo:all-cu101 /bin/bash --shm-size20G法2&#xff1a;修改正在运行的容器的共享内存设置 查看容器、共享内存 docker ps -a df -lh | gr…

计算机网络 (51)鉴别

前言 计算机网络鉴别是信息安全领域中的一项关键技术&#xff0c;主要用于验证用户或信息的真实性&#xff0c;以及确保信息的完整性和来源的可靠性。 一、目的与重要性 鉴别的目的是验明用户或信息的正身&#xff0c;对实体声称的身份进行唯一识别&#xff0c;以便验证其访问请…

从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)

从零到上线&#xff1a;Node.js 项目的完整部署流程&#xff08;包含 Docker 和 CI/CD&#xff09; 目录 项目初始化&#xff1a;构建一个简单的 Node.js 应用设置 Docker 环境&#xff1a;容器化你的应用配置 CI/CD&#xff1a;自动化构建与部署上线前的最后检查&#xff1a;…

【漫话机器学习系列】054.极值(Extrema)

极值&#xff08;Extrema&#xff09; 定义 极值是数学分析和优化问题中的一个核心概念&#xff0c;指函数在某个定义域内取得的最大值或最小值。根据极值的性质&#xff0c;可以将其分为两类&#xff1a; 局部极值&#xff08;Local Extrema&#xff09;&#xff1a;函数在…

西安交通大学COMP551605人工智能2024.1.3期末考试

西安交通大学COMP551605人工智能2024.1.3期末考试 有关的课程资料我的笔记放Github上了&#xff0c;欢迎来star 名词解释&#xff0c;5分一个&#xff0c;20分 知识阈值理论 限制策略 最一般合一 过拟合 简答题&#xff0c;8分一个&#xff0c;24分 归结演绎的含义和一…