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

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 重置失败登录(需要管理员账户执行)
相关文章:
Linux运维篇-PAM安全模块配置
PAM是什么? PAM(可插入认证模块)是UNIX操作系统上一个实现模块化的身份验证的服务。当程序需要对用户进行身份验证时加载并执行。PAM文件通常位于/etc/pam.d目录中。 而Linux-PAM,是linux可插拔认证模块,是一套可定制…...
麒麟V10系统上安装Oracle
以下是在麒麟V10系统上安装Oracle数据库的详细步骤: 安装前准备 检查系统版本:使用uname -a、cat /etc/os-release等命令检查服务器是麒麟V10系统。 配置固定IP和本地yum源: 挂载麒麟V10的iso文件到/mnt目录,如mount -o loop Ky…...
项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(七)
文章目录 一、题库管理模块实现1、新增题目功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、题目列表功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询题目列表接口实现2.3.2 后端编辑试题接口实现2.4 效果展示二、代码下载一、题库管…...
Elasticsearch:Jira 连接器教程第二部分 - 6 个优化技巧
作者:来自 Elastic Gustavo Llermaly 将 Jira 连接到 Elasticsearch 后,我们现在将回顾最佳实践以升级此部署。 在本系列的第一部分中,我们配置了 Jira 连接器并将对象索引到 Elasticsearch 中。在第二部分中,我们将回顾一些最佳实…...
Vulnhub Earth靶机攻击实战(一)
导语 首先需要我们进入到https://vulnhub.com/entry/the-planets-earth,755/地址去获取Earth靶机,然后导入到VMware中,如下所示。 文章目录 导入虚拟机信息收集路径扫描破解密码反射Shell提权总结导入虚拟机 下载并导入虚拟机,如下所示。 信息收集 首先我们通过arp-sc…...
51单片机——DS18B20温度传感器
由于DS18B20数字温度传感器是单总线接口,所以需要使用51单片机的一个IO口模拟单总线时序与DS18B20通信,将检测的环境温度读取出来 1、DS18B20模块电路 传感器接口的单总线管脚接至单片机P3.7IO口上 2、DS18B20介绍 2.1 DS18B20外观实物图 管脚1为GN…...
HTML5+Canvas实现的鼠标跟随自定义发光线条源码
源码介绍 HTML5Canvas实现的鼠标跟随自定义发光线条特效源码非常炫酷,在黑色的背景中,鼠标滑过即产生彩色变换的发光线条效果,且线条周围散发出火花飞射四溅的粒子光点特效。 效果预览 源码如下 <!DOCTYPE html PUBLIC "-//W3C//D…...
关于jwt和security
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西-腾讯云开发者社区-腾讯云 SpringBoot整合Security安全框架、控制权限让我们一起来看看Security吧!我想每个写项目的人,都…...
统计学习算法——逻辑斯谛回归
内容来自B站Up主:动画讲编程https://www.bilibili.com/video/BV1CR4y1L7RC、风中摇曳的小萝卜https://www.bilibili.com/video/BV17r4y137bW,仅为个人学习所用。 极大似然估计 几率、概率与似然 几率是指某个事件发生的可能性与不发生的可能性之比&am…...
算法(蓝桥杯)贪心算法5——删数问题的解题思路
问题描述 给定一个高精度的正整数 n(n≤1000 位),需要删除其中任意 s 个数字,使得剩下的数字按原左右顺序组成一个新的正整数,并且这个新的正整数最小。例如,对于数字 153748,删除 2 个数字后&a…...
数字孪生发展及应用
一、数字孪生的前世今生 (一)萌芽的种子:概念的首次提出 数字孪生的概念最早可追溯到 20 世纪 60 年代,美国国家航空航天局(NASA)在阿波罗计划中,为了训练宇航员和指挥控制人员,使用…...
MYSQL对表的增删改查
表的基本操作 创建表create table [if not exists] <tableName> (<columnName> <columnType> [constraints] [comment] , ...<columnName> <columnType> [constraints] [comment] ) ;删除表drop table [if exists] <tableName> ;…...
左神算法基础提升--4
文章目录 树形dp问题Morris遍历 树形dp问题 求解这个问题需要用到我们在基础班上学到的从节点的左子树和右子树上拿信息的方法。 求最大距离主要分为两种情况:1.当前节点参与最大距离的求解;2.当前节点不参与最大距离的求解; 1.当前节点参与最…...
【docker踩坑记录】
docker踩坑记录 踩坑记录(持续更新中.......)docker images 权限问题 踩坑记录(持续更新中…) docker images 权限问题 permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.s…...
CloudberryDB(四)并行执行
要查看CloudberryDB & Greenplum数据库的并行度配置,可以使用以下几种方法: ### 方法一:使用SHOW命令 在Greenplum数据库中,可以使用SHOW命令来查看当前的并行度配置。例如: sql SHOW gp_parallel_degree ; SH…...
LARGE LANGUAGE MODELS ARE HUMAN-LEVEL PROMPT ENGINEERS
题目 大型语言模型是人类级别的提示工程师 论文地址:https://arxiv.org/abs/2211.01910 项目地址:https://github.com/keirp/automatic_prompt_engineer 摘要 通过对自然语言指令进行调节,大语言模型 (LLM) 显示了作为通用计算机的令人印象深…...
rabbitmq安装延迟队列
在RabbitMQ中,延迟队列是一种特殊的队列类型。当消息被发送到此类队列后,不会立即投递给消费者,而是会等待预设的一段时间,待延迟期满后才进行投递。这种队列在多种场景下都极具价值,比如可用于处理需要在特定时间触发…...
Kubernetes (K8s) 入门指南
Kubernetes (K8s) 入门指南 什么是Kubernetes? Kubernetes,通常简称为 K8s(因为从 “K” 到 “s” 之间有八个字符),是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌设…...
Python 调用 Ollama 库:本地大语言模型使用详解
ollama 是一个用于调用本地大语言模型(Large Language Models,LLMs)的 Python 库,旨在提供简单、高效的 API 接口,以便开发者能够方便地与本地的大语言模型进行交互。以下是关于如何在 Python 中使用 ollama 库的详细介…...
python matplotlib绘图,显示和保存没有标题栏和菜单栏的图像
目录 1. 使用plt.savefig保存无边框图形 2. 显示在屏幕上,并且去掉窗口的标题栏和工具栏 3. 通过配置 matplotlib 的 backend 和使用 Tkinter(或其他图形库) 方法 1:使用 TkAgg 后端,并禁用窗口的工具栏和标题栏 …...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
