依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》等保2.0三级 标准,针对 CentOS 操作系统(安全计算环境) 给出可直接落地的测评命令清单。
覆盖 身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、可信验证、数据备份恢复 等核心控制点,已在 CentOS 7/8 环境验证通过。
一、身份鉴别(8.1.4.1)
| | |
|---|
| awk -F: '($2==""){print $1}' /etc/shadow | |
| grep -E "PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE" /etc/login.defs | |
| grep -E "pam_pwquality|pam_cracklib" /etc/pam.d/system-auth | |
| grep -E "pam_faillock|pam_tally2" /etc/pam.d/system-auth | |
| grep -E "ClientAliveInterval|ClientAliveCountMax" /etc/ssh/sshd_config | |
二、访问控制(8.1.4.2)
| | |
|---|
| grep -E "games|news|ftp|lp|halt|shutdown" /etc/passwd | |
| grep -v "^#" /etc/sudoers | grep -v "^$" | |
| ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow | |
| grep umask /etc/profile /etc/bashrc | |
三、安全审计(8.1.4.3)
| | |
|---|
| systemctl status auditd && systemctl is-enabled auditd | |
| auditctl -l && cat /etc/audit/audit.rules | |
| grep -E "weekly|rotate" /etc/logrotate.conf | |
| ls -l /var/log/audit/audit.log | |
四、入侵防范(8.1.4.4)
| | |
|---|
| ss -tulnp | grep LISTEN | |
| yum check-update && rpm -qa --last | head | |
| systemctl status firewalld && firewall-cmd --list-all | |
| getenforce | |
五、恶意代码防范(8.1.4.5)
| | |
|---|
| systemctl status clamav-daemon && ps -ef | grep clamav | |
| freshclam --version && ls -l /var/lib/clamav/ | |
六、可信验证(8.1.4.6)
| | |
|---|
| dmesg | grep -i tpm | |
| rpm -Va | grep -E "^..5" | |
七、数据备份恢复(8.1.4.9)
| | |
|---|
| crontab -l | grep -i backup | |
| ls -l /backup/ | |
| tar -tzf /backup/etc_backup_$(date +%F).tar.gz | |
一键巡检脚本(Bash)
#!/bin/bash# CentOS 等保三级一键巡检脚本# 适用:CentOS 7/8# 执行用户:rootecho"===== 1 身份鉴别 ====="echo"--- 空口令检查 ---"awk -F: '($2==""){print "空口令用户: "$1}' /etc/shadowecho"--- 密码有效期 ---"grep-E"PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE" /etc/login.defsecho"--- 密码复杂度 ---"grep-E"pam_pwquality|pam_cracklib" /etc/pam.d/system-auth |head-5echo"--- 登录失败锁定 ---"grep-E"pam_faillock|pam_tally2" /etc/pam.d/system-authecho"--- SSH超时 ---"grep-E"ClientAliveInterval|ClientAliveCountMax" /etc/ssh/sshd_configecho""echo"===== 2 访问控制 ====="echo"--- 默认账户 ---"grep-E"games|news|ftp|lp|halt|shutdown" /etc/passwdecho"--- sudo配置 ---"grep-v"^#" /etc/sudoers |grep-v"^$"|head-10echo"--- 关键文件权限 ---"ls-l /etc/passwd /etc/shadow /etc/group /etc/gshadow 2>/dev/nullecho"--- umask配置 ---"grepumask /etc/profile /etc/bashrc 2>/dev/nullecho""echo"===== 3 安全审计 ====="echo"--- auditd状态 ---"systemctl status auditd 2>/dev/null |grep Activesystemctl is-enabled auditd 2>/dev/nullecho"--- 审计规则 ---"auditctl -l2>/dev/null |wc-lecho"--- 日志保留 ---"grep-E"weekly|rotate" /etc/logrotate.conf |head-3echo"--- 日志权限 ---"ls-l /var/log/audit/audit.log 2>/dev/nullecho""echo"===== 4 入侵防范 ====="echo"--- 高危端口 ---"ss -tulnp|grep-E"0.0.0.0:111|0.0.0.0:23|0.0.0.0:513"echo"--- 待更新包 ---"yum check-update 2>/dev/null |wc-lecho"--- 防火墙状态 ---"systemctl status firewalld 2>/dev/null |grep Activefirewall-cmd --state2>/dev/nullecho"--- SELinux ---"getenforceecho""echo"===== 5 恶意代码防范 ====="echo"--- ClamAV状态 ---"systemctl status clamav-daemon 2>/dev/null |grep Activeps-ef|grep clamd |grep-vgrepecho"--- 病毒库 ---"freshclam --version2>/dev/null ||echo"未安装freshclam"echo""echo"===== 6 可信验证 ====="echo"--- TPM状态 ---"dmesg|grep-i"tpm"|head-3echo"--- 文件完整性 ---"rpm-Va|grep-E"^..5"|head-5||echo"关键文件未被篡改"echo""echo"===== 7 数据备份 ====="echo"--- 备份任务 ---"crontab-l2>/dev/null |grep-i backup ||echo"未配置备份任务"echo"--- 备份目录 ---"ls-ld /backup/ 2>/dev/null ||echo"备份目录不存在"echo""echo"===== 巡检完成 ====="
关键配置文件说明
1. 密码策略配置(/etc/pam.d/system-auth)
# 密码复杂度要求password requisite pam_pwquality.so try_first_pass local_users_only retry=3minlen=8minclass=4ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1# 密码历史(CentOS 8)password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=12# 登录失败锁定(CentOS 7使用pam_tally2,CentOS 8使用pam_faillock)auth required pam_faillock.so preauth silent audit deny=5unlock_time=900auth [default=die] pam_faillock.so authfail audit deny=5unlock_time=900auth sufficient pam_faillock.so authsucc audit deny=5unlock_time=900
2. SSH安全配置(/etc/ssh/sshd_config)
# 禁止root远程登录PermitRootLogin no# 仅允许特定用户组AllowGroups wheel# 空闲超时配置(5分钟无操作自动断开)ClientAliveInterval 300ClientAliveCountMax 0# 仅使用SSHv2协议Protocol 2
3. 审计规则配置(/etc/audit/audit.rules)
# 监控用户/组修改-w /etc/passwd -p wa -k identity_changes-w /etc/group -p wa -k identity_changes-w /etc/shadow -p wa -k identity_changes-w /etc/gshadow -p wa -k identity_changes# 监控sudoers修改-w /etc/sudoers -p wa -k sudoers_changes-w /etc/sudoers.d/ -p wa -k sudoers_changes# 监控SSH配置-w /etc/ssh/sshd_config -p wa -k ssh_config_changes
高风险项重点核查清单
| | | |
|---|
| 空口令账户 | awk -F: '($2==""){print $1}' /etc/shadow | | |
| 密码复杂度未启用 | grep pam_pwquality /etc/pam.d/system-auth | | |
| 无登录失败锁定 | grep -E "pam_faillock|pam_tally2" /etc/pam.d/system-auth | | |
| root远程登录 | grep ^PermitRootLogin /etc/ssh/sshd_config | | |
| SELinux未启用 | getenforce | | |
| 防火墙未启用 | systemctl is-active firewalld | | |
| 审计未启用 | systemctl is-active auditd | | |
| 高危端口开放 | ss -tulnp | grep -E "0.0.0.0:111|0.0.0.0:23" | | |
| 无杀毒软件 | systemctl is-active clamav-daemon | | |
| 备份未配置 | crontab -l | grep backup | | |
CentOS版本差异说明(6 vs 7 vs 8)
重要提示:CentOS 8已于2021年底停止维护,建议迁移至 Rocky Linux、AlmaLinux 或 Anolis OS 等替代方案。
测评执行要点
1. 权限要求
所有命令需 root 用户执行
建议创建专用审计账户,加入 audit 组
2. 现场核查重点
密码策略:不仅看配置,需尝试创建弱口令用户验证策略是否生效
审计完整性:抽查 /var/log/audit/audit.log,确认包含权限变更、文件修改记录
SELinux有效性:检查是否有进程处于 unconfined_service_t 域
备份有效性:必须现场执行恢复演练,验证备份文件可用
3. 与RHEL/Oracle Linux对比
常用命令速查
# 用户与权限cat /etc/passwd # 查看所有用户cat /etc/shadow # 查看密码状态lastlog # 查看最后登录faillock --user username # 查看登录失败记录(CentOS 8)pam_tally2 --user username # 查看登录失败记录(CentOS 7)# 网络与安全ss -tulnp# 查看监听端口netstat-tulnp# 传统方式查看端口iptables -L-n# 查看iptables规则firewall-cmd --list-all # 查看firewalld规则# 系统与日志uname-a# 内核版本cat /etc/centos-release # OS版本ausearch -ts today -k identity_changes # 搜索今日审计日志aureport --login--summary-i# 生成登录报告# 备份与恢复tar czf /backup/etc-$(date +%F).tar.gz /etc # 备份/etcrsync-avz /backup/ remote:/backup/ # 异地同步
参考标准:GB/T 22239-2019、GB/T 28448-2019、CentOS安全基线适用版本:CentOS 7/8(CentOS 6部分命令需调整)验证环境:x86_64 / ARM64 架构