# 银河麒麟-三级现场测评命令单

> 银河麒麟高级服务器操作系统（麒麟V10）三级等保现场测评取证命令单：nkvers、/etc/os-release、/etc/kylin-release 版本核查，umask 默认权限核查，/etc/passwd、login.defs、pwquality.conf 与 faillock.conf（pam_faillock 替代 pam_tally2）账户口令策略核查，sudoers 与 SUID/SGID 访问控制核查，auditd 与 rsyslog 审计及日志留存核查，kysec 与 SELinux 安全增强、最小安装补丁、sshd 算法、LUKS 磁盘加密、备份恢复与剩余信息保护核查。

---

LLMS index: [llms.txt](/wikis/llms.txt)

---

> 示例版本：银河麒麟高级服务器操作系统 V10 SP1/SP2/SP3（桌面版命令大同小异，版本文件与 kysec 等差异见文中提示）
>
> 说明：V10 系列基于 openEuler 社区构建（官方口径），内核 4.19 系、dnf/rpm 包管理，命令体系与 RHEL8/CentOS 8 高度一致；版本文件名、kysec 工具与默认启用状态随 SP 版本及桌面/服务器版不同，文中已逐处标注。
>
> 定位：三级等保现场测评取证命令单，按功能小节组织核查命令、预期现象与判定要点。

<div class="alert alert-warning" role="alert">


本单命令均为只读取证命令，可直接执行；如据此现场修改配置（口令策略、防火墙规则、SELinux/kysec 模式、服务重启、faillock --reset 解锁等），须先评估业务影响并履行变更审批。
</div>


## 系统版本核查

```bash
nkvers
```
- 预期现象：应输出麒麟版本信息块，包含 Release（发行版全名）、Kernel（内核版本）与 Build（构建号）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">############## Kylin Linux Version #################
</span></span><span class="line"><span class="cl">Release: Kylin Linux Advanced Server release V10 (Sword)
</span></span><span class="line"><span class="cl">Kernel: 4.19.90-52.22.v2207.ky10.x86_64
</span></span><span class="line"><span class="cl">Build: Kylin Advanced Server V10SP3-Release-Build03-20230630
</span></span><span class="line"><span class="cl">####################################################
</span></span></code></pre></div>
</details>


- 提示：nkvers 为麒麟自带版本查询命令，个别小版本或精简环境可能未安装，此时以 /etc/os-release、/etc/kylin-release 等文件为准。

```bash
cat /etc/os-release
```
- 预期现象：官方示例关键字段包括 NAME="Kylin Linux Advanced Server"、VERSION="V10 (Sword)"；ID_LIKE 表明其 RHEL 系兼容技术路线。版本代号随 SP 版本不同。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">NAME=&#34;Kylin Linux Advanced Server&#34;
</span></span><span class="line"><span class="cl">VERSION=&#34;V10 (Sword)&#34;
</span></span><span class="line"><span class="cl">ID=&#34;kylin&#34;
</span></span><span class="line"><span class="cl">ID_LIKE=&#34;rhel,fedora,centos&#34;
</span></span><span class="line"><span class="cl">VERSION_ID=&#34;V10&#34;
</span></span><span class="line"><span class="cl">PRETTY_NAME=&#34;Kylin Linux Advanced Server V10 (Sword)&#34;
</span></span><span class="line"><span class="cl">ANSI_COLOR=&#34;0;31&#34;
</span></span></code></pre></div>
</details>


```bash
cat /etc/kylin-release
```
- 预期现象：应输出发行版版本字符串，类似 RedHat 系的 redhat-release。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Kylin Linux Advanced Server release V10 (Sword)
</span></span></code></pre></div>
</details>


- 提示：版本文件名可能随 SP 版本与桌面/服务器版不同（常见还有 /etc/.kyinfo、/etc/.productinfo，个别环境存在 /usr/share/kylin-* 元信息文件），现场应逐个尝试并记录实际文件名。

```bash
cat /etc/.kyinfo
```
- 预期现象：应输出键值形式的版本元信息，关键字段包括 name、milestone（含 SP 与发布批次）、arch、beta。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">name=Kylin
</span></span><span class="line"><span class="cl">milestone=Server-V10-SP3-General-Release-2212
</span></span><span class="line"><span class="cl">arch=x86_64
</span></span><span class="line"><span class="cl">beta=False
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


```bash
cat /etc/.productinfo
```
- 预期现象：应输出产品名称与版本描述字符串（格式随版本而异）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Kylin Linux Advanced Server
</span></span><span class="line"><span class="cl">V10 (Sword)
</span></span></code></pre></div>
</details>


```bash
uname -a
```
- 预期现象：应显示主机名、内核版本、架构等信息；V10 支持 x86_64 与 aarch64（飞腾、鲲鹏等国产平台）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Linux demo-web01 4.19.90-52.22.v2207.ky10.x86_64 #1 SMP Mon Jun 26 16:32:07 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
</span></span></code></pre></div>
</details>


```bash
cat /proc/version
```
- 预期现象：应显示内核版本与编译器信息。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Linux version 4.19.90-52.22.v2207.ky10.x86_64 (gcc (GCC) 7.3.0, GNU ld version 2.31.1-23.0.1.ky10) #1 SMP Mon Jun 26 16:32:07 CST 2023
</span></span></code></pre></div>
</details>


```bash
rpm -qa | grep -i kylin
```
- 预期现象：应筛出麒麟品牌相关软件包（如 kylin-release 等），包名与版本随部署而异；可结合 `rpm -qf /etc/kylin-release` 反查版本文件所属包。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">kylin-release-1.3.5-3.ky10.noarch
</span></span><span class="line"><span class="cl">kylin-background-upgrade-2.0.8-2.ky10.x86_64
</span></span><span class="line"><span class="cl">(实际包名与版本随部署而异)
</span></span></code></pre></div>
</details>


```bash
df -h
```
- 预期现象：应显示磁盘分区、挂载点与容量，作为资产基线留存；如存在 LUKS 加密分区可在此初见端倪，进一步核查见数据完整性与保密性小节。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Filesystem               Size  Used Avail Use% Mounted on
</span></span><span class="line"><span class="cl">/dev/mapper/klas-root     50G   12G   39G  24% /
</span></span><span class="line"><span class="cl">/dev/sda1               1020M  201M  820M  20% /boot
</span></span><span class="line"><span class="cl">tmpfs                    3.9G     0  3.9G   0% /dev/shm
</span></span></code></pre></div>
</details>


- 提示：麒麟授权（许可）状态由官方授权工具管理，命令与文件随版本不同，现场以随机《系统管理员指南》与官方知识库为准，本文不列具体命令。

- 对应控制点：GB/T 22239-2019 8.1.4.4 入侵防范 a)——本小节用于确认被测主机版本与安装范围，为最小安装核查提供基线。
- 判定要点：仅作资产与版本确认，不单独下结论，结合 8.1.4.4 的组件安装与补丁状态综合判定符合/部分符合；版本代号与 SP 级别应同资产台账、测评对象说明一致。
- 取证要求：留存 nkvers、os-release、kylin-release、.kyinfo、uname 输出（截图或文本），标注资产编号与测评时间。


## 网络与默认权限掩码核查

```bash
ip addr
```
- 预期现象：应显示网卡与 IP 信息。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
</span></span><span class="line"><span class="cl">    inet 127.0.0.1/8 scope host lo
</span></span><span class="line"><span class="cl">2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000
</span></span><span class="line"><span class="cl">    inet 192.168.10.23/24 brd 192.168.10.255 scope global noprefixroute eth0
</span></span></code></pre></div>
</details>


```bash
umask
```
- 预期现象：应输出当前 shell 的权限掩码值，实际值随系统配置而异。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0022
</span></span></code></pre></div>
</details>


- 提示：RHEL8/CentOS 8 同源系统常见默认 umask 为 0022，加固实践建议 0027；全局取值来源包括 /etc/profile、/etc/bashrc、/etc/login.defs（UMASK）等，现场应逐处核对是否一致。

- 对应控制点：GB/T 22239-2019 8.1.3 安全区域边界（就近条款，确认主机接入位置与隔离情况）；umask 对应 8.1.4.2 访问控制（最小权限与默认权限）。
- 判定要点：`ip addr` 用于确认接入位置，发现同一主机跨接内外网应转入安全通信网络/区域边界判定；umask 为 0027 及更严为符合，0022 结合重要文件权限抽查综合判定。
- 取证要求：留存 ip addr、umask 输出，注明 umask 生效来源（/etc/profile、/etc/bashrc、/etc/login.defs）。


## 账户与口令策略核查

```bash
cat /etc/passwd
```
- 预期现象：应列出本地账户。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">root:x:0:0:root:/root:/bin/bash
</span></span><span class="line"><span class="cl">bin:x:1:1:bin:/bin:/sbin/nologin
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">appuser:x:1000:1000::/home/appuser:/bin/bash
</span></span></code></pre></div>
</details>


```bash
cat /etc/shadow
```
- 预期现象：应列出口令散列和口令状态。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">root:$6$rounds=4096$AbCdEf$XyZ1234567890abcdef…::0:99999:7:::
</span></span><span class="line"><span class="cl">bin:*:19375:0:99999:7:::
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">appuser:$6$rounds=4096$GhIjKl$0987654321fedcba…:19876:0:90:7:30:::
</span></span></code></pre></div>
</details>


- 提示：shadow(5) 明确口令字段为空即可无口令登录，`!` 或 `*` 表示口令锁定/不可用口令登录。

```bash
cat /etc/login.defs
```
- 预期现象：应显示口令老化参数。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">PASS_MAX_DAYS	90
</span></span><span class="line"><span class="cl">PASS_MIN_DAYS	7
</span></span><span class="line"><span class="cl">PASS_MIN_LEN	12
</span></span><span class="line"><span class="cl">PASS_WARN_AGE	14
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">UMASK		027
</span></span></code></pre></div>
</details>


- 提示：PASS_MIN_LEN 已由 PAM 模块（pam_pwquality 的 minlen）取代，口令长度以 PAM 生效配置为准；PASS_MAX_DAYS 等仅在创建账户时写入 /etc/shadow，存量账户应结合 `chage -l` 逐户核对。

```bash
cat /etc/pam.d/system-auth
```
- 预期现象：应显示口令复杂度与登录失败锁定相关模块配置；V10 的 PAM 体系与 RHEL8 一致，登录失败锁定已由 pam_faillock 取代旧版 pam_tally2（pam_tally2 已废弃）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">auth        required      pam_faillock.so preauth audit silent deny=5 unlock_time=600
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3
</span></span><span class="line"><span class="cl">password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


```bash
cat /etc/pam.d/password-auth
```
- 预期现象：应显示另一套认证栈中的失败锁定或认证策略配置（与 system-auth 对应）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">auth        required      pam_faillock.so preauth audit silent deny=5 unlock_time=600
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">session     required      pam_loginuid.so
</span></span></code></pre></div>
</details>


```bash
grep -E '^(minlen|minclass|dcredit|ucredit|lcredit|ocredit)' /etc/security/pwquality.conf
```
- 预期现象：应显示口令复杂度参数；未显式配置时各项为注释，实际生效值以 PAM 行参数为准（pwquality.conf(5) 由 libpwquality 包提供，可用 `man 5 pwquality.conf` 在被测机上查看）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">minlen = 12
</span></span><span class="line"><span class="cl">minclass = 3
</span></span><span class="line"><span class="cl">dcredit = -1
</span></span><span class="line"><span class="cl">ucredit = -1
</span></span><span class="line"><span class="cl">lcredit = -1
</span></span><span class="line"><span class="cl">ocredit = -1
</span></span></code></pre></div>
</details>


```bash
grep -E '^(deny|unlock_time|root_unlock_time|fail_interval)' /etc/security/faillock.conf
```
- 预期现象：应显示登录失败锁定参数；faillock.conf(5) 默认 deny=3、unlock_time=600（10 分钟）、fail_interval=900，root_unlock_time 未设置时沿用 unlock_time，且隐含对 root 生效（even_deny_root）。现场以被测机实际配置为准。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">deny = 5
</span></span><span class="line"><span class="cl">unlock_time = 600
</span></span><span class="line"><span class="cl">root_unlock_time = 600
</span></span></code></pre></div>
</details>


- 提示：锁定参数还可直接写在 PAM 行上（如示例中 pam_faillock 行的 deny=5 unlock_time=600），/etc/security/faillock.conf 与 PAM 行参数应结合核查，取实际生效值。

```bash
faillock --user appuser
```
- 预期现象：应显示该用户的失败认证记录（When、Type、Source）；不带 `--reset` 时仅为查看，不改动任何数据。核验失败锁定功能是否实际生效可用抽查口令触发（变更类操作，须履行审批并控制影响）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">appuser:
</span></span><span class="line"><span class="cl">When                Type  Source
</span></span><span class="line"><span class="cl">2026-09-03 09:12:41 FAIL  203.0.113.77
</span></span><span class="line"><span class="cl">2026-09-03 09:13:02 FAIL  203.0.113.77
</span></span></code></pre></div>
</details>


```bash
chage -l root
```
- 预期现象：应显示 root 账户口令期限信息。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">最近一次密码修改时间：3月 15, 2026
</span></span><span class="line"><span class="cl">密码过期时间：6月 13, 2026
</span></span><span class="line"><span class="cl">密码失效时间：从不
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">最少数量的天数：密码修改之间间隔的天数：7
</span></span><span class="line"><span class="cl">最多数量的天数：密码修改之间间隔的最大天数：90
</span></span></code></pre></div>
</details>


```bash
cat /etc/ssh/sshd_config
```
- 预期现象：应显示 SSH 登录控制参数。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">PermitRootLogin no
</span></span><span class="line"><span class="cl">PermitEmptyPasswords no
</span></span><span class="line"><span class="cl">MaxAuthTries 4
</span></span><span class="line"><span class="cl">ClientAliveInterval 300
</span></span><span class="line"><span class="cl">ClientAliveCountMax 2
</span></span><span class="line"><span class="cl">AllowUsers appuser opsadmin
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


```bash
sshd -T | grep -E 'ciphers|macs|kexalgorithms|hostkeyalgorithms|pubkeyacceptedalgorithms'
```
- 预期现象：应输出 SSH 服务端当前生效的算法配置。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
</span></span><span class="line"><span class="cl">macs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
</span></span><span class="line"><span class="cl">kexalgorithms curve25519-sha256,diffie-hellman-group14-sha256
</span></span><span class="line"><span class="cl">hostkeyalgorithms rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256
</span></span><span class="line"><span class="cl">pubkeyacceptedalgorithms rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256
</span></span></code></pre></div>
</details>


- 提示：`sshd -T` 为扩展测试模式，仅校验配置并输出生效配置后退出、不改变服务状态，需 root 执行；`ssh -Q` 列出的是本机支持的算法全集，不代表已启用，启用值以 `sshd -T` 输出为准。

```bash
ssh -V
```
- 预期现象：应输出 OpenSSH 版本号；V10 系列自带 OpenSSH 8.x 系，仅支持 SSH2 协议（传输保密性核查见数据完整性与保密性小节）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">OpenSSH_8.2p1, OpenSSL 1.1.1g  21 Apr 2020
</span></span><span class="line"><span class="cl">(实际版本随 SP 版本与补丁而异)
</span></span></code></pre></div>
</details>


```bash
cat /etc/profile
```
- 预期现象：应能核查 TMOUT 等会话控制参数。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">HISTSIZE=1000
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">export TMOUT=600
</span></span><span class="line"><span class="cl">readonly TMOUT
</span></span></code></pre></div>
</details>


- 提示：加固实践建议在 /etc/profile 末尾增加 `export TMOUT=300`（示例值）并配合 `readonly TMOUT`；如部署了双因子认证（USB-Key、OTP、堡垒机+动态口令等），多为带外/第三方组件，OS 命令通常无法直接取证，应以现场演示、PAM 配置链与带外平台记录为准。

- 对应控制点：GB/T 22239-2019 8.1.4.1 身份鉴别 a)b)c)（身份标识唯一、口令复杂度并定期更换，登录失败处理与超时退出，远程管理防窃听）；账户分配与清理对应 8.1.4.2 访问控制 a)c)。
- 判定要点：口令复杂度（minlen、minclass）与有效期（PASS_MAX_DAYS≤90）按策略核对；未配置任何登录失败处理、存在空口令或弱口令判不符合，PermitRootLogin no 为倾向符合；faillock 配置存在但未实际生效（如 PAM 链缺失）应现场实测确认。
- 取证要求：留存 passwd/shadow（口令字段脱敏）、login.defs、pwquality 与 faillock 生效配置、PAM 文件、sshd_config、sshd -T、chage、faillock 查询输出，必要时报文验证口令复杂度。
- 高风险提示：空口令/默认口令/弱口令，或使用 Telnet、FTP 等明文协议远程管理，可判高风险，见 [22、高风险判定指引与加固对照表](../../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。


## 访问控制核查

```bash
ls -l /etc/passwd /etc/shadow
```
- 预期现象：应显示账户文件权限；RHEL8 系下 /etc/shadow 常见 000（root 经 capabilities 读取），600 亦常见，关键是确认非 root 账户不可读写。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">-rw-r--r--. 1 root root 1453 Aug 24 08:30 /etc/passwd
</span></span><span class="line"><span class="cl">----------. 1 root root  892 Aug 24 08:30 /etc/shadow
</span></span></code></pre></div>
</details>


```bash
awk -F: '($2=="") {print $1}' /etc/shadow
```
- 预期现象：若存在空口令账户应输出账号名；无空口令时无输出。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">(无空口令账户时无输出；存在时应仅输出账号名，例如)
</span></span><span class="line"><span class="cl">svcbackup
</span></span></code></pre></div>
</details>


```bash
awk -F: '($3==0 && $1!="root") {print $1}' /etc/passwd
```
- 预期现象：排查非 root 的 UID 0 账户；正常时应无输出。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">(无异常时无输出；存在时应仅输出账号名，例如)
</span></span><span class="line"><span class="cl">tools
</span></span></code></pre></div>
</details>


- 提示：三权分立核查——V10 依据 GB/T 20272（结构化保护级）提供三权分立机制，划分为系统管理员、安全管理员、审计管理员三类角色；实际账户划分与命名以现场部署文档为准，结合 /etc/passwd、sudoers 与审计权限分配核对三类权限是否相互制约（如审计权限独占）。

```bash
visudo -c
```
- 预期现象：应以只读方式校验 sudoers 语法并输出解析结果，不修改文件。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/etc/sudoers: parsed OK
</span></span><span class="line"><span class="cl">/etc/sudoers.d/ops: parsed OK
</span></span></code></pre></div>
</details>


```bash
grep -rnE 'NOPASSWD|%wheel|%sudo' /etc/sudoers /etc/sudoers.d/ 2>/dev/null
```
- 预期现象：应列出 sudo 授权规则；重点关注 NOPASSWD 过量授权与 wheel 组范围是否收敛。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/etc/sudoers:110:%wheel	ALL=(ALL)	ALL
</span></span><span class="line"><span class="cl">/etc/sudoers:111:# %wheel	ALL=(ALL)	NOPASSWD: ALL
</span></span></code></pre></div>
</details>


```bash
find / -xdev -type f -perm -4000 2>/dev/null
```
- 预期现象：应输出全盘 SUID 文件清单（只读查找）；SGID 可另用 `-perm -2000` 查询。清单应与系统基线比对，无多余 SUID/SGID 程序。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/usr/bin/passwd
</span></span><span class="line"><span class="cl">/usr/bin/chage
</span></span><span class="line"><span class="cl">/usr/bin/gpasswd
</span></span><span class="line"><span class="cl">/usr/bin/newgrp
</span></span><span class="line"><span class="cl">/usr/bin/sudo
</span></span><span class="line"><span class="cl">/usr/sbin/unix_chkpwd
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


- 对应控制点：GB/T 22239-2019 8.1.4.2 访问控制 a)b)c)d)e)（账户分配、默认账户与多余账户处置、权限分离与最小权限、授权主体配置访问控制策略）。
- 判定要点：存在空口令账户或多余/停用账户未清理、非 root 的 UID 0 账户、sudo NOPASSWD 过量授权判不符合或部分符合；已删除/禁用默认多余账户、按角色划分三权、SUID/SGID 清单与基线一致为符合。
- 取证要求：留存 shadow/passwd 权限、空口令与 UID 0 检查输出（无输出也须截屏留证）、三权分立账户划分说明、visudo -c 与 sudoers 规则、SUID/SGID 清单。


## 安全审计核查

```bash
service auditd status
```
- 预期现象：应显示审计服务状态。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Redirecting to /bin/systemctl status auditd.service
</span></span><span class="line"><span class="cl">● auditd.service - Security Auditing Service
</span></span><span class="line"><span class="cl">   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
</span></span><span class="line"><span class="cl">   Active: active (running) since Thu 2026-09-03 08:30:10 CST; 2h ago
</span></span></code></pre></div>
</details>


```bash
service rsyslog status
```
- 预期现象：应显示日志服务状态。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Redirecting to /bin/systemctl status rsyslog.service
</span></span><span class="line"><span class="cl">● rsyslog.service - System Logging Service
</span></span><span class="line"><span class="cl">   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
</span></span><span class="line"><span class="cl">   Active: active (running) since Thu 2026-09-03 08:30:11 CST; 2h ago
</span></span><span class="line"><span class="cl"> Main PID: 1088 (rsyslogd)
</span></span></code></pre></div>
</details>


```bash
auditctl -l
```
- 预期现象：应逐条列出当前生效的审计规则。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">-w /etc/passwd -p wa -k identity
</span></span><span class="line"><span class="cl">-w /etc/shadow -p wa -k identity
</span></span><span class="line"><span class="cl">-a always,exit -F arch=b64 -S execve -k exec_monitor
</span></span></code></pre></div>
</details>


```bash
cat /etc/audit/rules.d/audit.rules
```
- 预期现象：应显示审计规则文件内容（持久化规则）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">## First rule - delete all
</span></span><span class="line"><span class="cl">-D
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">-w /etc/passwd -p wa -k identity
</span></span><span class="line"><span class="cl">-w /etc/shadow -p wa -k identity
</span></span><span class="line"><span class="cl">-a always,exit -F arch=b64 -S execve -k exec_monitor
</span></span><span class="line"><span class="cl">-e 2
</span></span></code></pre></div>
</details>


```bash
grep -E '^(max_log_file|max_log_file_action|num_logs)' /etc/audit/auditd.conf
```
- 预期现象：应显示审计日志轮转与留存参数；auditd.conf(5) 说明 max_log_file_action 可取 ignore/syslog/exec/suspend/rotate/keep_logs，num_logs 仅在 rotate 时生效（小于 2 不轮转、上限 999），keep_logs 不受 num_logs 限制。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">max_log_file = 8
</span></span><span class="line"><span class="cl">max_log_file_action = ROTATE
</span></span><span class="line"><span class="cl">num_logs = 5
</span></span></code></pre></div>
</details>


- 提示：日志留存不少于 6 个月的口径需结合单文件上限、轮转数量与外送集中存储统一核算（如 keep_logs 或 rotate+日志服务器外送），仅本机 rotate 而数量不足以覆盖 6 个月时应判部分符合。

```bash
cat /etc/rsyslog.conf
```
- 预期现象：应显示日志规则和转发配置。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">#### RULES ####
</span></span><span class="line"><span class="cl">*.info;mail.none;authpriv.none;cron.none                /var/log/messages
</span></span><span class="line"><span class="cl">authpriv.*                                              /var/log/secure
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl"># 远程转发示例（如已配置）
</span></span><span class="line"><span class="cl">*.* @@192.168.20.10:514
</span></span></code></pre></div>
</details>


```bash
ls -l /var/log/messages /var/log/secure /var/log/audit/audit.log
```
- 预期现象：应显示主要日志文件权限、属主、大小、时间。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">-rw-------. 1 root root 1048576 Sep  3 10:20 /var/log/messages
</span></span><span class="line"><span class="cl">-rw-------. 1 root root 262144 Sep  3 09:58 /var/log/secure
</span></span><span class="line"><span class="cl">-rw-------. 1 root root 2097152 Sep  3 10:22 /var/log/audit/audit.log
</span></span></code></pre></div>
</details>


```bash
tail -n 20 /var/log/audit/audit.log
```
- 预期现象：应输出最近 20 条审计日志，字段包含日期时间、事件类型、账户、结果等要素。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">type=USER_AUTH msg=audit(1771893601.231:8812): pid=456789 uid=0 auid=1000 msg=&#39;op=PAM:authentication acct=&#34;appuser&#34; exe=&#34;/usr/sbin/sshd&#34; hostname=203.0.113.50 addr=203.0.113.50 terminal=ssh res=success&#39;
</span></span><span class="line"><span class="cl">type=CRED_ACQ msg=audit(1771893601.240:8813): pid=456789 uid=0 auid=1000 msg=&#39;op=PAM:setcred acct=&#34;appuser&#34; exe=&#34;/usr/sbin/sshd&#34; hostname=? addr=? terminal=ssh res=success&#39;
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


```bash
journalctl -n 20 --no-pager
```
- 预期现象：应输出最近 20 条 systemd 日志，可与 rsyslog 文件交叉验证日志连续性。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Sep 03 10:18:02 demo-web01 systemd[1]: Started Session 342 of user root.
</span></span><span class="line"><span class="cl">Sep 03 10:18:35 demo-web01 kernel: TCP: request_sock_TCP: Possible SYN flooding on port 80. Sending cookies.
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


```bash
last
```
- 预期现象：应显示成功登录记录。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">opsadmin pts/0        203.0.113.50     Thu Sep  3 10:02   still logged in
</span></span><span class="line"><span class="cl">root     pts/1        192.168.10.5     Wed Sep  2 17:44 - 19:02  (01:17)
</span></span><span class="line"><span class="cl">reboot   system boot  4.19.90-52.22.v2 Thu Sep  3 08:29 - 10:25  (01:55)
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">wtmp begins Tue Jan  6 09:00:01 2026
</span></span></code></pre></div>
</details>


```bash
lastb
```
- 预期现象：应显示失败登录记录。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">root     ssh:notty    203.0.113.77     Thu Sep  3 04:12 - 04:12  (00:00)
</span></span><span class="line"><span class="cl">admin    ssh:notty    203.0.113.77     Thu Sep  3 04:11 - 04:11  (00:00)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">btmp begins Fri Jul 31 00:01:02 2026
</span></span></code></pre></div>
</details>


- 对应控制点：GB/T 22239-2019 8.1.4.3 安全审计 a)–d)（审计覆盖每个用户与重要事件，记录含日期时间/用户/事件类型/结果，审计记录保护并定期备份，审计进程防未经授权中止）。
- 判定要点：auditd/rsyslog 运行、审计规则覆盖用户与重要安全事件、日志留存不少于 6 个月并外发集中存储为符合；审计未启用或覆盖缺失判不符合，留存周期不足或无保护判部分符合；审计进程保护可结合规则文件 `-e 2`（不可修改模式）与权限核查说明。
- 取证要求：留存服务状态、auditctl -l 与 audit.rules、auditd.conf 留存参数、rsyslog.conf（含远程转发配置）、日志文件权限、tail/journalctl 输出及留存周期策略说明。
- 高风险提示：设备无安全审计功能或审计数据不完整、无法满足事件追溯要求，可判高风险，见 [22、高风险判定指引与加固对照表](../../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。


## 边界防护与端口核查

```bash
systemctl status firewalld
```
- 预期现象：应显示 firewalld 状态；如以 iptables/nftables 或上层安全设备实现边界控制，应改查对应配置并说明。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">● firewalld.service - firewalld - dynamic firewall daemon
</span></span><span class="line"><span class="cl">   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
</span></span><span class="line"><span class="cl">   Active: active (running) since Thu 2026-09-03 08:30:12 CST; 2h ago
</span></span></code></pre></div>
</details>


```bash
firewall-cmd --list-all
```
- 预期现象：应显示 zone、services、ports 等规则。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">public (active)
</span></span><span class="line"><span class="cl">  target: default
</span></span><span class="line"><span class="cl">  interfaces: eth0
</span></span><span class="line"><span class="cl">  services: dhcpv6-client ssh
</span></span><span class="line"><span class="cl">  ports: 80/tcp 443/tcp
</span></span><span class="line"><span class="cl">  protocols:
</span></span><span class="line"><span class="cl">  masquerade: no
</span></span><span class="line"><span class="cl">  forward-ports:
</span></span><span class="line"><span class="cl">  rich rules:
</span></span></code></pre></div>
</details>


```bash
iptables -nvL
```
- 预期现象：应按链输出规则和计数器（只读查看）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
</span></span><span class="line"><span class="cl"> pkts bytes target     prot opt in     out     source               destination
</span></span><span class="line"><span class="cl"> 120K   12M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
</span></span><span class="line"><span class="cl">  350 24560 ACCEPT     tcp  --  *      *       192.168.10.0/24      0.0.0.0/0           tcp dpt:22
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">Chain OUTPUT (policy ACCEPT 98765 packets, 45M bytes)
</span></span></code></pre></div>
</details>


```bash
ss -lntp
```
- 预期现象：应显示监听端口及进程信息；netstat 由 net-tools 包提供、V10 默认可能未安装，iproute2 的 `ss` 为等效替代。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">State  Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
</span></span><span class="line"><span class="cl">LISTEN 0      128          0.0.0.0:22           0.0.0.0:*      users:((&#34;sshd&#34;,pid=1123,fd=3))
</span></span><span class="line"><span class="cl">LISTEN 0      80         127.0.0.1:3306         0.0.0.0:*      users:((&#34;mysqld&#34;,pid=2101,fd=32))
</span></span><span class="line"><span class="cl">LISTEN 0      511                *:80                 *:*      users:((&#34;nginx&#34;,pid=2205,fd=6),(&#34;nginx&#34;,pid=2206,fd=6))
</span></span></code></pre></div>
</details>


- 对应控制点：GB/T 22239-2019 8.1.4.4 入侵防范 b)（关闭不必要的服务和端口、限制管理端口接入源）；主机防火墙访问控制就近对应 8.1.3.2 访问控制。
- 判定要点：防火墙按业务最小化开放且管理端口限制源地址为符合；SSH 等管理端口对全网开放判部分符合；23/21/445 等高危端口在监听清单出现时应结合用途与边界措施说明。
- 取证要求：留存 firewalld 状态与 firewall-cmd --list-all 或 iptables -nvL、ss -lntp 监听端口输出，并与业务用途比对确认无多余端口。


## 最小安装、补丁与入侵防范核查

```bash
rpm -qa | wc -l
```
- 预期现象：应输出已安装软件包总数，与同版本最小安装基线比对（服务器版最小安装通常为数百包，示例值仅示意）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">346
</span></span></code></pre></div>
</details>


```bash
dnf list installed
```
- 预期现象：应列出软件包清单（`rpm -qa` 等效，均为只读查询）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Installed Packages
</span></span><span class="line"><span class="cl">NetworkManager.x86_64            1:1.22.10-5.ky10       @anaconda
</span></span><span class="line"><span class="cl">audit.x86_64                     3.0.7-3.ky10           @System
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">zlib.x86_64                      1.2.11-26.ky10         @System
</span></span></code></pre></div>
</details>


```bash
rpm -q kernel
```
- 预期现象：应输出内核包版本，结合官方安全公告核对是否为已修复版本。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">kernel-4.19.90-52.22.v2207.ky10.x86_64
</span></span></code></pre></div>
</details>


- 提示：漏洞与补丁口径以麒麟官方安全公告/补丁页面与现场补丁记录为准，不在本文列出具体 CVE 编号；涉及历史安全事件（如火焰病毒等）的核查同样以官方公告与漏扫报告为依据。

```bash
systemctl list-unit-files --type=service --state=enabled
```
- 预期现象：应列出全部开机自启服务，逐项确认与业务相关。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">UNIT FILE                    STATE           VENDOR PRESET
</span></span><span class="line"><span class="cl">auditd.service               enabled         enabled
</span></span><span class="line"><span class="cl">crond.service                enabled         enabled
</span></span><span class="line"><span class="cl">firewalld.service            enabled         enabled
</span></span><span class="line"><span class="cl">rsyslog.service              enabled         enabled
</span></span><span class="line"><span class="cl">sshd.service                 enabled         enabled
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


```bash
rpm -qa | grep -Ei 'telnet-server|rsh-server|tftp-server|ypserv|talk-server'
```
- 预期现象：不应出现 telnet、rsh、tftp 等遗留明文/高危服务的服务端软件包；有输出应进一步核查其用途与防火墙控制。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">(合规时无输出)
</span></span></code></pre></div>
</details>


```bash
grep -E '^(MaxAuthTries|LoginGraceTime|PermitRootLogin|AllowUsers|DenyUsers|AllowGroups|DenyGroups)' /etc/ssh/sshd_config
```
- 预期现象：应能看到 SSH 暴力破解防护与访问控制相关参数。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">PermitRootLogin no
</span></span><span class="line"><span class="cl">MaxAuthTries 4
</span></span><span class="line"><span class="cl">LoginGraceTime 30
</span></span><span class="line"><span class="cl">AllowUsers appuser opsadmin
</span></span></code></pre></div>
</details>


```bash
sshd -T | grep -E 'maxauthtries|logingracetime|permitrootlogin|allowusers|denyusers|allowgroups|denygroups'
```
- 预期现象：应输出 SSH 服务端当前生效的对应参数值。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">allowgroups none
</span></span><span class="line"><span class="cl">allowusers appuser opsadmin
</span></span><span class="line"><span class="cl">denygroups none
</span></span><span class="line"><span class="cl">denyusers none
</span></span><span class="line"><span class="cl">logingracetime 30
</span></span><span class="line"><span class="cl">maxauthtries 4
</span></span><span class="line"><span class="cl">permitrootlogin no
</span></span></code></pre></div>
</details>


```bash
rpm -qa | grep -Ei 'fail2ban|aide|ossec|wazuh|snort|suricata'
```
- 预期现象：若部署入侵防范/主机入侵检测软件，应出现对应包名；未部署则无输出。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">aide-0.16.2-3.ky10.x86_64
</span></span><span class="line"><span class="cl">fail2ban-0.11.2-3.ky10.noarch
</span></span></code></pre></div>
</details>


- 对应控制点：GB/T 22239-2019 8.1.4.4 入侵防范 a)c)（最小安装、仅安装必要组件，能发现可能存在的安全漏洞并及时修补，关闭不必要服务与端口）；SSH 防暴力破解与访问控制同样对应本条与 8.1.4.2。
- 判定要点：安装与业务无关的组件/中间件、遗留明文服务未关闭、存在高危漏洞长期未修补判部分符合或不符合；MaxAuthTries/LoginGraceTime 收紧（常见加固建议 3/60）、PermitRootLogin no、AllowUsers 白名单及 fail2ban 生效为符合，仅依赖默认值（MaxAuthTries 6、LoginGraceTime 120）判部分符合。
- 取证要求：留存 rpm 包数与清单、内核补丁版本与官方安全公告比对记录、enabled 服务清单、遗留服务核查输出（无输出也须截屏留证）、sshd -T 生效参数、入侵检测软件运行状态。
- 高风险提示：使用 telnet 等明文协议承载远程管理、存在可被利用且无补丁的高危漏洞，可判高风险，见 [22、高风险判定指引与加固对照表](../../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。


## 恶意代码防范与安全增强核查

```bash
sestatus
```
- 预期现象：应显示 SELinux status、Current mode 等字段。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">SELinux status:                 enforcing
</span></span><span class="line"><span class="cl">Loaded policy name:             targeted
</span></span><span class="line"><span class="cl">Current mode:                   enforcing
</span></span><span class="line"><span class="cl">Mode from config file:          enforcing
</span></span><span class="line"><span class="cl">Policy MLS status:              enabled
</span></span><span class="line"><span class="cl">Memory protection checking:     actual (secure)
</span></span></code></pre></div>
</details>


```bash
getenforce
```
- 预期现象：通常为 Enforcing、Permissive 或 Disabled。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Enforcing
</span></span></code></pre></div>
</details>


```bash
getstatus
```
- 预期现象：KYSEC（麒麟安全框架）启用时应显示安全状态与各控制模块开关；服务器版默认一般未启用 kysec，桌面版多经图形化「安全中心」配置。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">KySec status: enabled
</span></span><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">(输出格式随版本而异)
</span></span></code></pre></div>
</details>


- 提示：kysec 状态查看/设置工具名与模式取值（如 enable/softmode/disable，softmode 俗称"上帝模式"，仅审计不拦截）随 SP 版本与桌面/服务器版不同，部分版本未集成，现场以随机《系统管理员指南》与官方知识库为准；核查时仅查看状态，不得执行 setstatus 等变更类命令。生产环境长期处于关闭或软模式应在报告中说明原因。

```bash
ps -ef | grep -Ei 'clamd|kesl|esets|hips'
```
- 预期现象：部署第三方防恶意代码软件时应出现对应引擎守护进程（clamd、kesl 等仅为常见示例，进程/服务名以所用产品手册为准）；同时可用 `systemctl list-unit-files --type=service --state=enabled` 核查其服务是否开机自启。仅依赖 kysec/SELinux 而无防恶意代码措施时应结合可信验证机制说明。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">clamav    2101      1  0 08:30 ?        00:00:12 clamd --config-file=/etc/clamd.d/scan.conf
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


- 对应控制点：GB/T 22239-2019 8.1.4.5 恶意代码防范、8.1.4.6 可信验证；SELinux/kysec 强制访问控制就近对应 8.1.4.2 访问控制。
- 判定要点：部署防恶意代码软件且病毒库/规则正常更新、或采用可信验证机制及时识别并阻断为符合；SELinux/kysec 处于 Disabled 或软模式不单独判不符合，但应在报告中说明原因与补偿措施。
- 取证要求：留存 sestatus/getenforce、getstatus 输出（如适用）、防恶意代码软件名称/版本/进程与病毒库更新记录、可信验证机制说明。
- 高风险提示：主机无恶意代码防范措施又无可信验证机制，可判高风险，见 [22、高风险判定指引与加固对照表](../../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。


## 数据完整性与保密性核查

```bash
lsblk -f
```
- 预期现象：应显示块设备与文件系统类型；系统盘或数据盘采用 LUKS 加密时应看到 crypto_LUKS 类型及加密分区映射。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">NAME                  FSTYPE      LABEL UUID                                 MOUNTPOINT
</span></span><span class="line"><span class="cl">sda
</span></span><span class="line"><span class="cl">├─sda1                ext4              8f3c...-...                          /boot
</span></span><span class="line"><span class="cl">└─sda2                crypto_LUKS       5a9d...-...
</span></span><span class="line"><span class="cl">  └─luks-5a9d...      ext4              b21e...-...                          /
</span></span></code></pre></div>
</details>


- 提示：存储保密性以 LUKS 等磁盘加密或应用层加密实现为准，未启用磁盘加密不直接判不符合，应结合鉴别数据、重要数据的存储加密措施综合判定；传输保密性以 SSH（见账户与口令策略小节 `ssh -V` 与 `sshd -T` 算法输出，OpenSSH 8.x 仅支持 SSH2）与 TLS 等密码协议核查。

```bash
lsattr /etc/passwd /etc/shadow /etc/group
```
- 预期现象：应显示关键账户文件的隐藏属性（`i` 为不可修改位）；加固常用 chattr +i 锁定关键文件，属变更类操作，现场只核查不执行。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">---------------- /etc/passwd
</span></span><span class="line"><span class="cl">---------------- /etc/shadow
</span></span><span class="line"><span class="cl">---------------- /etc/group
</span></span></code></pre></div>
</details>


```bash
grep -rn 'password_pbkdf2' /boot/grub2/grub.cfg /boot/grub2/user.cfg 2>/dev/null
```
- 预期现象：已配置 GRUB 口令时应输出 password_pbkdf2 行及散列；未配置则无输出（作为增强项说明，不单独判不符合）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/boot/grub2/grub.cfg:118:password_pbkdf2 root grub.pbkdf2.sha512.10000.A1B2C3...
</span></span></code></pre></div>
</details>


- 提示：UEFI 机型引导配置通常位于 /boot/efi/EFI/kylin/，以实际引导方式为准，可另核 /etc/grub.d/ 下相关片段。

- 对应控制点：GB/T 22239-2019 8.1.4.7 数据完整性（校验技术/密码技术保证重要数据传输与存储完整性）、8.1.4.8 数据保密性（密码技术保证重要数据传输与存储保密性）。
- 判定要点：远程管理通道均为 SSH/HTTPS 等加密协议、鉴别数据以散列存储为符合；存储保密性按磁盘加密或应用层加密实际情况判定；关键文件 chattr 锁定、GRUB 口令为增强佐证。
- 取证要求：留存 lsblk -f（含 crypto_LUKS 分区或未加密说明）、ssh -V/sshd -T 算法输出、lsattr 与 GRUB 口令核查输出、加密实现方式说明。


## 备份恢复核查

```bash
ls -l /etc/cron.daily /etc/cron.weekly /etc/cron.d
```
- 预期现象：应列出周期计划任务目录内容，确认是否存在备份/归档类脚本及其调度安排。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/etc/cron.daily:
</span></span><span class="line"><span class="cl">total 12
</span></span><span class="line"><span class="cl">-rwxr-xr-x. 1 root root  618 ... logrotate
</span></span><span class="line"><span class="cl">-rwxr-xr-x. 1 root root  351 ... backup-etc.sh
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">/etc/cron.weekly:
</span></span><span class="line"><span class="cl">total 0
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">/etc/cron.d:
</span></span><span class="line"><span class="cl">total 8
</span></span><span class="line"><span class="cl">-rw-r--r--. 1 root root 128 ... sysstat
</span></span></code></pre></div>
</details>


```bash
crontab -l
```
- 预期现象：应列出 root 用户计划任务（只读查看），可与 /var/spool/cron/ 下文件互证。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"># 每日 02:00 备份 /etc 配置（示例）
</span></span><span class="line"><span class="cl">0 2 * * * /usr/local/sbin/backup-etc.sh &gt;&gt; /var/log/backup-etc.log 2&gt;&amp;1
</span></span></code></pre></div>
</details>


- 提示：重要数据的本地/异地备份、热冗余与恢复演练以运维管理制度、备份系统记录与演练报告取证；OS 命令仅核查配置备份脚本是否存在及调度正常。/etc 等关键配置的备份内容应现场抽样验证可恢复性（属于变更/演练操作，须履行审批）。

- 对应控制点：GB/T 22239-2019 8.1.4.9 数据备份恢复 a)b)（本地备份恢复、异地实时备份与热冗余）。
- 判定要点：主机作为测评对象时，本控制点通常结合所承载数据库/应用系统的备份策略综合判定；仅有配置备份脚本而无重要数据备份与恢复演练记录判部分符合。
- 取证要求：留存 cron 目录与 crontab 输出、备份脚本内容、备份系统策略与恢复演练记录。


## 剩余信息保护核查

```bash
grep -nE 'HISTSIZE|HISTFILESIZE' /etc/profile
```
- 预期现象：应显示命令历史记录条数设置（RHEL8 系默认 HISTSIZE=1000）；加固实践建议减小或结合 TMOUT 控制会话驻留。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">HISTSIZE=1000
</span></span><span class="line"><span class="cl">export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
</span></span></code></pre></div>
</details>


```bash
grep -rn 'pam_lastlog' /etc/pam.d/ 2>/dev/null
```
- 预期现象：应显示上次登录信息提示相关 PAM 配置（RHEL8 系通常在 postlogin 文件中，showfailed 显示上次失败登录）；该文件存在性随版本不同，如不存在则跳过并记录。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/etc/pam.d/postlogin:session     optional     pam_lastlog.so silent noupdate showfailed
</span></span></code></pre></div>
</details>


```bash
grep -vE '^#|^$' /usr/lib/tmpfiles.d/tmp.conf
```
- 预期现象：应显示 /tmp、/var/tmp 的清理规则与老化时间（示例为 systemd tmpfiles 机制，行内末尾数字为老化天数，随版本而异）。


<details class="td-details"><summary>示例输出（节选）</summary><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">q /tmp 1777 root root 10d
</span></span><span class="line"><span class="cl">x /tmp/systemd-private-*
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></div>
</details>


- 对应控制点：GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)（鉴别信息所在存储空间释放或重新分配前完全清除，敏感数据存储空间同样处理）。
- 判定要点：本控制点以系统默认内存/存储释放机制说明为主，命令历史（HISTSIZE）、会话超时（TMOUT）、上次登录提示与临时文件老化策略作为常见佐证；单纯缺省值不直接判不符合，结合整体保护措施判定。
- 取证要求：留存 HISTSIZE/TMOUT 相关输出、pam_lastlog 配置、tmpfiles 清理规则输出及系统剩余信息保护机制说明。


## 个人信息保护判定说明

- 适用性说明：操作系统作为通用软件平台，自身一般不采集、存储业务层面的用户个人信息（如手机号、身份证号），个人信息通常由其承载的业务应用系统、数据库处理。对操作系统测评对象，本控制点一般记录"不适用"，并注明理由：个人信息处理活动由业务应用系统与数据库测评对象覆盖。
- 例外情形：如现场发现系统日志、账户备注字段（GECOS）、运维脚本中确有个人信息存储或展示，应转入访问控制与安全审计判定其保护与最小化情况，并在报告中说明，必要时改判部分适用。
- 取证要求：留存适用性判定说明与现场核查记录（如 /etc/passwd GECOS 字段无个人敏感信息的抽查输出）。
- 对应控制点：GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)（仅采集和保存业务必需的用户个人信息，禁止未授权访问和非法使用）。


## 参考依据

- GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》8.1.4 安全计算环境：<https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF>
- GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》：<https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C>
- 《网络安全等级保护测评高风险判定指引》（中关村信息安全测评联盟团体标准 T/ISEAA 001-2020，本文高风险口径以内链 [22、高风险判定指引与加固对照表](../../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/) 为准）
- 麒麟软件官网（产品与文档入口）：<https://www.kylinos.cn/>，技术文档：<https://www.kylinos.cn/service/document/index.html>，知识库：<https://kb.kylinos.cn/>，服务支持与安全公告：<https://support.kylinos.cn/>（漏洞与补丁口径以其安全公告为准）
- 银河麒麟 V10 同源说明：V10 系列基于 openEuler 社区构建（官方口径），见 openEuler 商业发行版页 <https://www.openeuler.org/zh/download/commercial-release/>；openEuler 22.03 LTS SP3 安全加固指南可作为 RHEL8 系同源命令参考：<https://docs.openeuler.org/zh/docs/22.03_LTS_SP3/docs/SecHarden/secHarden.html>
- faillock.conf(5)、faillock(8)、auditd.conf(5)、auditctl(8)、login.defs(5)、shadow(5)（Linux man-pages 官方站）：<https://man7.org/linux/man-pages/man5/faillock.conf.5.html>、<https://man7.org/linux/man-pages/man8/faillock.8.html>、<https://man7.org/linux/man-pages/man5/auditd.conf.5.html>、<https://man7.org/linux/man-pages/man8/auditctl.8.html>、<https://man7.org/linux/man-pages/man5/login.defs.5.html>、<https://man7.org/linux/man-pages/man5/shadow.5.html>
- sshd_config(5)、sshd(8)、ssh(1)（OpenSSH 官方手册）：<https://man.openbsd.org/sshd_config>、<https://man.openbsd.org/sshd>、<https://man.openbsd.org/ssh>
- pwquality.conf(5) 由 libpwquality 包提供（man7.org 未收录），在被测机上以 `man 5 pwquality.conf` 为准
- 命令核验说明：本文命令已于 2026-09 对照麒麟软件官网/知识库、openEuler 官方文档与 Linux man 手册核验；V10 SP1/SP2/SP3 及桌面版/服务器版在版本文件名（/etc/kylin-release、/etc/.kyinfo、/etc/.productinfo）、kysec 工具名与默认启用状态上存在差异，均以随机《系统管理员指南》与官方知识库为准；登录失败锁定自 V10 起以 pam_faillock 替代已废弃的 pam_tally2（配置见 /etc/security/faillock.conf）；涉变更类操作（setstatus、chattr、faillock --reset、服务重启、口令实测等）均未收录，现场以只读取证为限。

## 关联文章

- 同系列分册：[openEuler-三级等保现场测评命令单](./openeuler-三级等保现场测评命令单/)、[统信UOS-三级等保现场测评命令单](./统信uos-三级等保现场测评命令单/)、[Linux(RHEL_CentOS)-三级等保现场测评命令单](./linuxrhel_centos-三级等保现场测评命令单/)
- 配套加固：[13、麒麟操作系统加固](../../../../reinforce/终端/13麒麟操作系统加固/)
- 取证记录：[16、安全评估加固记录表3.0](../../../../reinforce/其他系统或设备/16安全评估加固记录表3.0/)
- 高风险口径：[22、高风险判定指引与加固对照表](../../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)
