PAM | 账户安全 | 管理
PAM
PAM(Pluggable Authentication Modules,可插入式身份验证模块)是一个灵活的身份验证系统,允许我们通过配置和组合各种模块来实现不同的身份验证策略。

在 Linux 或类 Unix 系统中,常见的 PAM 模块包括以下几种类型:
-
认证模块(Authentication Modules):
- 用于验证用户的身份,通常基于密码、密钥、证书、生物特征等。常见的认证模块包括:
pam_unix:基于传统的用户名和密码进行认证。pam_ldap:与 LDAP 目录服务器进行身份验证。pam_ssh:基于 SSH 密钥进行身份验证。pam_radius:通过 RADIUS 服务器进行身份验证。pam_google_authenticator:实现双因素认证。
- 用于验证用户的身份,通常基于密码、密钥、证书、生物特征等。常见的认证模块包括:
-
账户管理模块(Account Management Modules):
- 用于管理用户账户的状态,包括锁定、过期、禁止登录等。常见的账户管理模块包括:
pam_unix:管理用户密码的过期、锁定等状态。pam_access:基于访问控制列表 (ACL) 控制用户对系统资源的访问权限。pam_time:根据时间限制用户的登录。
- 用于管理用户账户的状态,包括锁定、过期、禁止登录等。常见的账户管理模块包括:
-
密码管理模块(Password Management Modules):
- 用于管理用户密码的策略,包括密码长度、复杂度要求、历史密码检查等。常见的密码管理模块包括:
pam_pwquality:实现密码质量检查,如密码长度、字符类型等。pam_cracklib:使用 CrackLib 库检查密码的复杂度。pam_unix:提供基本的密码管理功能,如修改密码、历史密码检查等。
- 用于管理用户密码的策略,包括密码长度、复杂度要求、历史密码检查等。常见的密码管理模块包括:
-
会话管理模块(Session Management Modules):
- 用于管理用户会话的操作,如记录登录信息、设置环境变量等。常见的会话管理模块包括:
pam_limits:设置用户资源限制,如进程数、文件打开数等。pam_env:设置用户会话的环境变量。pam_lastlog:记录用户上次登录信息。
- 用于管理用户会话的操作,如记录登录信息、设置环境变量等。常见的会话管理模块包括:
-
模块控制模块(Module Control Modules):
- 用于控制 PAM 模块的行为和执行顺序。常见的模块控制模块包括:
pam_stack:允许管理员创建自定义的 PAM 堆栈。
- 用于控制 PAM 模块的行为和执行顺序。常见的模块控制模块包括:
以上只是一些常见的 PAM 模块,实际还有许多其他模块可用于不同的身份验证需求。
账号安全
Linux系统的账户安全是保护系统免受未授权访问和潜在威胁的关键方面。
-
使用强密码:
- 强制使用包含字母、数字和特殊字符的复杂密码。
- 使用密码策略工具如
pam_pwquality来限制密码的长度、字典单词等。
-
限制Root用户:
- 避免直接使用
root账户登录,而是使用普通用户再切换到root。 - 禁用直接
root远程登录。 - 配置
sudo权限,只允许授权用户执行必要的管理员任务。
- 避免直接使用
-
用户账户管理:
- 禁用不必要的用户账户。
- 定期审查用户账户,禁用不再需要的账户。
- 设置用户账户过期时间,定期强制用户更改密码。
-
SSH 安全配置:
- 禁用不安全的SSH协议版本,仅使用SSHv2。
- 配置SSH服务,限制允许登录的用户。
- 使用SSH密钥身份验证,禁用密码身份验证(如果可能)。
-
PAM (Pluggable Authentication Modules) 配置:
- 使用PAM来实现更强大的身份验证和授权。
- 配置PAM以限制登录尝试次数并锁定账户。
- 强制使用
pam_tally或pam_faillock等模块来检测和阻止恶意登录尝试。
-
系统账户:
- 禁用不必要的系统账户。
- 将系统账户的登录Shell设置为
/sbin/nologin或/bin/false。
-
Auditd 配置:
- 启用审计功能以监视系统活动。
- 配置
auditd以记录关键系统事件,如登录、权限变更等。
-
SELinux (Security-Enhanced Linux):
- 启用SELinux以提供强制访问控制和更强大的安全策略。
- 配置SELinux策略以适应您的应用程序和服务。
-
限制 su 和 sudo 权限:
- 限制
su命令的使用,仅允许授权用户切换到其他用户。 - 配置
sudo以限制哪些用户可以执行哪些命令,避免不必要的特权。
- 限制
-
定期审计和监控:
- 定期审计系统日志以检测异常活动。
- 使用监控工具(如
tripwire)来检测系统文件的变化。
-
禁用不必要的服务:
- 禁用系统上不必要的网络服务和端口。
- 定期审查和关闭未使用的服务。
-
更新和补丁管理:
- 定期更新系统和软件包,确保安装最新的安全补丁。
- 使用自动化工具(如
unattended-upgrades)来自动安装安全更新。
措施
限制账号安全的配置涉及很多步骤,包括密码策略、访问控制、身份验证、日志和监控等。
-
强化密码策略:
- 修改
/etc/security/pwquality.conf或/etc/security/pwquality.conf文件来配置密码质量要求。 - 使用
pam_pwquality模块来限制密码长度、包含字符类型和禁用字典单词。
- 修改
-
限制账号登录:
- 编辑
/etc/security/access.conf文件,使用pam_access模块限制用户登录。 - 在
/etc/ssh/sshd_config中配置AllowUsers或DenyUsers以限制SSH登录。
- 编辑
-
账号锁定和登录尝试限制:
- 使用
pam_tally2或pam_faillock模块配置账户锁定。 - 在
/etc/security/faillock.conf中配置账户锁定的参数,如尝试次数和锁定时长。 - 配置
/etc/pam.d/system-auth文件以添加auth required pam_tally2.so行。
- 使用
-
限制 su 和 sudo 权限:
- 修改
/etc/pam.d/su文件,限制哪些用户可以使用su命令。 - 编辑
/etc/sudoers文件,使用sudo命令配置特权用户和命令。
- 修改
-
启用 SELinux:
- 启用 SELinux 并配置强制访问控制。
- 使用
semanage和setsebool命令配置 SELinux 策略。
-
审计和监控:
- 启用
auditd审计框架。 - 在
/etc/audit/auditd.conf中配置审计参数。 - 编辑
/etc/pam.d/system-auth,添加 `session required pam_tty_audit.so enable=*" 行,启用终端审计。
- 启用
-
定期审查用户账户:
- 定期检查并禁用不再需要的用户账户。
- 使用
usermod命令修改账户属性,如锁定或设置过期日期。
-
启用登录二因素身份验证:
- 配置
pam_google_authenticator或其他二因素身份验证方法。 - 在
/etc/pam.d/sshd中添加auth required pam_google_authenticator.so行。
- 配置
-
限制 shell 访问:
- 在
/etc/passwd中设置不常用账户的 Shell 为/sbin/nologin或/bin/false。 - 编辑
/etc/shells文件,移除不需要的 shell。
- 在
-
定期修改密码:
- 在
/etc/login.defs中设置密码最大寿命(PASS_MAX_DAYS)和密码最小寿命(PASS_MIN_DAYS)。 - 使用
chage命令设置密码策略,如chage -M 90 -m 7 -W 7 username。
- 在
-
使用账号管理工具:
- 使用账号管理工具(如
useradd、usermod、userdel)进行账户管理,以确保正确的权限和配置。
- 使用账号管理工具(如
-
定期审查日志:
- 定期审查系统和应用程序日志,查找异常活动和潜在的安全问题。
- 使用工具(如
logwatch)自动化日志审查过程。
Ending
相关文章:
PAM | 账户安全 | 管理
PAM PAM(Pluggable Authentication Modules,可插入式身份验证模块)是一个灵活的身份验证系统,允许我们通过配置和组合各种模块来实现不同的身份验证策略。 在 Linux 或类 Unix 系统中,常见的 PAM 模块包括以下几种类…...
Leetcode 16-20题
最接近的三数之和 给定整数数组和目标值target,从数组中选出三个整数,使得和与target最接近,并返回三数之和。保证恰好存在一个解。 和上一题类似,我们先对整数数组排序,然后固定i,枚举j,找到满…...
【开源训练数据集1】神经语言程式(NLP)项目的15 个开源训练数据集
一个聊天机器人需要大量的训练数据,以便在无需人工干预的情况下快速解决用户的询问。然而,聊天机器人开发的主要瓶颈是获取现实的、面向任务的对话数据来训练这些基于机器学习的系统。 我们整理了训练聊天机器人所需的对话数据集,包括问答数据、客户支持数据、对话数据和多…...
【AIGC】Stable Diffusion的ControlNet参数入门
Stable Diffusion 中的 ControlNet 是一种用于控制图像生成过程的技术,它可以指导模型生成特定风格、内容或属性的图像。下面是关于 ControlNet 的界面参数的详细解释: 低显存模式 是一种在深度学习任务中用于处理显存受限设备的技术。在这种模式下&am…...
静态curl库编译与使用(c++)
静态curl库编译与使用 静态curl库编译与使用:mingw https://curl.se/windows/ // 测试:设置URL地址 // curl_easy_setopt(curlHandle, CURLOPT_URL, “https://ipinfo.io/json”); // curl_easy_setopt(curlHandle, CURLOPT_SSL_VERIFYPEER, 0L); // c…...
element 表单提交图片(表单上传图片)
文章目录 使用场景页面效果前端代码 使用场景 vue2 element 表单提交图片 1.点击【上传图片】按钮择本地图片(只能选择一张图片)后。 2.点击图片,支持放大查看。 3.点击【保存】按钮,提交表单。 页面效果 前端代码…...
Android 15 第一个开发者预览版
点击查看:first-developer-preview-android15 点击查看:Get Android 15 2024年2月16日,谷歌发布 Android 15 第一个开发者预览版 翻译 由工程副总裁戴夫伯克发布 今天,我们发布了Android 15的首个开发者预览版,这样我们的开发者就…...
anomalib1.0学习纪实-续1:增加新算法
0、基本信息 现在我要增加一个新算法:DDAD 他的代码,可以在github中找到:GitHub - arimousa/DDAD 一、基础操作: 1、修改anomalib\src\anomalib\models\__init__.py 我增加的第33行和61行, 2、 增加ddad文件夹和文…...
Java+Vue+MySQL,国产动漫网站全栈升级
✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...
机器人常用传感器分类及一般性要求
机器人传感器的分类 传感技术是先进机器人的三大要素(感知、决策和动作)之一。根据用途不同,机器人传感器可以分为两大类:用于检测机器人自身状态的内部传感器和用于检测机器人相关环境参数的外部传感器。 内部传感器 内部传感…...
C++-opencv的imread、imshow、waitkey、namedWindow
在C中使用OpenCV时,imread和imshow是两个非常基础且常用的函数,用于读取图像和显示图像。以下是这两个函数的简要说明和如何一起使用它们的示例。 imread函数 imread用于从指定的文件路径读取图像。它将图像读入为cv::Mat对象,这是OpenCV中…...
开源语音识别faster-whisper部署教程
1. 资源下载 源码地址 模型下载地址: large-v3模型:https://huggingface.co/Systran/faster-whisper-large-v3/tree/main large-v2模型:https://huggingface.co/guillaumekln/faster-whisper-large-v2/tree/main large-v2模型:…...
使用IntelliJ IDEA配置Maven (入门)
在使用IntelliJ IDEA进行Java开发时,配置Maven是至关重要的一步,因为它可以帮助你管理项目的依赖和构建过程。以下是我在使用IntelliJ IDEA配置Maven的实践过程,以及一些技术笔记和职场感悟。 工作实践与项目复盘 下载Maven: 访问…...
汽车金融市场研究:预计2029年将达到482亿美元
汽车金融公司作为汽车流通产业链的重要一环,认真贯彻落实国家有关政策,采取多种措施助力汽车产业发展,为促进推动汽车消费、助力畅通汽车产业链、支持稳定宏观经济大盘发挥了积极作用。 益于国内疫情得到有效控制,我国经济持续稳定…...
关于举办第十五届蓝桥杯大赛电子赛5G全网规划与建设赛项的通知
关于举办第十五届蓝桥杯大赛电子赛 5G全网规划与建设赛项的通知 各相关院校: 第十五届蓝桥杯大赛通知已于2023年9月27日在蓝桥杯大赛官网发布,现就电子赛5G全网规划与建设赛项报名事宜,公布如下: 一、赛项概述 5G全网规划与建设…...
Vue3快速上手(七) ref和reactive对比
一、ref和reactive对比 表格形式更加直观吧: 项目refreactive是否支持基本类型支持不支持是否支持对象类型支持支持对象类型是否支持属性直接赋值不支持,需要.value支持是否支持直接重新分配对象支持,因为操作的.value不支持,需…...
8、内网安全-横向移动RDPKerberos攻击SPN扫描WinRMWinRS
用途:个人学习笔记,有所借鉴,欢迎指正 目录 一、域横向移动-RDP-明文&NTLM 1.探针服务: 2.探针连接: 3.连接执行: 二、域横向移动-WinRM&WinRS-明文&NTLM 1.探针可用: 2.连接…...
《数据结构与算法之美》读书笔记
《数据结构与算法之美》读书笔记 写在前面 这本书的大部分内容比较浅显,因此只挑DSAA课程上没有涉及或没有深入讨论的点总结 第二章 数组相关 提高传统数组插入/删除数据效率的方法: 如果插入的数据不要求有序,可以直接把某位的原数据替换…...
C语言—字符数组(3)
可能不是那么的完整,先凑合看吧,如果我学会如何修改以后,我慢慢回来修改的 1.编写程序实现对两个字符串的连接功能; 法一:不使用strcat函数,写程序直接实现,记得添加结束符,不然程序访问数组时候将变得不…...
linux 实用技能
1.查看系统版本 cat /etc/redhat-release cat /etc/redhat-release 2. 查看磁盘实用情况 df du 3.查看内存 top -Hp 2214 4. 网络配置 vi /etc/hostname vi /etc/hosts vi /etc/sysconfig/network-scripts/ifcfgens33 6. sed ‘s/a/b/g’ aaa.txt 替换 7. scp …...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
