CentOS服务器安全基线检查是围绕等保2.0四大技术维度执行的可验证操作流程:账号管理查空口令、UID重复、共享账号及无用账户锁定;SSH加固禁root远程、强密钥认证、失败限制与空闲超时;口令策略设最小长度12、多字符类型及90天有效期;日志审计启用auditd、监控关键文件、配置远程留存与6个月保留周期。
CentOS 服务器安全基线检查不是写一份“文档”,而是执行一套可验证、可复现、有依据的操作流程。核心是围绕等保2.0(GB/T 22239-2019)和行业实践,聚焦身份鉴别、访问控制、安全审计、入侵防范四大技术维度,用命令+人工确认+配置修正闭环完成。
下面直接给出实用、可落地的检查结构和关键项,不堆概念,只列要查什么、怎么查、怎么改:
账号与权限管理检查
• 查空口令账户:awk -F: '$2 == "" {print $1}' /etc/shadow —— 输出非空则需立即设密码或禁用
• 查重复UID:cut -d: -f3 /etc/passwd | sort -n | uniq -d —— 有输出说明存在UID冲突,必须清理多余root级账户
• 查共享账号:cat /etc/passwd | awk -F: '{print $1}' 结合业务台账比对,确认每个账号归属唯一责任人
• 锁定无用系统账户:如 lp, sync, shutdown, halt 等,执行 passwd -l username 或改其 shell 为 /sbin/nologin
SSH远程访问加固检查
• 禁用root远程登录:检查 /etc/ssh/sshd_config 中 PermitRootLogin no 是否生效(改后需 systemctl restart sshd)
• 强制使用密钥认证:确认 PasswordAuthentication no 且 PubkeyAuthentication yes 已启用
• 设置登录失败限制:检查 MaxAuthTries 3 和 LoginGraceTime 60 是否配置
• 启用空闲超时:确认 ClientAliveInterval 600 与 ClientAliveCountMax 2 已写入并生效
口令策略与生命周期检查
• 密码最小长度与复杂度:检查 /etc/security/pwquality.conf 中 minlen = 12、dcredit = -1、ucredit = -1、lcredit = -1、ocredit = -1
• 密码有效期:检查 /etc/login.defs 中 PASS_MAX_DAYS 90、PASS_MIN_DAYS 7、PASS_WARN_AGE 7
• 防止密码重用:确认 remember = 5(即禁止重用最近5次密码)已在 pwquality.conf 中设置
日志与审计机制检查
• 审计服务是否启用:systemctl is-active auditd 返回 active,且 auditctl -s | grep "enabled" 显示 enabled: 1
• 关键文件监控是否配置:auditctl -l | grep "/etc/passwd|/etc/shadow|/etc/sudoers" —— 应有对应 -w 规则
• 日志是否远程留存:检查 /etc/rsyslog.conf 是否含类似 *.* @@10.0.1.100:514 的远程转发配置
• 日志保留周期:ls -lt /var/log/secure* | head -n 10 看最旧日志是否超6个月;同时检查 logrotate 配置中 rotate 180 是否生效
不复杂但容易忽略。每项检查都应有“预期结果”和“不符合时的修复命令”,建议用脚本批量初筛(如Lynis或OpenSCAP),再人工复核高风险项。真正有效的基线检查,是让每一次登录、每一次提权、每一次配置变更,都在可控、可溯、可审计的轨道上。