等保测评命令——Centos Linux

依据 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
密码复杂度 `grep -E "pam_pwquality pam_cracklib" /etc/pam.d/system-auth`
登录失败锁定 `grep -E "pam_faillock pam_tally2" /etc/pam.d/system-auth`
SSH超时策略 `grep -E "ClientAliveInterval ClientAliveCountMax" /etc/ssh/sshd_config`

二、访问控制(8.1.4.2)

控制项 测评命令 达标判据
默认账户清理 `grep -E "games news
sudo授权 `grep -v "^#" /etc/sudoers grep -v "^$"`
关键文件权限 ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow 644/000/644/000
umask值 grep umask /etc/profile /etc/bashrc 022或027

三、安全审计(8.1.4.3)

控制项 测评命令 达标判据
auditd服务 systemctl status auditd && systemctl is-enabled auditd active & enabled
审计规则 auditctl -l && cat /etc/audit/audit.rules 覆盖登录、权限变更、文件操作
日志保留 `grep -E "weekly rotate" /etc/logrotate.conf`
日志权限 ls -l /var/log/audit/audit.log 640 root:root

四、入侵防范(8.1.4.4)

控制项 测评命令 达标判据
开放端口 `ss -tulnp grep LISTEN`
补丁更新 `yum check-update && rpm -qa --last head`
防火墙 systemctl status firewalld && firewall-cmd --list-all 启用并配置业务规则
SELinux getenforce Enforcing模式

五、恶意代码防范(8.1.4.5)

控制项 测评命令 达标判据
杀毒软件 `systemctl status clamav-daemon && ps -ef grep clamav`
病毒库更新 freshclam --version && ls -l /var/lib/clamav/ 24小时内更新

六、可信验证(8.1.4.6)

控制项 测评命令 达标判据
TPM状态 `dmesg grep -i tpm`
文件完整性 `rpm -Va grep -E "^..5"`

七、数据备份恢复(8.1.4.9)

控制项 测评命令 达标判据
备份策略 `crontab -l grep -i backup`
备份权限 ls -l /backup/ 700 root:root
恢复验证 tar -tzf /backup/etc_backup_$(date +%F).tar.gz 可正常解压,文件完整

一键巡检脚本(Bash)

复制代码
#!/bin/bash
# CentOS 等保三级一键巡检脚本
# 适用:CentOS 7/8
# 执行用户:root

echo"===== 1 身份鉴别 ====="

echo"--- 空口令检查 ---"
awk -F: '($2==""){print "空口令用户: "$1}' /etc/shadow

echo"--- 密码有效期 ---"
grep-E"PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE" /etc/login.defs

echo"--- 密码复杂度 ---"
grep-E"pam_pwquality|pam_cracklib" /etc/pam.d/system-auth |head-5

echo"--- 登录失败锁定 ---"
grep-E"pam_faillock|pam_tally2" /etc/pam.d/system-auth

echo"--- SSH超时 ---"
grep-E"ClientAliveInterval|ClientAliveCountMax" /etc/ssh/sshd_config

echo""
echo"===== 2 访问控制 ====="

echo"--- 默认账户 ---"
grep-E"games|news|ftp|lp|halt|shutdown" /etc/passwd

echo"--- sudo配置 ---"
grep-v"^#" /etc/sudoers |grep-v"^$"|head-10

echo"--- 关键文件权限 ---"
ls-l /etc/passwd /etc/shadow /etc/group /etc/gshadow 2>/dev/null

echo"--- umask配置 ---"
grepumask /etc/profile /etc/bashrc 2>/dev/null

echo""
echo"===== 3 安全审计 ====="

echo"--- auditd状态 ---"
systemctl status auditd 2>/dev/null |grep Active
systemctl is-enabled auditd 2>/dev/null

echo"--- 审计规则 ---"
auditctl -l2>/dev/null |wc-l

echo"--- 日志保留 ---"
grep-E"weekly|rotate" /etc/logrotate.conf |head-3

echo"--- 日志权限 ---"
ls-l /var/log/audit/audit.log 2>/dev/null

echo""
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-l

echo"--- 防火墙状态 ---"
systemctl status firewalld 2>/dev/null |grep Active
firewall-cmd --state2>/dev/null

echo"--- SELinux ---"
getenforce

echo""
echo"===== 5 恶意代码防范 ====="

echo"--- ClamAV状态 ---"
systemctl status clamav-daemon 2>/dev/null |grep Active
ps-ef|grep clamd |grep-vgrep

echo"--- 病毒库 ---"
freshclam --version2>/dev/null ||echo"未安装freshclam"

echo""
echo"===== 6 可信验证 ====="

echo"--- TPM状态 ---"
dmesg|grep-i"tpm"|head-3

echo"--- 文件完整性 ---"
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=900
auth [default=die] pam_faillock.so authfail audit deny=5unlock_time=900
auth sufficient pam_faillock.so authsucc audit deny=5unlock_time=900

2. SSH安全配置(/etc/ssh/sshd_config)

复制代码
# 禁止root远程登录
PermitRootLogin no

# 仅允许特定用户组
AllowGroups wheel

# 空闲超时配置(5分钟无操作自动断开)
ClientAliveInterval 300
ClientAliveCountMax 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 无输出 安装并配置pam_pwquality
无登录失败锁定 `grep -E "pam_faillock pam_tally2" /etc/pam.d/system-auth` 无输出
root远程登录 grep ^PermitRootLogin /etc/ssh/sshd_config 值为yes或未配置 修改为no并重启sshd
SELinux未启用 getenforce 返回DisabledPermissive 修改配置文件为enforcing
防火墙未启用 systemctl is-active firewalld active 启用firewalld并配置规则
审计未启用 systemctl is-active auditd active 安装auditd并启用服务
高危端口开放 `ss -tulnp grep -E "0.0.0.0:111 0.0.0.0:23"`
无杀毒软件 systemctl is-active clamav-daemon active 安装ClamAV并启用实时保护
备份未配置 `crontab -l grep backup` 无输出

CentOS版本差异说明(6 vs 7 vs 8)

功能项 CentOS 6 CentOS 7 CentOS 8
服务管理 service systemctl systemctl
包管理 yum yum dnf(yum兼容)
登录失败锁定 pam_tally2 pam_tally2/pam_faillock pam_faillock
SELinux 基础 增强 增强
审计工具 auditd auditd auditd
默认防火墙 iptables firewalld firewalld
长期支持 已停止(2020) 2024年停止 2021年停止(转向CentOS Stream)

重要提示 :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对比

对比项 CentOS RHEL Oracle Linux
源代码 RHEL重新编译 商业源码 RHEL兼容
支持周期 已停止 10年 10年
安全补丁 滞后 及时 及时
成本 免费 订阅制 免费(仅更新)
等保合规 需自行加固 官方加固指南 类似CentOS

常用命令速查

复制代码
# 用户与权限
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  # 备份/etc
rsync-avz /backup/ remote:/backup/          # 异地同步

参考标准 :GB/T 22239-2019、GB/T 28448-2019、CentOS安全基线
适用版本 :CentOS 7/8(CentOS 6部分命令需调整)
验证环境:x86_64 / ARM64 架构


相关推荐
yunyun321232 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
万象.2 小时前
Linux数据链路层通信原理及报文格式
linux·网络·网络协议
m0_662577972 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
songyuc2 小时前
【PyTorch】感觉`CrossEntropyLoss`和`BCELoss`很类似,为什么它们接收labels的shape常常不一样呢?
人工智能·pytorch·python
ℳ๓₯㎕.空城旧梦2 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
卷Java2 小时前
Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南
linux·运维·服务器
鹓于2 小时前
手机SSH直连电脑运行iflow终极安全配置
windows·安全·ssh
浩子智控3 小时前
python程序打包的文件地址处理
开发语言·python·pyqt
Jackey_Song_Odd3 小时前
Part 1:Python语言核心 - 序列与容器
开发语言·windows·python