[脚本名称]: 安全检查脚本
[软件大小]:9.66KB
[下载通道] : 夸克盘
注!!! 不对服务器任何配置进行修改

一、脚本整体作用定位
check.sh 的核心作用:
📌 对 Linux 系统进行 安全配置合规性检查,生成一份可读的安全巡检报告。
特点:
-
✅ 只读检查(不会改任何系统配置)
-
✅ 适合内网 / 等保 / 安全检查前自查
-
✅ 输出清晰,带"通过 / 不通过 / 未配置"
-
✅ 覆盖账号、口令、日志、登录安全等关键项
非常适合:
-
运维巡检
-
等保测评前自查
-
上线前安全检查
-
内控 / 审计材料准备
二、脚本做了哪些安全检查(逐项说明)
1️⃣ 限制 root 远程登录(SSH)
PermitRootLogin no
-
检查
/etc/ssh/sshd_config -
判断 root 是否允许远程 SSH 登录
✅ 推荐禁用,降低暴力破解风险
2️⃣ 是否修改默认 root 账号
-
检查 root 的 shell 是否仍为
/bin/bash -
如果 root 可直接登录 bash → 判定不安全
⚠️ 实际生产中,这一项偏"严格",有些环境会人工放宽
3️⃣ 是否存在多余可登录账号
-
统计
/bin/bash的账号数量 -
期望只有 1 个(root 或管理账号)
防止:
-
僵尸账号
-
测试账号遗留
4️⃣ 是否启用账号异常锁定
pam_tally2.so
-
检查 SSH 是否配置登录失败锁定
-
防止暴力破解
5️⃣ 密码最短长度策略
PASS_MIN_LEN >= 8
-
从
/etc/login.defs读取 -
不符合直接判不通过
6️⃣ 密码复杂度策略
pam_cracklib.so
-
检查是否要求数字 / 大小写 / 特殊字符
-
等保必查项
7️⃣ Grub 引导密码
-
防止物理接触时进入单用户模式
-
服务器等保场景常要求
8️⃣ Bash 历史命令保留
HISTSIZE=2000
-
确保命令可追溯
-
便于安全审计
9️⃣ 登录超时自动退出
TMOUT=1800
-
防止运维人员离席导致风险
-
30 分钟无操作自动登出
🔟 Umask 默认权限
umask 027
-
新建文件默认权限更安全
-
防止数据被其他用户读取
1️⃣1️⃣ rsyslog 认证日志
authpriv.*
-
是否记录登录、认证类日志
-
安全审计必需
1️⃣2️⃣ rsyslog 日志完整性
-
判断 rsyslog 是否正常配置
-
防止日志未记录 / 被关闭
三、脚本输出结构说明
📋 1)逐项检查输出
每一项都会显示:
-
使用的检查命令
-
实际配置值
-
检查结果(✅ ❌ ⚠️)
📊 2)最终汇总表格
检查项目 | 结果 | 实际值
一眼就能看出:
-
哪些项不合规
-
哪些需要整改
-
哪些只是未配置
四、适用场景 & 使用建议
✔️ 适合使用场景
-
等保 2.0 / 3.0 自查
-
运维日常巡检
-
上线前安全评估
-
安全整改对照检查
⚠️ 使用注意事项(很重要)
1️⃣ 不同 Linux 版本差异
-
RHEL 8 / Rocky / Kylin / CentOS 7
部分 PAM 模块名称不同(如 pam_faillock)
2️⃣ root shell 判断偏严格
-
有些企业允许 root 登录 bash
-
可根据实际情况调整第 2 项逻辑
3️⃣ 不会自动修复
-
本脚本只"发现问题"
-
修复需要你单独执行配置变更
4️⃣ 适合"标准化环境"
-
如果服务器有特殊用途(数据库、专用节点)
-
个别规则可能需要豁免
五、一句话总结
check.sh 是一份结构清晰、风险低、非常适合运维和等保自查的 Linux 安全基线巡检脚本。
如果你愿意,我可以帮你:
-
🔧 改成 等保 2.0/3.0 标准版
-
📄 输出成 CSV / Word / HTML 报告
-
⚙️ 加上 自动整改建议
-
🧠 适配 Kylin / CentOS / RHEL 8