Linux 运维中怎么实现多台服务器集群的密码策略配置状态一致性巡检脚本

夜婷君_7034

夜婷君_7034

2026-09-24

141人浏览

原创

linux多服务器密码策略一致性巡检需聚焦pam强度参数、/etc/login.defs默认值、root用户实际策略及pam模块启用状态,通过ssh批量采集+本地结构化比对实现;推荐结合ansible实现策略即代码与自动验证闭环。

linux 运维中怎么实现多台服务器集群的密码策略配置状态一致性巡检脚本

在 Linux 运维中,实现多台服务器集群的密码策略配置状态一致性巡检,核心是统一采集关键配置项(如 /etc/pam.d/common-password/etc/login.defs/etc/shadow 中的密码过期字段等),并通过批量执行 + 结构化比对完成“一致性判断”。不依赖外部平台时,可用纯 Shell + SSH 实现轻量级巡检。

明确需巡检的关键密码策略项

一致性巡检不是比对整个文件,而是聚焦影响行为的实际策略参数。常见必须比对的项包括:

  • PAM 密码强度规则:如 password [success=1 default=ignore] pam_pwquality.so retry=3 minlen=12 difok=3 中的 minlendifokretrymaxrepeat
  • 系统默认密码期限:从 /etc/login.defs 提取 PASS_MAX_DAYSPASS_MIN_DAYSPASS_WARN_AGE
  • 用户级密码状态(抽样):对 root 或指定运维账号,用 chage -l username 检查实际生效的 max/min/warn 值,确认是否被单独覆盖
  • PAM 模块启用状态:确认 pam_pwquality.sopam_pwcheck.so 是否在 common-password 中启用(非注释且非 [default=die] 抑制)

编写巡检脚本:SSH 批量采集 + 本地结构化比对

以下是一个可直接运行的精简版巡检脚本框架(保存为 pwd_policy_audit.sh),支持 IP 列表输入和差异高亮:

#!/bin/bash
SERVERS=(192.168.1.10 192.168.1.11 192.168.1.12)
REPORT="audit_$(date +%Y%m%d_%H%M).log"
<p>echo "=== 密码策略一致性巡检报告 $(date) ===" > "$REPORT"</p><p>for host in "${SERVERS[@]}"; do
echo -e "\n--- $host ---" >> "$REPORT"</p><h1>采集 PAM 强度参数(提取 key=value 形式)</h1><p>ssh "$host" "grep -v '^#' /etc/pam.d/common-password 2>/dev/null | grep pwquality | sed 's/.<em>pam_pwquality.so[^[:alnum:]]</em>//; s/[[:space:]]*$//' | tr ' ' '\n' | grep '=' | cut -d= -f1,2" 2>/dev/null >> "$REPORT"</p><h1>采集 login.defs 默认值</h1><p>ssh "$host" "grep -E '^(PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE)' /etc/login.defs 2>/dev/null" 2>/dev/null >> "$REPORT"</p><div class="aritcle_card flexRow artxards">
											<div class="artcardd flexRow">
												<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill4570" title="linux-performance-analyzer"><img
														src="https://img.php.cn/upload/skill/000/000/081/179013069298656.jpg" alt="linux-performance-analyzer" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
												<div class="aritcle_card_info flexColumn">
													<a rel="nofollow" href="/xiazai/skill4570" title="linux-performance-analyzer" class="overflowclass">linux-performance-analyzer</a>
													<p class="overflowclass">Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。</p>
												</div>
												<a rel="nofollow" href="/xiazai/skill4570" title="linux-performance-analyzer" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
												</a>
											</div>
										</div><h1>采集 root 用户实际密码策略(验证是否继承 defaults)</h1><p>ssh "$host" "chage -l root 2>/dev/null | grep -E '(Password expires|Minimum number|Warning period)'" 2>/dev/null >> "$REPORT"
done</p><p>echo -e "\n=== 差异分析 ===" >> "$REPORT"</p><h1>对每类参数做行频统计,快速定位异常值</h1><p>awk '/^PASS_|minlen|difok|retry/ {print $0}' "$REPORT" | sort | uniq -c | sort -nr >> "$REPORT"
echo "报告已生成:$REPORT"
</p>

✅ 使用前确保:所有目标服务器已配置免密 SSH 登录;ssh 客户端支持并发(可加 -o ConnectTimeout=5 -o BatchMode=yes 防卡顿);生产环境建议加上错误捕获(如 || echo \"$host: offline\" >> err.log)。

进阶:自动识别不一致并生成修复建议

在基础采集后,可用 Python 或 AWK 做二次分析。例如用 Python 脚本读取日志,按参数分组统计值分布,输出类似:

⚠ PASS_MAX_DAYS 不一致:10 台为 90,2 台为 180(主机:srv-db01, srv-app07)→ 建议同步为 90
⚠ minlen=12 在 3 台缺失(实际为 minlen=8 或未设置)→ 检查 /etc/pam.d/common-password 是否漏配

这类输出可直接对接工单系统或通知运维群。关键逻辑是:把每个参数抽象为 (key, host, value) 三元组,再按 key 分组求 value 的唯一值个数,个数 > 1 即为不一致。

长期维护建议:策略即代码(Policy as Code)

巡检只是手段,根治靠标准化部署。推荐将密码策略固化为 Ansible Role:

  • lineinfile 确保 /etc/login.defs 中的 PASS_* 字段统一
  • blockinfile 管理 /etc/pam.d/common-password 中 pwquality 行
  • 添加 assert 模块,在每次执行后校验 chage -l root 输出是否符合预期
  • 将该 Role 纳入 CI 流水线,每次变更都触发全量巡检测试

这样巡检就从“人工抽查”升级为“每次变更自动验证”,真正实现配置一致性闭环。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2412

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3992

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习