服务器安全基线检查重在执行可落地、可验证、可复用的动作,须明确范围与依据(如CIS_RHEL_8_Benchmark_v2.0.0)、分模块列检查项(含命令、判定逻辑、示例)、标注风险等级与修复路径,并以表格呈现实际结果,确保可核对、可复现、可闭环。

服务器安全基线检查不是写一份“报告”,而是执行一套可落地、可验证、可复用的检查动作。重点在于结构清晰、覆盖关键项、结果可追溯、修复有路径,而不是堆砌文字或罗列标准条目。
以下是从实操角度出发的写法要点,适用于内部文档、加固方案或审计交付材料:
明确检查范围与依据
先说清楚“查什么、按什么查”:
- 操作系统类型与版本(如 CentOS 7.9 / Windows Server 2019)
- 部署环境(物理机 / AWS EC2 / 阿里云ECS)
- 采用的基线标准(如 CIS Level 1 for RHEL 8、等保2.0三级要求)
- 是否叠加行业要求(如金融系统需额外满足《JR/T 0072-2020》)
避免泛泛而谈“参照CIS标准”,要精确到文件名和版本号,例如:CIS_Red_Hat_Enterprise_Linux_8_Benchmark_v2.0.0.xlsx
分模块列出检查项与判定逻辑
按风险域组织,每项包含三要素:检查命令/方法 + 合规判定条件 + 不合规示例
账户与身份管理
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
检查是否存在UID为0的非root用户:
awk -F: '$3 == 0 {print $1}' /etc/passwd
✅ 合规:仅输出root
❌ 不合规:输出admin或test禁用空密码账户:
awk -F: '($2 == "") {print $1}' /etc/shadow
✅ 合规:无输出
❌ 不合规:返回ftp或nobody
认证与访问控制
SSH是否禁用密码登录:
grep -i "^PasswordAuthentication" /etc/ssh/sshd_config
✅ 合规:输出PasswordAuthentication no
❌ 不合规:输出yes或被注释掉PAM失败锁定是否启用:
grep "pam_faillock.so" /etc/pam.d/sshd
✅ 合规:含auth [default=die] pam_faillock.so authfail deny=6 unlock_time=900
❌ 不合规:缺失该行,或deny值大于6
日志与审计
- 安全日志是否启用且保留≥180天:
journalctl --disk-usage+ls -l /var/log/audit/
✅ 合规:audit.log存在且最近修改时间在180天内,磁盘空间充足
❌ 不合规:/var/log/audit/为空,或max_log_file = 5(单位MB)过小
标注风险等级与修复建议
对每项不合规结果,直接关联处置方式,不另起章节:
- 高风险(如 root 远程登录开启、空密码账户存在)→ 必须立即处理,附命令:
sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config && systemctl restart sshd - 中风险(如密码最长有效期>90天)→ 纳入下次维护窗口,说明影响:
“延长口令有效期会增加凭证泄露后被滥用的时间窗口” - 低风险(如历史命令时间戳未启用)→ 可选优化,标注收益:
“启用HISTTIMEFORMAT可精准追溯操作时间,便于审计回溯”
附执行记录与结果汇总
用表格呈现实际检查结果,而非只写“已检查”:
| 检查项 | 实际值 | 是否合规 | 备注 |
|---|---|---|---|
| SSH 密码登录 | yes | ❌ | 已执行 sed -i '/PasswordAuthentication/c\PasswordAuthentication no'
|
| root 远程登录 | yes | ❌ | 已修改 /etc/ssh/sshd_config 并重启服务 |
| 最大日志大小 | 10M | ⚠️ | 小于推荐值100M,已调整 max_log_file = 100
|
这样写,别人拿到就能核对、能复现、能闭环。不复杂但容易忽略。

















