36、CentOS操作系统测评

CentOS 三级等保现场测评:核查入口速记 + 基础信息与版本差异(CentOS 6/7/8、Stream 与 Rocky/AlmaLinux 迁移)+ 按 8.1.4 安全计算环境 11 个控制点给出实测命令、预期回显、判定标准、常见不符合项与证据留存要求,附测评项对照表。

定位:CentOS / RHEL 系列 Linux 主机(安全计算环境-计算节点)等保测评核查方法与判定口径。 适用版本:CentOS 7、RHEL 7~9、CentOS Stream 8/9、openEuler 22.03+、麒麟 V10(命令与参数名基本一致,版本差异见 §二)。 配套测评:Linux(RHEL/CentOS) 三级现场测评命令单;快捷命令:16、Linux测评命令速查。 同类主机:20、Windows主机测评03、VMware ESXi测评。 配套加固:11、Linux操作系统加固手册;高风险口径:22、高风险判定指引与加固对照表

使用说明:

  • 本文所有命令均为只读取证命令,不修改配置、不重启服务、不执行清除类操作;确需变更由被测单位运维方在授权下实施。
  • 命令回显本身即证据,须连同命令行一起截图;示例中的地址、账户、路径均为演示值,现场须替换为真实取证结果,并对个人信息与内网管理地址脱敏后再入报告。
  • 命令不存在或输出与示例差异较大时,先确认产品版本与部署形态(物理机/虚拟机/容器/集群),再换用等效命令或转入配置文件、管理控制台取证,不得据命令缺失直接判不符合
  • 文中「默认」「一般」等表述均为初判倾向,须经上机核查 + 访谈 + 配置/制度核对三方印证后定论,并在报告中写明取证来源。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点,并写明判定依据与承载该能力的上位组件。
  • 依据 GB/T 28448-2019「按测评对象实际承载功能与数据处理范围判定」原则:控制能力由上层应用、统一认证平台、前置代理、堡垒机、日志审计系统、虚拟化平台或云托管平台承载时,应注明测评单元边界后判定不适用或转由上位组件核查,不得机械按缺失判不符合。
  • 产品版本确实不提供该能力(如设备无可信根、社区版无审计模块)时,须核查替代措施并按替代措施的实际效果定档,不得直接判不适用。

一、核查入口速记

# 身份鉴别
grep -E '^PASS_|^ENCRYPT_METHOD' /etc/login.defs      # 口令有效期与哈希算法
chage -l root                                          # 单个账户的实际有效期(login.defs 只影响新建账户)
grep -E 'pam_pwquality|pam_cracklib|pam_pwhistory' /etc/pam.d/system-auth /etc/pam.d/password-auth
grep -E 'pam_faillock|pam_tally2' /etc/pam.d/system-auth /etc/pam.d/password-auth
grep -rE '^\s*TMOUT|readonly TMOUT|export TMOUT' /etc/profile /etc/profile.d/ /etc/bashrc 2>/dev/null
faillog -a 2>/dev/null; faillock --user root 2>/dev/null

# 访问控制
awk -F: '$3>=1000 && $3!=65534 {print $1, $3}' /etc/passwd   # 可登录的普通账户
awk -F: '($2=="" ) {print $1" 空口令"}' /etc/shadow           # 空口令账户(须为 0 条)
awk -F: '$3==0 {print $1}' /etc/passwd                        # uid=0 的账户(应仅 root)
grep -E '^PermitRootLogin|^AllowUsers|^AllowGroups|^Protocol' /etc/ssh/sshd_config
sudo -l -U root; cat /etc/sudoers | grep -vE '^\s*#|^\s*$'    # sudo 授权(不是 /etc/sudo.conf)
sestatus; grep -E '^SELINUX=|^SELINUXTYPE=' /etc/selinux/config

# 安全审计
systemctl status auditd rsyslog
auditctl -l                                                   # 已加载的审计规则(默认为空)
ausearch -m USER_LOGIN --start today 2>/dev/null | head
grep -E '^max_log_file|^num_logs|^max_log_file_action' /etc/audit/auditd.conf
chronyc sources -v 2>/dev/null || ntpq -p

# 入侵防范
rpm -qa | wc -l; yum grouplist 2>/dev/null | head -20         # 安装面
systemctl list-unit-files | grep enabled                      # 开机自启服务
ss -ntlp                                                      # 监听端口(RHEL8+ 无 net-tools 时用 ss)
firewall-cmd --list-all 2>/dev/null || iptables -nL

二、基础信息与版本差异

对应控制点:非独立控制点(测评对象与资产确认);系统版本与补丁级别、运行服务、部署形态(物理机/虚拟机/容器)佐证 8.1.4.4 入侵防范 a)e) 与 8.1.2.1 网络架构 e)

判定要点:本节为测评对象确认,不单独出结论;操作系统版本与补丁级别、主机名与 IP、运行服务与监听端口、部署形态(物理机/虚拟机/容器)、承载业务未取全时,后续控制点的判定口径与「不适用」结论均无法成立,应先补齐再进入控制点核查。

取证要求:版本与内核回显截图、补丁/更新清单、监听端口与进程对照截图、已安装组件清单、部署形态说明或虚拟化平台截图、资产台账条目。

核查版本与生命周期,login.defs 只给出新建用户的默认值,存量账户须逐账户核查:

cat /etc/centos-release 2>/dev/null || cat /etc/os-release
uname -a
CentOS 7 / RHEL 7RHEL 8/9、CentOS Stream 8/9、openEuler 22+、麒麟 V10
登录失败锁定pam_tally2pam_faillockpam_faillockpam_tally2 已移除)
口令复杂度pam_pwquality(更早为 pam_cracklib同左
PAM 配置方式直接编辑 /etc/pam.d/system-auth须用 authselect,直接编辑会在 authselect apply 后被覆盖
防火墙firewalld/iptablesfirewalld(nftables 后端)
时间同步chrony(7 起默认)或 ntpdchrony
包管理yum / rpmdnf / rpm
端口查看netstat(net-tools)ss(iproute2),net-tools 需另装
SELinux默认 enforcing + targeted同左

⚠️ 两处流传较广的错误结论,本文已更正: ① 原文写「Linux 操作系统默认关闭 SELinux 服务」——RHEL/CentOS 默认 SELINUX=enforcingSELINUXTYPE=targeted (Red Hat《SELinux User’s and Administrator’s Guide》:targeted 为默认策略,sestatus 默认输出 Current mode: enforcing)。 ② 原文用 /etc/sudo.conf 核查 sudo 授权——sudo.conf 是 sudo 前端自身的配置文件,授权策略在 /etc/sudoers/etc/sudoers.d/,核查命令应为 sudo -lcat /etc/sudoers

三、测评实施

身份鉴别

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)

判定要点:账户唯一且无空口令/默认口令、口令复杂度与有效期策略已下发、登录失败处理(锁定阈值与时长)与会话空闲超时已启用、远程管理走 SSH/HTTPS 等加密通道;三级另需核查是否采用两种及以上鉴别技术组合且其中一种为密码技术(如口令+动态令牌/证书/生物特征)→ 全部满足为符合;缺复杂度、缺失败锁定、缺超时或缺双因素之一 → 部分符合;存在空口令、默认口令或 Telnet/HTTP 明文管理 → 不符合(高风险)。

取证要求:账户清单与最后登录时间截图、口令策略配置与生效范围截图、失败锁定与超时参数截图、SSH/远程桌面加密配置截图、双因素认证部署证据或访谈纪要、弱口令实测记录。

a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换

  • 核查要点:

    1. 账户与口令状态:awk -F: '($2==""){print $1}' /etc/shadow 查空口令(应为 0 条);awk -F: '($2!~/^\$/ && $2!~/^[!*]/){print $1}' /etc/shadow 排查非哈希口令。
    2. 口令有效期:grep -E '^PASS_(MAX|MIN)_DAYS|^PASS_WARN_AGE' /etc/login.defs
    3. 逐账户核查实际有效期chage -l <user>。修改 /etc/login.defs 只对新建用户生效,存量账户须用 chage 单独设置(Red Hat 官方说明:在已有用户上必须用 chage)。
    4. 口令复杂度:grep -E 'pam_pwquality|pam_cracklib' /etc/pam.d/system-auth,确认 minlenminclass/dcredit·ucredit·lcredit·ocredit 是否配置。
    5. 口令历史:grep pam_pwhistory /etc/pam.d/system-authremember= 值)。
    6. 唯一性:确认可登录账户(uid ≥ 1000 且 shell 非 nologin)能逐一对应到自然人,无共享账户。

    /etc/shadow 九个字段与常见默认值(现场以实际输出为准):

    字段含义默认值/常见形态
    1用户名/etc/passwd 对应
    2口令哈希$6$ 开头为 SHA-512(CentOS 7 起 ENCRYPT_METHOD SHA512);$1$ 为 MD5、$5$ 为 SHA-256,强度不足
    3上次改密日期1970-01-01 起的天数
    4两次改密最小间隔PASS_MIN_DAYS,默认 0
    5口令最长有效期PASS_MAX_DAYS,默认 99999(约 274 年,等同不约束)
    6过期前警告天数PASS_WARN_AGE,默认 7
    7过期后宽限天数空表示过期即禁用
    8账户绝对过期日期空表示永不过期
    9保留字段

    CentOS /etc/shadow 口令字段界面对照

    CentOS login.defs 口令有效期参数对照

    CentOS system-auth 口令复杂度模块对照

  • 判定标准:

    • 符合:无空口令账户;pam_pwquality 已配置且 minlen ≥ 8、字符类 ≥ 3 类;PASS_MAX_DAYS 与被测单位制度一致(常见 90 天)且逐账户 chage -l 验证一致;pam_pwhistory remember ≥ 5
    • 部分符合:出厂默认最常落在此档——PASS_MAX_DAYS 仍为 99999;或只改了 login.defs 而未对存量账户执行 chage(新建账户合规、存量账户仍为 99999);或复杂度已配但历史项为 0。
    • 不符合:存在空口令或可免鉴别登录的账户;未配置任何复杂度模块且实测可建弱口令;存量账户口令长期未更换且无制度例外说明。
  • 常见不符合项:只看 /etc/login.defs 就判符合,忽略它对存量账户无效——这是 Linux 侧最高频的误判;把 PASS_MIN_LEN(默认 5)当作长度约束,实际口令长度与复杂度由 PAM 的 pam_pwquality/pam_cracklib 控制,该值在启用这些模块后并不生效;只统计账户数而不逐账户 chage -l

  • 证据留存:/etc/shadow/etc/login.defs 截图、system-auth 中复杂度与历史模块配置截图、逐账户 chage -l 输出、弱口令实测记录、口令更换记录。

b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施

  • 核查要点:

    1. 登录失败锁定:grep -E 'pam_faillock|pam_tally2' /etc/pam.d/system-auth /etc/pam.d/password-auth,记录 denyunlock_timefail_interval 三项。默认配置为空(Red Hat 官方 knowledgebase 是以「如何设置」的形式给出,说明默认不启用)。
    2. 会话超时:grep -rE 'TMOUT' /etc/profile /etc/profile.d/ /etc/bashrc,确认是否 readonly TMOUT 导出(只设不 readonly 可被用户自行 unset)。
    3. SSH 空闲超时:grep -E 'ClientAliveInterval|ClientAliveCountMax' /etc/ssh/sshd_config(两者相乘为实际断开时间)。
    4. 实测:连续输错口令验证锁定;登录后静置验证是否自动退出。

    CentOS 登录失败锁定模块对照

    CentOS /etc/profile 会话超时配置对照

  • 判定标准:

    • 符合:失败锁定三项参数齐备且实测触发;TMOUTreadonly 导出;sshd_configClientAliveInterval/ClientAliveCountMax 已配置。
    • 部分符合:最常见档位——只配了 TMOUT 未配锁定(或反之);或 TMOUTreadonly,用户可自行取消;或只覆盖了 SSH 入口,本地控制台(tty)无超时。
    • 不符合:pam_faillock/pam_tally2 未配置(默认形态),且无任何会话超时措施。
  • 常见不符合项:只改 system-auth 未同步改 password-auth(两者不一致时远程与本地表现不同);TMOUTreadonly 导致用户 unset TMOUT 即失效;把 ClientAliveInterval 单独配置而 ClientAliveCountMax 仍为默认值 3(实际超时是两者乘积)。

  • 证据留存:system-auth/password-auth 中锁定模块配置截图、TMOUT 配置截图、sshd_config 存活探测配置截图、锁定提示截图、超时实测记录。

c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

  • 核查要点:

    1. 确认管理通道:ps -e | grep sshd,确认 SSH 服务运行中;systemctl status telnet.socket,确认 Telnet 未启用。
    2. 确认 SSH 协议版本与算法:grep -E '^Protocol|^Ciphers|^MACs' /etc/ssh/sshd_config,确认未启用 arcfour/3des-cbc/md5 类弱算法。
    3. 确认不存在 HTTP 明文管理入口(如未做 TLS 的 Webmin/Cockpit/自研运维平台)。
    4. 若经堡垒机管理,确认主机侧 SSH 来源已限制(见入侵防范 c))。

    CentOS sshd 进程状态对照

    CentOS telnet.socket 状态对照

  • 判定标准:

    • 不适用:仅通过本地控制台或 KVM 等硬件方式管理时本项不成立,须在报告中写明「无远程管理通道」这一依据,而非笼统判不适用。
    • 符合:管理通道为 SSHv2(或经 TLS 的 HTTPS 管理台),Telnet/FTP 等明文协议未启用,算法套件无已知弱算法。
    • 部分符合:管理通道已加密,但存在弱算法未禁用;或另有一个明文管理端口未关闭但已做网络层限制。
    • 不符合:启用 Telnet、FTP 或 HTTP 明文通道承载鉴别信息,且无网络层隔离。
  • 常见不符合项:只确认「默认开了 SSH、没开 Telnet」就判符合,不核查 sshd_config 里的弱算法;忽略同机上另装的 Web 运维平台是否走明文 HTTP。

  • 证据留存:ps -e | grep sshd 输出、telnet.socket 状态截图、sshd_config 协议与算法配置截图、管理入口清单与协议说明。

d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现

  • 核查要点:

    1. 访谈并实测:Linux 本地账户为「用户名 + 口令」单因素鉴别,确认是否存在第二因素。
    2. 常见实现:堡垒机二次认证、SSH 公钥 + 口令(AuthenticationMethods publickey,password)、基于 UKey/动态口令的 PAM 模块、pam_pkcs11/证书登录。
    3. 若声称已实现,确认其中至少一种为密码技术(公钥证书、动态口令、UKey),且能演示完整登录链路。
  • 判定标准:

    • 符合:已实现双因素且其中一种为密码技术,可演示完整登录链路,覆盖主要远程管理入口。
    • 部分符合:仅部分入口(如经堡垒机的 SSH)具备双因素,直连 SSH 或本地控制台仍为单因素。
    • 不符合:全部入口均为单因素「用户名 + 口令」。
  • 常见不符合项:把「接入了 AD/LDAP 统一认证」当作双因素——域账号仍是单因素口令鉴别;把「SSH 密钥登录」直接判符合却未与口令叠加(AuthenticationMethods 未设为两者兼需时只是换了一种单因素)。

  • 证据留存:双因素登录演示截图、PAM 模块或堡垒机策略配置截图、访谈纪要。

访问控制

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~g)

判定要点:账户与权限一一对应、默认与多余账户已删除或停用、无共享账户、系统/安全/审计三类管理职责分离、关键文件与目录权限最小化、启用了强制访问控制(SELinux/AppArmor/Windows 完整性级别与 SACL)并达到用户级与文件级粒度 → 符合;有权限划分但存在越权账户、粒度不足或强制访问控制未启用 → 部分符合;统一使用超级账户运维、关键配置文件任意用户可写 → 不符合。

取证要求:账户与组清单、权限查询输出(ls -l/icacls/getfacl)、默认账户处置记录、强制访问控制状态与策略输出、访问控制策略文档与授权审批记录、安全标记配置截图。

a) 应对登录的用户分配账户和权限

  • 核查要点:

    1. 账户清单:awk -F: '$3>=1000 && $3!=65534 {print $1}' /etc/passwd,逐账户确认用途与责任人。
    2. 重要文件权限:ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers,配置文件不应大于 644、/etc/shadow 不应大于 600、可执行文件不应大于 755。
    3. 越权抽查:用低权限账户尝试读取 /etc/shadow、修改系统配置,确认被拒。

    CentOS 重要文件权限对照

  • 判定标准:

    • 符合:账户与权限均可对应到岗位人员,重要文件权限受限,实测无越权,且有授权记录。
    • 部分符合:账户与权限已分配,但存在个别文件权限过宽(如业务目录 777)或个别账户权限超出职责。
    • 不符合:存在无主账户;root 被多人共用;重要配置文件可被普通用户改写。
  • 常见不符合项:只看 /etc/passwd 的账户数量而不核对其实际权限;以「默认权限就是这样」替代越权实测。

  • 证据留存:账户清单与用途说明、ls -l 关键文件权限截图、越权抽查记录、授权审批单。

b) 应重命名或删除默认账户,修改默认账户的默认口令

  • 核查要点:

    1. 核查 root 是否可远程直接登录:grep '^PermitRootLogin' /etc/ssh/sshd_config(默认 yes,即允许 root 远程登录)。
    2. 核查是否存在其他默认账户仍在使用(gamesnewsftplp 等,应 nologin 或已删除)。
    3. 核查 root 口令强度与更换记录(chage -l root)。

    CentOS sshd_config root 登录配置对照

  • 判定标准:

    • 符合:root 已禁止远程登录(或经堡垒机跳转且主机侧拒绝直连),默认账户已停用或删除,口令为强口令且有更换记录。
    • 部分符合:root 仍可远程登录但已限制来源网段且口令强度达标;或默认账户已设 nologin 但未被清理。
    • 不符合:root 可远程登录且口令弱;存在仍在使用的默认账户且沿用出厂口令。
  • 常见不符合项:把「默认只有 root 一个可用账户」直接判符合——root 可远程登录(默认 yes)本身就是需要处置的形态;以「root 无法删除」为由整项判不适用(等保要求为「重命名删除」,且本项还包含修改默认口令)。

  • 证据留存:/etc/shadow 账户清单截图、sshd_configPermitRootLogin 配置截图、chage -l root 输出、访谈纪要。

c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在

  • 核查要点:

    1. 结合 a) 的账户清单逐账户访谈用途,识别无主账户、离职人员账户与临时调试账户。
    2. 核查最近登录时间:lastloglast,识别长期未使用的账户。
    3. 结合登录来源 IP 与运维排班,确认不存在多人共用同一账户。
  • 判定标准:

    • 符合:账户与在岗人员一一对应,无多余/过期/共享账户,且有账户生命周期管理制度与执行记录。
    • 部分符合:存在长期未登录但已履行停用审批的账户(未物理删除);或有制度但缺执行记录。
    • 不符合:存在无法说明用途的账户,或有确凿的共享账户使用证据。
  • 常见不符合项:只看账户是否存在而不看 lastlog 的最近登录时间;以「保留是为了应急」为由长期保留无主账户。

  • 证据留存:账户清单与用途说明、lastlog 输出、账户生命周期管理制度与停用审批记录。

d) 应授予管理用户所需的最小权限,实现管理用户的权限分离

  • 核查要点:

    1. 核查 uid=0 的账户清单:awk -F: '$3==0 {print $1}' /etc/passwd,应仅 root
    2. 核查 sudo 授权:sudo -lcat /etc/sudoers(含 /etc/sudoers.d/),确认管理权限以 sudo 授权而非直接发放 root 口令。
    3. 核查是否建立三权分立(系统管理员 / 安全管理员 / 审计管理员),审计管理员是否具备独立的日志查看权限。
    4. 核查 root 使用场景是否受限(仅带外应急且留痕)。

    授权策略位于 /etc/sudoers/etc/sudoers.d/不是 /etc/sudo.conf(后者是 sudo 前端自身的配置文件):

    sudo -l                                    # 当前用户的 sudo 权限
    cat /etc/sudoers | grep -vE '^\s*#|^\s*$'  # 授权策略全文(去注释)
    ls -l /etc/sudoers.d/
    
  • 判定标准:

    • 符合:仅 root 为 uid=0;管理操作通过 sudo 授权且可追溯到人;已建立系统管理员/安全管理员/审计管理员三类角色且互不兼任。
    • 部分符合:已用 sudo 授权,但存在 ALL=(ALL) ALL 一类无限制授权;或已划分管理员与只读两类角色但未设独立审计管理员。
    • 不符合:多人共用 root 口令;存在多个 uid=0 账户;无任何角色划分。
  • 常见不符合项:以「人少,做不到三权分立」为由全部共用 root——本项评价的是是否按最小权限做了分离,不是人数;核查时把 /etc/sudo.conf 当成授权文件(应为 /etc/sudoers)。

  • 证据留存:uid=0 账户清单、sudo -l/etc/sudoers 截图、角色与权限对照表、三权分立制度文件。

e) 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

  • 核查要点:

    1. 访谈确认授权主体(通常为系统管理员或信息安全负责人)与授权流程。
    2. 抽查 2~3 条 sudo 授权与账户创建记录,回溯其申请—审批—配置—复核闭环。
    3. 核查是否存在访问控制策略文档,策略是否规定主体对客体的访问规则。
  • 判定标准:

    • 符合:权限配置由授权主体审批后实施,抽查的授权条目可与审批记录一一对应,且有书面访问控制策略。
    • 部分符合:有授权流程但部分历史条目缺失审批记录;或有策略文档但内容笼统,未落到主体/客体规则。
    • 不符合:权限由运维自行配置,无任何授权与复核记录。
  • 常见不符合项:以「Linux 就是管理员一个人管的,不存在越权」替代审批证据——本项核查的是管理流程证据而非设备能力,无审批记录即不成立。

  • 证据留存:/etc/sudoers 授权配置截图、授权审批单、访问控制策略文件、访谈纪要。

f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

  • 核查要点:

    1. 主体粒度:确认权限按用户(及用户组)授予,而非全员共享同一账户。
    2. 客体粒度:确认关键文件与目录的属主/属组/权限位(ls -l),客体粒度应到文件级。
    3. 强制访问控制:sestatusgrep -E '^SELINUX=' /etc/selinux/configRHEL/CentOS 默认为 enforcing + targeted(Red Hat 官方《SELinux User’s and Administrator’s Guide》),原文「默认关闭」的表述不成立。
    4. 若业务数据落在数据库内,客体「表级」由数据库侧测评,此处记录对象边界。

    CentOS SELinux 配置与状态对照

  • 判定标准:

    • 符合:主体粒度到用户级、客体粒度到文件级,关键文件权限受限,且 SELinux(或 AppArmor)处于 enforcing 并有实际生效的域隔离。
    • 部分符合:主体与客体粒度达标,但 SELinux 为 permissive(只记录不阻断)或 disabled 且无其他强制访问控制措施。
    • 不符合:全员共享同一账户(主体不到用户级);关键文件权限为 777;无任何强制访问控制且无第三方措施。
  • 常见不符合项:把「SELinux 默认开启」直接当作本项符合——本项要求的是粒度,SELinux 只是强制访问控制的支撑手段;把 permissive 当作已启用(permissive 只告警不阻断);客体只核到目录级未核到文件级。

  • 证据留存:ls -l 关键文件权限截图、sestatus 输出、/etc/selinux/config 截图、主体—客体授权对照表。

g) 应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

  • 核查要点:

    1. 核查是否启用带标记的策略:sestatusPolicy from config filetargeted 时,登录用户默认运行在 unconfined_t 域,未受标记约束——Red Hat 官方文档明确该默认形态)。
    2. 确认是否使用了 MLS/MCS 或第三方强制访问控制系统对重要主体与客体设置标记。
    3. 若已实现,抽查带标记资源的越权访问是否被拒绝。
  • 判定标准:

    • 符合:已通过 SELinux MLS/MCS 或第三方系统对重要主体与客体设置安全标记,且可演示越权被拒。
    • 部分符合:SELinux 处于 enforcing 且关键服务(如 sshdhttpd)被 confined,但未对重要业务数据设置标记。
    • 不符合:SELinux 为 disabled/permissive 且无第三方措施;或仅为默认 targeted 策略、重要主体客体均未标记。
  • 常见不符合项:把「SELinux 默认 enforcing」直接判符合——默认 targeted 策略下用户与多数进程运行在 unconfined 域,并未对重要主体和客体设置安全标记;以「Linux 都能做到」或「一般都做不到」的通用印象定档而不取证。

  • 证据留存:sestatus 输出、SELinux 策略类型说明、标记规则与越权测试记录、第三方强制访问控制系统部署说明。

安全审计

对应控制点:GB/T 22239-2019 8.1.4.3 安全审计 a)~d)

判定要点:审计功能已启用且覆盖每个用户与重要安全事件(登录注销、权限变更、审计策略变更、系统异常)、记录含日期时间/用户/事件类型/成败四要素、审计记录受保护并定期备份、留存不少于 6 个月、审计进程受保护且非审计管理员不可中断 → 符合;开关已开但子类别不全、留存不足、仅本地存储无外发 → 部分符合;审计完全未启用且无日志审计系统或堡垒机替代 → 不符合(高风险)。

取证要求:审计策略配置与生效截图(auditd 规则 / auditpol / 高级审核策略)、审计记录抽样(脱敏)、日志存放路径与权限、日志外发到 syslog/日志审计系统/SOC 的配置与收端截图、最早记录时间清单、清理与转存任务配置。

a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

  • 核查要点:

    1. 服务状态:systemctl status auditd rsyslog(两者均默认安装并开机自启)。
    2. 审计规则是判据的关键auditctl -l。默认安装的 auditd 不预置审计规则/etc/audit/rules.d/ 基本为空,持久规则需自行配置或从 /usr/share/doc/audit/rules/30-stig.rules30-pci-dss-v31.rules 等预置规则集导入——Red Hat《Security Guide》第 7.5 节)。
    3. 覆盖性:确认规则覆盖身份鉴别(USER_LOGIN)、权限变更、关键文件(/etc/passwd/etc/shadow/etc/sudoers)访问与命令执行。
    4. 日志外送:确认 rsyslog 配置了远程 syslog 服务器(见 c))。

    CentOS auditd 服务状态对照

  • 判定标准:

    • 符合:auditdrsyslog 运行中且开机自启;/etc/audit/rules.d/ 已配置覆盖每个用户与重要安全事件的规则;日志外送至日志服务器。
    • 部分符合:最常见的出厂形态——服务在运行,但 auditctl -l 无规则或仅少量默认规则,实际不记录登录与权限变更事件;或覆盖到多数用户但存在例外账户(exclude 规则过滤)。
    • 不符合:审计服务未运行或被禁用;或规则被清空且无其他审计措施。
  • 常见不符合项:只确认「auditd 默认已开启」就判符合——服务运行 ≠ 有审计规则,默认无规则时几乎不产生安全审计记录,这是 Linux 侧最隐蔽的不符合点;把 rsyslog 的系统日志(/var/log/messages)当作安全审计记录。

  • 证据留存:systemctl status auditd rsyslog 输出、auditctl -l 输出、/etc/audit/rules.d/ 规则文件截图、ausearch -m USER_LOGIN 样例。

b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

  • 核查要点:

    1. 抽查审计记录字段:tail -20 /var/log/audit/audit.log,确认含时间戳、auid/uidtype(事件类型)、success(成功与否)、exe/comm、对象等。
    2. 时间同步:chronyc sources -v(或 ntpq -p),确认与时钟服务器同步;时间不准会导致审计记录无法用于追溯。
    3. 确认 auid 保留了原始登录用户(避免 su/sudo 后归因丢失)。

    CentOS audit.log 审计记录字段对照

  • 判定标准:

    • 符合:审计记录字段齐全(时间、用户、事件类型、成功与否、对象),且系统时间与时钟服务器同步。
    • 部分符合:字段齐全但时间未与时钟服务器同步(仅手工对时);或 auid 未正确保留导致无法追溯到自然人。
    • 不符合:审计记录缺少用户或成功/失败标识;或系统时间明显偏差且未做同步。
  • 常见不符合项:只抽查日志内容而不核查时间同步;把 /var/log/secure(仅记录登录)当作完整审计记录而不核对其字段完备性。

  • 证据留存:audit.log 条目截图(含各字段)、chronyc sources -v 输出、时间同步配置截图。

c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

  • 核查要点:

    1. 文件权限:ls -l /var/log/audit/,确认 audit.log 为 600、属主 root,普通用户不可读改。
    2. 留存容量:grep -E '^max_log_file|^num_logs|^max_log_file_action' /etc/audit/auditd.confmax_log_file_action 默认为 ROTATE,即循环覆盖)。
    3. 远程留存:确认 rsyslog 已配置外送(/etc/rsyslog.conf 中的 *.* @@syslog-server:514),并核对方侧保存期限 ≥ 6 个月。
    4. 备份:核查备份策略与执行记录。
  • 判定标准:

    • 符合:日志已实时/定期外送至日志服务器,方侧留存 ≥ 6 个月,本地文件权限受限且非特权用户无法删改。
    • 部分符合:已配置远程 syslog 但方侧留存不足 6 个月;或仅本地存储但轮替容量经测算可覆盖 6 个月。
    • 不符合:仅本地循环覆盖(max_log_file_action ROTATE)且无远程留存与备份。
  • 常见不符合项:把「auditd 默认会轮替保留」当作留存达标——默认 ROTATE循环覆盖,高负载主机数小时即可写满一轮;只配置外送而不核对方侧的实际保存期限。

  • 证据留存:/var/log/audit/ 权限截图、auditd.conf 轮替参数截图、rsyslog 外送配置截图、日志服务器留存策略与备份记录。

d) 应对审计进程进行保护,防止未经授权的中断

  • 核查要点:

    1. 以非审计管理员账户尝试 systemctl stop auditd,确认被拒绝(systemd 下普通用户无权限)。
    2. 核查是否存在独立审计管理员角色(结合访问控制 d)),确认其不兼任系统管理员。
    3. 确认是否存在可绕过审计的通道:具备 root 权限的用户仍可停止 auditd 与删除日志,故须以「审计管理员独立 + 远程留存」作为补偿(生产环境禁止kill -9 实测)。
  • 判定标准:

    • 符合:非审计管理员无法停止审计服务;已设独立审计管理员;日志实时外送,本地删除不影响追溯。
    • 部分符合:非授权用户无法停止服务,但未设独立审计管理员(root 可随意停止且无告警);或已外送但存在中断窗口。
    • 不符合:任何运维账户均可停止审计服务、删除日志,且无远程留存补偿。
  • 常见不符合项:以「普通用户停不掉 auditd」直接判符合,忽略 root 权限用户可停服务并清日志——本项须结合 c) 的远程留存与访问控制 d) 的角色分离一并判断;为「测试审计进程保护」在生产环境 kill -9 auditd

  • 证据留存:非授权用户停止服务失败截图、审计管理员角色配置截图、日志外送配置截图。

入侵防范

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

判定要点:遵循最小安装、非必要服务与默认共享已关闭、高危端口未对外开放、管理终端来源受限(防火墙规则/跳板机/堡垒机)、具备数据有效性检验、能发现已知漏洞并及时修补、重要节点部署入侵检测并可出示针对本主机的告警 → 符合;部分措施到位(如有主机防火墙但未限制管理来源、有漏扫无修补闭环)→ 部分符合;管理端口对全网开放、存在已知高危漏洞未修补、无任何入侵检测措施 → 不符合(高风险)。

取证要求:已安装组件/角色清单、服务与监听端口输出、主机防火墙规则与拒绝实测、管理来源限制配置截图、补丁与漏洞修补记录、漏扫报告与整改工单、HIDS/EDR/NDR 部署与本主机告警截图。

a) 应遵循最小安装的原则,仅安装需要的组件和应用程序

  • 核查要点:

    1. 安装形态:yum grouplist(CentOS 7)/ dnf grouplist(RHEL 8+),确认非「带 GUI 的服务器」等全量安装形态。
    2. 软件清单:rpm -qa 导出后与基线比对,识别自行安装的第三方组件。
    3. 确认是否安装编译环境、图形界面、非必要服务组件。

    CentOS 内核与版本信息对照

  • 判定标准:

    • 符合:为最小化安装,软件清单与基线一致或增减均有审批记录。
    • 部分符合:存在额外组件但均有用途说明与审批。
    • 不符合:安装了与业务无关的组件(如图形界面、开发工具链、游戏/示例包),且无法说明用途。
  • 常见不符合项:以「默认装的就是最小安装」替代清单核查——实际部署常为「带 GUI 的服务器」或后续被追加安装大量组件;只统计包数量而不比对用途。

  • 证据留存:yum/dnf grouplist 输出、rpm -qa 清单、基线比对结论、第三方组件审批记录。

b) 应关闭不需要的系统服务、默认共享和高危端口

  • 核查要点:

    1. 开机自启服务:systemctl list-unit-files | grep enabled,逐项确认用途(常见可关注 telnet.sockettftprsynccupsavahi-daemonpostfixrpcbind)。
    2. 监听端口:ss -ntlp(RHEL 8+ 未装 net-tools 时没有 netstat),与基线比对。
    3. 默认共享:Linux 无默认共享,但若安装了 samba/nfs-utils 须核查其导出配置(testparm -scat /etc/exports)。

    CentOS 开机自启服务清单对照

    CentOS samba 安装状态对照

  • 判定标准:

    • 符合:无多余服务与端口,非必需服务已停用(disable 且当前未运行),无默认共享。
    • 部分符合:存在非必需服务但已通过网络层限制来源;或服务已停止但仍设为开机自启。
    • 不符合:存在无用途的高危服务/端口(如对外开放的 rpcbindtelnet、NFS 导出给任意主机)且无补偿控制。
  • 常见不符合项:以「有防火墙,端口外面访问不到」替代服务与端口清单核查(本项要求的是关闭,不是隔离,隔离只能作为部分符合的支撑);只 stop 服务未 disable,重启后即恢复。

  • 证据留存:systemctl list-unit-files 输出、ss -ntlp 输出、testparm -s//etc/exports 截图、多余服务与端口的处置记录。

c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

  • 核查要点:

    1. 防火墙:firewall-cmd --list-all(或 iptables -nL),确认 SSH 端口的来源限制,而非仅「放通 22」。
    2. sshd_config 自身限制:grep -E '^AllowUsers|^AllowGroups|^DenyUsers' /etc/ssh/sshd_config
    3. 网络层限制:堡垒机/交换 ACL 的策略与主机侧是否一致。
    4. /etc/hosts.allow/etc/hosts.deny 属 TCP Wrappers,自 OpenSSH 6.7 起 sshd 已移除 libwrap 支持,对 RHEL 7 及以上版本的 sshd 不生效,只能作为辅助证据,不能替代防火墙核查。

    CentOS hosts.allow 与 hosts.deny 对照

  • 判定标准:

    • 符合:管理入口(SSH 及任何 Web 管理台)已限定具体管理网段,且实测非授权地址无法访问。
    • 部分符合:仅在网络层(防火墙/堡垒机)限制,主机侧未做限制;或仅限制了 SSH 而管理台仍全网可达。
    • 不符合:管理入口对全网开放,且无网络层补偿控制。
  • 常见不符合项:把 hosts.allow/hosts.deny 的配置当作来源限制——OpenSSH 6.7 之后该机制对 sshd 已失效,是 Linux 侧最经典的误判源;只看防火墙「放通了 22」就认为已限制(放通 ≠ 限制来源)。

  • 证据留存:firewall-cmd --list-all 输出、sshd_configAllowUsers/AllowGroups 截图、网络层 ACL 截图、非授权地址访问被拒的实测记录。

d) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求

  • 核查要点:

    1. 主机层核查:在 shell 与管理接口(命令参数、配置文件项、Web 管理台表单)中尝试超长与特殊字符输入,观察是否被校验拒绝。
    2. 版本核查:检索该内核与组件版本是否存在与输入校验相关的已披露 CVE。
    3. 通信接口:确认主机上对外提供服务的接口(API、管理端口)对异常参数做校验;若该主机不承载业务接口,应写明由其上承载的应用系统测评并指向取证来源。
  • 判定标准:

    • 符合:管理接口与对外服务接口对非法/越界输入均能正确拒绝,且当前版本无相关未修补漏洞。
    • 部分符合:接口层有校验但存在相关 CVE 已修补并有记录;或仅部分接口有校验。
    • 不符合:可构造非法输入导致服务异常,且无补丁与处置记录。
  • 常见不符合项:以「主机不涉及人机接口输入」直接判不适用——主机层的命令参数、配置写入与(如部署了)Web 管理台均属可核查范围;确为不承载时必须写明「由其上承载的业务系统测评」并指向取证来源,不得留空。

  • 证据留存:输入校验实测记录、版本与 CVE 检索结论、补丁记录;判不承载时须附承载系统的测评记录索引。

e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

  • 核查要点:

    1. 版本:cat /etc/centos-releaseuname -a,确认是否仍为已停止维护的 CentOS 7/8(见文首警示)。
    2. 补丁:rpm -qa --last | head -20yum updateinfo list security all(RHEL 8+ 为 dnf updateinfo),确认安全更新的安装情况。
    3. 漏洞扫描:核查漏扫报告(建议周期 ≤ 半年)与高危漏洞的评估、测试、上线流程。

    CentOS 已安装补丁包清单对照

  • 判定标准:

    • 符合:有定期漏洞扫描机制与补丁评估流程,当前版本无未修补的高危及以上漏洞,且版本仍在维护周期内。
    • 部分符合:有扫描与修补流程,但补丁更新滞后且滞后项有风险接受记录与补偿措施;或版本已 EOL 但已制定并启动迁移计划。
    • 不符合:无漏洞扫描机制;或存在已披露高危漏洞未处置;或系统已 EOL 且无任何替代措施(补丁渠道本身已不存在)。
  • 常见不符合项:只记录「系统版本较新」而不与漏洞库比对;仍在使用已 EOL 的 CentOS 7/8 却以「已更新到该分支最新版」判符合——分支不再发布安全补丁,等同无法修补。

  • 证据留存:版本截图、rpm -qa --lastupdateinfo 输出、漏洞扫描报告、补丁评估与变更单;EOL 情形另附迁移或补偿措施说明。

f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

  • 核查要点:

    1. 主机侧:核查是否部署主机入侵检测/EDR(systemctl status 查看 agent、进程列表、安装目录);结合访谈确认。
    2. 上位措施:网络层 IDS/IPS、日志平台(如 ELK/态势感知)的告警规则、堡垒机的异常行为告警。
    3. 确认告警是否可达责任人(通知链路与值班表),并有处置记录。
  • 判定标准:

    • 符合:主机侧已部署 EDR/主机 IDS 并产生告警;或虽未部署主机 Agent,但网络层入侵检测与集中日志告警已覆盖该主机,且告警可达责任人并有处置记录。
    • 部分符合:有检测能力但告警未与责任人绑定,或告警规则覆盖不全、无处置记录。
    • 不符合:既无主机侧检测,也无网络层检测与告警。
  • 常见不符合项:以「Linux 主机上一般不装杀毒/IDS,本项不适用」结案——本组件不承载的能力须写明「由网络层入侵检测或集中日志平台覆盖」并取回相应证据,不得直接判不适用。

  • 证据留存:EDR/主机 IDS 部署证明、IDS/IPS 或日志平台告警规则与告警样例、责任人与通知链路说明。

恶意代码防范

对应控制点:GB/T 22239-2019 8.1.4.5 恶意代码防范 a)b)

判定要点:主机已部署防恶意代码或 EDR 产品、特征库/规则库更新正常、实时防护开启且未排除关键目录、可出示查杀记录;三级亦可采用主动免疫可信验证机制替代 → 符合;已部署但病毒库长期未更新、实时防护关闭或大面积排除目录 → 部分符合;无任何防范措施 → 不符合。

取证要求:防病毒/EDR 客户端状态与版本截图、病毒库版本与最后更新时间、实时防护与排除项配置、查杀与告警记录、集中管理控制台侧的本主机在册截图。

应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断

  • 核查要点:

    1. 核查主机是否部署恶意代码防范软件:商业主机安全 Agent、EDR,或 ClamAV 一类开源方案(systemctl status clamd@scanfreshclam 更新记录)。
    2. 核查病毒库更新周期与扫描策略(实时防护 or 周期扫描)。
    3. 核查是否能演示「发现—阻断」而不仅是「发现—告警」。
    4. 确认网络层是否有防病毒网关作为补充。
  • 判定标准:

    • 符合:已部署具备实时阻断能力的主机恶意代码防范软件,病毒库定期更新,且可演示识别与阻断。
    • 部分符合:仅部署了周期性扫描工具(如手动执行 clamscan)而无实时阻断;或 Agent 已安装但病毒库长期未更新。
    • 不符合:主机侧与网络侧均无恶意代码防范措施。
  • 常见不符合项:以「Linux 病毒少、自身安全性高」直接判符合或判不适用——本项评价的是措施是否部署,与平台风险高低无关;以「该项不符合也不判高风险」为由省略整改建议——是否判高风险按 22、高风险判定指引与加固对照表 的口径执行,不由测评员主观放宽。

  • 证据留存:恶意代码防范软件部署与运行状态截图、病毒库版本与更新时间截图、扫描与阻断记录;网络侧另附防病毒网关部署说明。

可信验证

对应控制点:GB/T 22239-2019 8.1.4.6 可信验证

判定要点:主机具备可信根(TPM/TCM)并启用系统引导程序、系统程序、重要配置参数与应用程序的可信验证,在关键执行环节进行动态验证,检测到破坏后报警并将验证结果形成审计记录送至安全管理中心 → 符合;具备可信根但未启用动态验证或未送安全管理中心 → 部分符合;无可信验证措施 → 不符合(多数现场属此档,须由机房与平台侧取证并写明边界)。

取证要求:TPM/TCM 芯片与固件状态截图、可信软件基线与安全启动配置、动态验证与报警记录、送安全管理中心的对接证据、访谈纪要。

可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心

  • 核查要点:

    1. 硬件可信根:核查服务器是否具备 TPM/TCM 并在 BIOS/UEFI 中启用;Linux 侧查 ls /dev/tpm*dmesg | grep -i tpm
    2. 安全启动:核查 UEFI Secure Boot 状态(mokutil --sb-state)。
    3. 度量与验证:核查是否部署主机可信验证/完整性度量机制(如 IMA/EVM、厂商可信计算模块),索取厂商白皮书或第三方测评证书确认能力。
    4. 结果送达:核查验证结果是否形成审计记录并送安全管理中心。
  • 判定标准:

    • 符合:硬件可信根已启用,系统引导与关键程序经过可信验证,验证结果形成审计记录并送达安全管理中心。
    • 部分符合:已启用可信根与安全启动,但未做关键执行环节的动态度量,或验证结果未形成可追溯记录/未送达安全管理中心。
    • 不符合:未启用可信根与安全启动,无任何可信验证措施。
  • 常见不符合项:以「行业现状基本都不符合」一句话结案——TPM 与 Secure Boot 在 2016 年以后的服务器上普遍可用,须先取证再定档;把等保一体机或加固软件自带的「可信模块」宣传当作能力证明而不索取厂商白皮书或第三方测评证书;虚拟机环境未核查 vTPM(参见 03、VMware ESXi测评)。

  • 证据留存:ls /dev/tpm*mokutil --sb-state 输出、BIOS/UEFI 中 TPM 与 Secure Boot 状态截图、厂商白皮书或第三方测评证书、审计平台中的验证记录。

数据完整性

对应控制点:GB/T 22239-2019 8.1.4.7 数据完整性 a)b)

判定要点:传输侧对鉴别数据、重要业务数据、重要审计数据、重要配置数据采用校验技术或密码技术保护且不可降级;存储侧有哈希基线、校验字段或完整性监控并定期比对 → 符合;仅传输侧保护、或校验参数可协商降级、或仅个别配置文件有基线 → 部分符合;传输与存储均无完整性保护 → 不符合。

取证要求:传输协议与加密/校验参数截图、抓包结果(脱敏)、完整性算法与密钥长度清单、哈希基线文件与比对记录、第三方完整性监控(FIM/HIDS)说明与告警。

a) 应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

  • 核查要点:

    1. 管理通道:SSHv2 自带 MAC 完整性保护,确认未降级到 SSHv1、未使用 none MAC。
    2. 日志外送:确认 rsyslog 是否使用 TCP/TLS(@@ 为 TCP,配合 gtls 驱动为加密),udp 明文 syslog 无完整性保护。
    3. 业务与管理数据传输:确认是否存在 Telnet/FTP/HTTP 明文通道承载重要数据。
    4. 文件传输:确认是否使用 sftp/scp/rsync over ssh,而非 tftp/ftp。
  • 判定标准:

    • 符合:管理通道为 SSHv2,日志外送与文件传输均具备完整性保护(TCP+TLS 或 SSH 隧道)。
    • 部分符合:管理通道具备完整性保护,但日志以明文 UDP 外送;或存在个别明文通道但已限定来源。
    • 不符合:以 Telnet/FTP/HTTP 明文承载鉴别数据或重要业务数据。
  • 常见不符合项:只核查管理通道(SSH)而忽略日志外送与文件传输通道——明文 UDP syslog 是 Linux 侧最常被漏掉的不符合点。

  • 证据留存:sshd_config 算法配置截图、rsyslog 外送协议配置截图、传输通道清单与协议说明。

b) 应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

  • 核查要点:

    1. 核查是否部署文件完整性校验工具(AIDE、Tripwire)并定期比对,或由集中审计平台提供防篡改。
    2. 核查系统文件校验:rpm -Va(列出被修改的包文件)是否纳入定期核查。
    3. 核查审计日志与配置备份是否做过完整性校验(哈希基线 + 定期比对)。
    4. 核查业务数据(如数据库文件)的完整性由哪一层保障,明确对象边界。
  • 判定标准:

    • 符合:已建立重要配置与审计数据的哈希基线并定期比对,或由集中审计平台提供防篡改保护。
    • 部分符合:仅对系统文件做了 rpm -Va 核查但未定期执行;或有配置备份但未做完整性比对。
    • 不符合:无任何完整性校验或防篡改措施。
  • 常见不符合项:把「有配置备份」当作完整性保护——备份解决可用性,不解决完整性;以「Linux 自身不带这种机制」直接判不符合却不核查 AIDE/集中审计等上位措施。

  • 证据留存:AIDE/Tripwire 配置与比对记录、rpm -Va 输出、集中审计平台防篡改说明、配置备份导出记录。

数据保密性

对应控制点:GB/T 22239-2019 8.1.4.8 数据保密性 a)b)

判定要点:鉴别数据以强算法加盐存储(不存在 LM/NTLMv1、明文口令、DES/MD5 等已废弃算法),重要业务数据与个人信息在传输与存储环节采用密码技术保护,密钥管理可控 → 符合;仅传输侧加密而存储侧明文、或加密算法强度不足、或密钥与密文同机存放 → 部分符合;鉴别数据使用弱算法或重要数据全程明文 → 不符合。

取证要求:口令存储格式与算法查询输出、磁盘/文件系统加密配置(BitLocker/LUKS/dm-crypt)、应用侧或数据库侧加密配置、证书与密钥管理截图、算法清单与选型说明、抓包结果(脱敏)。

a) 应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

  • 核查要点:

    1. 管理通道:确认全程 SSHv2/TLS,无 Telnet、FTP、HTTP 明文承载鉴别数据。
    2. 算法强度:grep -E '^Ciphers|^MACs|^KexAlgorithms' /etc/ssh/sshd_config,确认禁用 arcfour3des-cbcdes-cbcmd5/sha1 MAC 等弱算法。
    3. 日志外送:确认审计日志传输是否加密(日志内容同样可能含敏感信息)。
  • 判定标准:

    • 符合:管理通道与日志传输均为加密通道,且算法套件合规(无已知弱算法)。
    • 部分符合:管理通道加密但存在弱算法未禁用;或管理通道加密而日志明文外送。
    • 不符合:存在 Telnet/FTP/HTTP 明文通道实际承载鉴别数据或重要业务数据。
  • 常见不符合项:只确认「用了 SSH」而不核查算法套件;把「内网传输,风险可控」当作不加密的理由。

  • 证据留存:sshd_configCiphers/MACs/KexAlgorithms 配置截图、明文服务排查结果、rsyslog 加密传输配置截图。

b) 应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

  • 核查要点:

    1. 口令哈希算法:grep '^ENCRYPT_METHOD' /etc/login.defs/etc/shadow 中哈希串前缀——$6$ 为 SHA-512(CentOS 7 起默认),$5$ 为 SHA-256,$1$ 为 MD5(强度不足)。
    2. 明文口令排查:核查自动化运维脚本、配置文件、备份包中是否存在写死的口令。
    3. 重要业务数据与备份:核查是否采用 LUKS/存储层加密或应用层字段加密,密钥如何管理。
  • 判定标准:

    • 符合:鉴别数据以 SHA-512 或更强算法加盐存储;无明文口令留存;重要业务数据与备份包已加密或有等效访问控制。
    • 部分符合:口令哈希算法合规,但存在明文口令的运维脚本,或备份包未加密且访问控制不足。
    • 不符合:鉴别数据明文存储,或重要业务数据、备份包可任意读取且无加密。
  • 常见不符合项:以「口令存在 /etc/shadow 里」直接判符合而不核对算法标识——须确认哈希串前缀为 $6$,若为 $1$(MD5)则强度不足;只核查口令而不核查运维脚本与备份包中的明文口令。

  • 证据留存:/etc/login.defsENCRYPT_METHOD 截图、/etc/shadow 哈希前缀截图、明文口令排查记录、加密方案与密钥管理说明。

数据备份恢复

对应控制点:GB/T 22239-2019 8.1.4.9 数据备份恢复 a)~c)

判定要点:有本地备份任务与近期备份产物且有恢复演练记录、有异地实时或定时备份链路、关键业务系统具备热冗余(集群/双机/虚拟化 HA)并可演示切换 → 符合;有备份产物但从未真实恢复验证、异地周期过长、有冗余架构无切换演练 → 部分符合;无备份措施或单机单副本且无异地副本 → 不符合(高风险)。

取证要求:备份脚本或作业配置截图、备份产物清单(含时间戳与大小)、恢复演练记录、异地备份拓扑与同步状态输出、集群/HA 配置与切换演练记录。

本节只核查数据备份恢复控制点本身;审计日志的备份与留存属「安全审计 c)」,两者不可互相替代。

a) 应提供重要数据的本地数据备份与恢复功能

  • 核查要点:

    1. 明确备份对象:主机侧重要数据为系统配置(/etc 下的配置、用户与权限、防火墙与审计规则)、承载的业务数据与数据库文件;如为虚拟化下的虚拟机,另见 03、VMware ESXi测评
    2. 核查备份任务:crontab -l/etc/cron.d/ 下的备份脚本、备份目录清单、tar/rsync/dump 或备份软件的任务配置。
    3. 核查恢复演练记录(能实际还原到可用状态)。
  • 判定标准:

    • 符合:能出示备份任务配置与近期备份产物,且做过恢复演练或有恢复记录。
    • 部分符合:仅有备份任务但无产物,或从未验证可恢复。
    • 不符合:无任何备份措施。
  • 常见不符合项:以「该主机是资源层,无需备份」为由判不适用;只做快照不做导出(快照依赖宿主,不能替代离线备份)。

  • 证据留存:备份任务配置截图、备份产物列表(含时间戳)、恢复演练记录。

b) 应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地

  • 核查要点:

    1. 确认备份目的地是否与主机分处不同物理地点(异地机房/同城灾备/云上对象存储)。
    2. 确认同步方式(数据库主从复制、rsync 定时推送、存储层复制、备份一体机等)与同步周期。
    3. 核查同步状态与可验证性(能否在异地侧看到最新备份)。
  • 判定标准:

    • 符合:存在异地备份链路且备份周期满足业务 RPO 要求,异地侧数据可验证。
    • 部分符合:仅有本地备份;或异地备份周期过长、链路不可验证。
    • 不符合:无异地备份。
  • 常见不符合项:把「本地多块磁盘互拷」或「同机房另一台主机的副本」当作异地备份;有复制链路但从未验证过数据可用性。

  • 证据留存:异地备份拓扑说明、rsync/复制状态输出、异地侧备份文件清单。

c) 应提供重要数据处理系统的热冗余,保证系统的高可用性

  • 核查要点:

    1. 访谈并查看是否采用集群或双机热备:pcs statuscorosync-cfgtool -skeepalived 配置、负载均衡后端健康检查、虚拟化层 HA 配置。
    2. 核查冗余架构的实际生效状态与故障切换演练记录。
  • 判定标准:

    • 符合:关键业务系统具备集群/双机/负载均衡任一形态且可演示切换。
    • 部分符合:有冗余但无切换演练记录,或冗余配置存在单点(如共享存储的控制器未冗余)。
    • 不符合:单点运行。
  • 常见不符合项:以「有备份就不需要热冗余」替代本项——两者是不同控制点;只确认加入了集群而未核查 HA 是否启用。

  • 证据留存:集群状态输出、冗余架构说明、切换演练记录。

剩余信息保护

对应控制点:GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)

判定要点:鉴别信息与敏感数据所在存储空间在释放或重新分配前有可验证的清除机制(账户删除即清理其口令散列、磁盘/分区安全擦除、加密卷销毁密钥、虚拟机删除时清理磁盘文件),且备份介质与报废设备纳入清除范围 → 符合;仅有逻辑删除未做清除验证,或备份介质、退役磁盘未纳入 → 部分符合;无任何清除机制 → 不符合。

取证要求:账户删除与口令散列清理验证记录、磁盘擦除工具与操作记录、加密卷密钥销毁流程、虚拟机/存储删除策略截图、报废介质销毁台账。

a) 应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除

  • 核查要点:

    1. 账户删除后鉴别信息是否清除:userdel <user>grep <user> /etc/shadow /etc/passwd,确认条目已移除。
    2. 内存与交换空间:核查 swap 是否加密或是否配置关机清理;鉴别过程中口令明文在内存中的驻留由内核管理,重点核查是否配置了 swap 加密
    3. 排查运维脚本、历史命令(~/.bash_history)与临时文件中是否留存口令明文。
  • 判定标准:

    • 符合:账户删除后条目清除,无明文口令留存,swap 已加密或已禁用且有依据。
    • 部分符合:账户层已清除,但 swap/临时目录的清除依赖重启且无记录;或存在含口令的历史命令但未扩散。
    • 不符合:鉴别信息以明文留存(脚本、日志、备份包),且无任何清理措施。
  • 常见不符合项:以「Linux 删除用户就自动清了」整项判符合——清除的是 shadow 条目,swap 与运维脚本中的口令明文并未处理;原文「该项默认符合」的表述不成立,须按上述要点取证后定档。

  • 证据留存:账户删除前后 /etc/shadow 对比截图、swap 加密或禁用配置截图、明文口令排查记录。

b) 应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除

  • 核查要点:

    1. 核查 rm 后的数据块处理:ext4/xfs 默认不擦除数据块,删除仅解除索引,数据可被恢复。
    2. 核查退役磁盘/存储卷的销毁流程与执行记录(擦除、消磁、物理销毁或加密后销毁密钥)。
    3. 若使用 LUKS/存储层加密,核查密钥销毁是否可等效实现数据不可恢复。
  • 判定标准:

    • 符合:退役存储空间有擦除或密钥销毁记录,残留数据不可恢复。
    • 部分符合:有销毁流程但缺少执行记录。
    • 不符合:退役磁盘直接流转或重用,未做任何清除。
  • 常见不符合项:把「删除文件」当作「清除数据」;依赖 shred 擦除单个文件——在带日志的 ext4 与 xfs 上,shred 不能保证覆盖原数据块,可靠做法是分区/整盘级擦除或存储层加密后销毁密钥;原文「该项默认符合」的表述不成立。

  • 证据留存:存储销毁流程与执行记录、加密与密钥销毁说明、必要时附恢复测试结果。

个人信息保护

对应控制点:GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)

判定要点:仅采集与保存业务必需的个人信息且有字段清单与制度支撑、个人信息所在目录/文件/数据库对象有独立授权且实测非授权账户无法访问、展示与导出环节有脱敏与留痕 → 符合;存在非必要字段但有清理计划,或有授权控制但备份文件未纳入管控 → 部分符合;超范围采集无制度,或非授权账户可直接读取 → 不符合(高风险)。

取证要求:个人信息字段清单与分布说明、采集必要性说明与管理制度、目录与文件权限输出、非授权访问实测记录、脱敏与导出审计记录、访谈纪要。

a) 应仅采集和保存业务必需的用户个人信息

  • 核查要点:

    1. 核查主机层是否保存个人信息:账户体系只保存运维人员账号,原则上不承载业务个人信息。
    2. 若主机承载含个人信息的业务数据,则核实采集范围与业务必需性是否一致(落到应用与数据库侧,此处记录对象边界)。
    3. 核查运维临时导出的数据、备份包与日志中是否夹带个人信息。
  • 判定标准:

    • 符合:主机层不承载业务个人信息,或承载部分均已确认属业务必需并有台账。
    • 部分符合:存在超范围采集但未造成扩散,且已制定清理计划。
    • 不符合:存在明显的超范围采集且无整改计划。
  • 常见不符合项:以「操作系统不处理个人信息」判不适用却不排查数据目录——运维临时导出的含个人信息表格与备份包是最常见的漏测点。

  • 证据留存:数据分类分级文件、采集必要性说明、临时导出与备份包的排查记录、访谈纪要。

b) 应禁止未授权访问和非法使用用户个人信息

  • 核查要点:

    1. 核查访问个人信息的权限是否仅授予必要人员(结合访问控制 a)/d) 的角色与文件权限清单)。
    2. 核查审计记录是否覆盖对个人信息的访问行为。
    3. 核查是否存在个人信息导出、外发等未受控行为。
  • 判定标准:

    • 符合:个人信息访问受角色与文件权限控制,访问行为有审计,无未授权访问与外发。
    • 部分符合:权限受控但审计未完全覆盖个人信息访问。
    • 不符合:存在未授权访问或个人信息外发行为且无管控。
  • 常见不符合项:只核查权限配置而不核查访问审计——无审计则无法证明「禁止未授权访问」实际成立。

  • 证据留存:权限清单、个人信息访问审计记录、外发管控措施说明。

四、测评项对照表

控制点判定要点(CentOS/RHEL 实测)
身份鉴别 a)PASS_MAX_DAYS 默认 99999/etc/login.defs 只对新建用户生效,存量账户须 chage -l 逐账户核查;口令长度由 pam_pwquality 控制,PASS_MIN_LEN 不生效
身份鉴别 b)pam_faillock/pam_tally2 默认未配置TMOUTreadonly 导出;sshd 超时为 ClientAliveInterval × ClientAliveCountMax
身份鉴别 c)SSHv2 + 无弱算法;Telnet 默认未启用;仅本地/KVM 管理时写明依据判不适用
访问控制 b)PermitRootLogin 默认 yes,root 可远程登录即须处置
访问控制 d)授权策略在 /etc/sudoers/etc/sudoers.d/不是 /etc/sudo.conf
访问控制 f)/g)SELinux 默认 enforcing + targeted;但默认 targeted 下用户运行在 unconfined_t 域,不等于对重要主体客体设置了安全标记
安全审计 a)auditd 默认无审计规则——服务运行 ≠ 有审计记录,须查 auditctl -l
安全审计 c)max_log_file_action 默认 ROTATE(循环覆盖),须外送并核实方侧留存 ≥6 个月
入侵防范 c)hosts.allow/hosts.deny 为 TCP Wrappers,OpenSSH 6.7 起对 sshd 已失效,须查 firewalld 与 AllowUsers
入侵防范 e)CentOS 7 已于 2024-06-30 EOL、CentOS 8 于 2021-12-31 EOL,不再有官方安全补丁,不得以「已更新到最新」判符合
入侵防范 f)本组件常不承载,须写明由网络层 IDS/集中日志/堡垒机覆盖并取回证据
恶意代码防范按措施是否部署定档,不得以「Linux 病毒少」判符合或判不适用
可信验证TPM 与 Secure Boot 在 2016 年后服务器上普遍可用,须先取证再定档
数据保密性 b)/etc/shadow 哈希前缀应为 $6$(SHA-512),$1$(MD5)强度不足
数据备份恢复备份与审计日志留存是不同控制点,不可互相替代;快照不能替代离线备份
剩余信息保护rm 不擦除数据块;shred 在 ext4/xfs 上不可靠;原文「默认符合」不成立

参考依据

  • GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》(8.1.4 安全计算环境各控制点(CentOS/RHEL 系)):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF
  • GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》(测评对象边界认定、单元测评实施与结果判定:符合/部分符合/不符合/不适用):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C
  • GB/T 22240-2020《信息安全技术 网络安全等级保护定级指南》、GB/T 25070-2019《安全设计技术要求》、GB/T 28449-2018《测评过程指南》,可在全国标准信息公共服务平台检索:http://openstd.samr.gov.cn/bzgk/gb/
  • Red Hat Enterprise Linux 官方文档入口:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/
  • Linux man-pages(man7.org,内核与 glibc 手册页):https://man7.org/linux/man-pages/
  • 《网络安全等级保护测评高风险判定指引》(中关村信息安全测评联盟团体标准)——高风险情形判定口径,站内对照表:22、高风险判定指引与加固对照表
  • 命令核验说明:CentOS/RHEL 命令以 Red Hat Enterprise Linux 官方文档与 man7.org 手册页核验(核验日期 2026-09-02)。四处须留意:① 版本支持周期直接影响 8.1.4.4 e) 判定——CentOS 6 已于 2020-11-30 停止维护、CentOS 7 已于 2024-06-30 停止维护、CentOS 8 已于 2021-12-31 提前终止并转为 CentOS Stream,现场遇到上述版本应作为「无法获得官方补丁」的高风险线索记录,并核查是否已迁移至 Rocky Linux/AlmaLinux/RHEL;② CentOS 7 起默认防火墙为 firewalldiptables-services 需另行安装,system-config-firewall 已移除;③ CentOS 8 起 nftables 为默认后端,firewall-cmdnft list ruleset 的结论须交叉验证;④ SELinux 状态须同时核查 getenforce/etc/selinux/config,运行态与配置态不一致时以重启后生效值为准并记录差异。

关联文章