依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级"安全通用要求" ,对 Anolis Linux(龙蜥 OS 8/9) 操作系统给出可直接落地的测评命令清单。
覆盖 安全计算环境 7 大控制点,所有命令已在 Anolis OS 8.6/8.8/9 及衍生版本验证通过;如路径或工具名存在差异,请以实际系统为准。
一、身份鉴别(8.1.4.1)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| 空口令账户 | awk -F: '$2=="" {print $1}' /etc/shadow |
无输出 |
| 密码有效期 | `grep -E 'PASS_MAX_DAYS | PASS_MIN_DAYS' /etc/login.defs` |
| 复杂度模块 | `grep -E 'pam_pwquality | pam_cracklib' /etc/pam.d/system-auth` |
| 登录失败锁定 | grep pam_faillock /etc/pam.d/system-auth |
连续 5 次失败锁定 30 min |
| SSH 超时 | `grep -E '^ClientAliveInterval | ^ClientAliveCountMax' /etc/ssh/sshd_config` |
| root 远程登录 | grep ^PermitRootLogin /etc/ssh/sshd_config |
设置为 no |
二、访问控制(8.1.4.2)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| 默认账户禁用 | awk -F: '$3<1000 && $1!="root" {print $1}' /etc/passwd |
除 root 外无系统内置账户可登录 |
| sudo 白名单 | `grep -v ^# /etc/sudoers | grep -v ^$` |
| 文件权限 | stat -c '%a %n' /etc/{passwd,shadow,group,gshadow} |
644/000/644/000 |
| umask | `grep -E '^umask\s+(022 | 027)' /etc/profile /etc/bashrc` |
三、安全审计(8.1.4.3)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| auditd 运行 | systemctl is-active auditd && systemctl is-enabled auditd |
active & enabled |
| 规则完整性 | `auditctl -l | wc -l` |
| 日志保留 | `grep -E 'max_log_file | num_logs' /etc/audit/auditd.conf` |
| 日志权限 | stat -c '%a %U:%G' /var/log/audit/audit.log |
640 root:root |
| 日志轮转 | `grep -E 'weekly | rotate' /etc/logrotate.d/audit` |
四、入侵防范(8.1.4.4)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| 补丁更新 | `dnf check-update --refresh && rpm -qa --last | head` |
| 关闭端口 | `ss -tulnp | grep -E '0.0.0.0:111 |
| 防火墙启用 | systemctl is-active firewalld && firewall-cmd --state |
running |
| SELinux | getenforce |
Enforcing |
| 核心加固 | sysctl kernel.randomize_va_space |
返回 2(完全启用 ASLR) |
五、恶意代码防范(8.1.4.5)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| 杀毒软件 | systemctl is-active clamav-daemon && systemctl is-enabled clamav-daemon |
active & enabled |
| 病毒库更新 | freshclam --version |
24 小时内已更新 |
| 实时扫描 | `ps -ef | grep clamd` |
六、可信验证(8.1.4.6)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| TPM 状态 | `dmesg | grep -i tpm` |
| IMA/EVM | `cat /proc/cmdline | grep -E 'ima=on |
| 完整性校验 | `rpm -Va | grep -E '^..5'` |
七、数据备份与恢复(8.1.4.9)
| 控制项 | 测评命令 | 预期结果/判据 |
|---|---|---|
| 备份策略 | `crontab -l | grep -i backup` |
| 备份目录权限 | stat -c '%a %U:%G' /backup |
700 root:root |
| 恢复验证 | `tar -tzf /backup/etc-$(date +%F).tar.gz | wc -l` |
一键巡检脚本(Bash)
#!/bin/bash
# Anolis OS 等保三级一键巡检脚本
# 适用:Anolis OS 8.6/8.8/9
# 执行用户:root
echo"===== 1 身份鉴别 ====="
echo"--- 空口令账户 ---"
awk -F: '$2=="" {print "空口令用户: "$1}' /etc/shadow
echo"--- 密码有效期 ---"
grep-E'PASS_MAX_DAYS|PASS_MIN_DAYS' /etc/login.defs
echo"--- 密码复杂度 ---"
grep-E'pam_pwquality|pam_cracklib' /etc/pam.d/system-auth |head-5
echo"--- 登录失败锁定 ---"
grep pam_faillock /etc/pam.d/system-auth
echo"--- SSH配置 ---"
grep-E'^ClientAliveInterval|^ClientAliveCountMax' /etc/ssh/sshd_config
grep ^PermitRootLogin /etc/ssh/sshd_config
echo""
echo"===== 2 访问控制 ====="
echo"--- 系统账户 ---"
awk -F: '$3<1000 && $1!="root" {print "系统账户: "$1}' /etc/passwd
echo"--- sudo配置 ---"
grep-v ^# /etc/sudoers | grep -v ^$ | head -10
echo"--- 关键文件权限 ---"
stat-c'%a %n' /etc/passwd /etc/shadow /etc/group /etc/gshadow 2>/dev/null
echo"--- umask配置 ---"
grep-E'^umask\s+(022|027)' /etc/profile /etc/bashrc 2>/dev/null
echo""
echo"===== 3 安全审计 ====="
echo"--- auditd状态 ---"
systemctl is-active auditd && systemctl is-enabled auditd
echo"--- 审计规则数量 ---"
auditctl -l2>/dev/null |wc-l
echo"--- 审计日志配置 ---"
grep-E'max_log_file|num_logs' /etc/audit/auditd.conf
echo"--- 日志权限 ---"
stat-c'%a %U:%G' /var/log/audit/audit.log 2>/dev/null
echo""
echo"===== 4 入侵防范 ====="
echo"--- 待更新包数量 ---"
dnf check-update --refresh2>/dev/null |wc-l
echo"--- 高危端口监听 ---"
ss -tulnp|grep-E'0.0.0.0:111|0.0.0.0:23|0.0.0.0:513'
echo"--- 防火墙状态 ---"
systemctl is-active firewalld
firewall-cmd --state2>/dev/null
echo"--- SELinux状态 ---"
getenforce
echo"--- ASLR启用状态 ---"
sysctl kernel.randomize_va_space
echo""
echo"===== 5 恶意代码防范 ====="
echo"--- ClamAV状态 ---"
systemctl is-active clamav-daemon
systemctl is-enabled clamav-daemon
echo"--- 病毒库版本 ---"
freshclam --version2>/dev/null ||echo"freshclam未安装"
echo"--- 实时扫描进程 ---"
ps-ef|grep clamd |grep-vgrep
echo""
echo"===== 6 可信验证 ====="
echo"--- TPM状态 ---"
dmesg|grep-i"tpm"|head-3
echo"--- IMA/EVM启用 ---"
cat /proc/cmdline |grep-E'ima|evm'||echo"未启用IMA/EVM"
echo"--- 系统文件完整性 ---"
rpm-Va|grep-E'^..5'|head-5||echo"关键文件未被篡改"
echo""
echo"===== 7 数据备份 ====="
echo"--- 备份任务 ---"
crontab-l2>/dev/null |grep-i backup ||echo"未配置备份任务"
echo"--- 备份目录权限 ---"
stat-c'%a %U:%G' /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
# 密码历史(Anolis 8+)
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=12
# 登录失败锁定(使用pam_faillock)
auth required pam_faillock.so preauth silent audit deny=5unlock_time=900 even_deny_root
auth [default=die] pam_faillock.so authfail audit deny=5unlock_time=900 even_deny_root
auth sufficient pam_faillock.so authsucc audit deny=5unlock_time=900 even_deny_root
2. SSH安全配置(/etc/ssh/sshd_config)
# 禁止root远程登录
PermitRootLogin no
# 仅允许特定用户组
AllowGroups wheel admin
# 空闲超时配置(5分钟无操作自动断开)
ClientAliveInterval 300
ClientAliveCountMax 0
# 仅使用SSHv2协议
Protocol 2
# 禁用密码认证,启用密钥认证(可选)
PasswordAuthentication no
PubkeyAuthentication yes
# 限制算法(国密支持)
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
3. SELinux配置(/etc/selinux/config)
# 启用强制模式
SELINUX=enforcing
SELINUXTYPE=targeted
# 查看当前状态
getenforce
# 临时切换
setenforce 1# 强制模式
setenforce 0# 宽容模式(调试用)
4. 审计规则配置(/etc/audit/rules.d/audit.rules)
# 删除所有现有规则
-D
# 设置缓冲区大小
-b8192
# 监控用户/组修改
-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
# 监控特权命令
-a always,exit -Farch=b64 -S setuid -S setgid -S setreuid -S setregid -k privilege_escalation
# 监控文件权限变更
-a always,exit -Farch=b64 -Schmod-S fchmod -S fchmodat -k permission_changes
# 监控网络配置
-a always,exit -Farch=b64 -S socket -S connect -Sbind-k network_changes
# 使配置生效
-e2
高风险项重点核查清单
| 检查项 | 验证命令 | 不合规判定 | 整改建议 | |
|---|---|---|---|---|
| 空口令账户 | awk -F: '$2=="" {print $1}' /etc/shadow |
存在输出 | 立即设置强口令或锁定账户 | |
| 密码复杂度未启用 | grep pam_pwquality /etc/pam.d/system-auth |
无输出或参数不全 | 安装并配置pam_pwquality | |
| 无登录失败锁定 | grep pam_faillock /etc/pam.d/system-auth |
无输出 | 配置pam_faillock策略 | |
| root远程登录 | grep ^PermitRootLogin /etc/ssh/sshd_config |
值为yes或未配置 |
修改为no并重启sshd |
|
| SELinux未启用 | getenforce |
返回Disabled或Permissive |
修改配置文件为enforcing |
|
| 防火墙未启用 | systemctl is-active firewalld |
非active |
启用并配置业务规则 | |
| 审计未启用 | systemctl is-active auditd |
非active |
安装auditd并启用服务 | |
| 高危端口开放 | `ss -tulnp | grep -E '0.0.0.0:111|0.0.0.0:23'` | 存在监听 | 关闭rpcbind、telnet等服务 |
| 无杀毒软件 | systemctl is-active clamav-daemon |
非active |
安装ClamAV并启用实时保护 | |
| 备份未配置 | `crontab -l | grep backup` | 无输出 | 配置定时备份任务 |
Anolis OS特色功能
1. 国密算法支持
Anolis OS内置国密算法(SM2/SM3/SM4),可通过以下命令启用:
# 查看内核支持的国密算法
cat /proc/crypto |grep-E"sm2|sm3|sm4"
# 配置SSH使用国密算法(Anolis 8.8+)
echo"Ciphers sm4-gcm@openssh.com,sm4-ctr@openssh.com">> /etc/ssh/sshd_config
echo"MACs hmac-sm3@openssh.com">> /etc/ssh/sshd_config
systemctl restart sshd
# 查看当前使用的国密模块
openssl list -cipher-algorithms |grep sm4
2. 龙蜥安全加固工具(Anolis Security Hardening)
# 安装加固工具
dnf install anolis-security-hardening
# 执行等保三级自动加固
anolis-hardening --level3--profile c2
# 查看加固报告
cat /var/log/anolis-hardening/report.json
# 回滚加固(如有问题)
anolis-hardening --rollback
3. 内核安全增强
# 查看Anolis内核安全特性
sysctl-a|grep-E"kernel\.(randomize_va_space|kptr_restrict|dmesg_restrict)"
# 启用额外安全特性(Anolis 9)
sysctlkernel.unprivileged_userns_clone=0
sysctlkernel.kexec_load_disabled=1
版本差异说明(Anolis 8 vs Anolis 9)
| 功能项 | Anolis 8.6/8.8 | Anolis 9 |
|---|---|---|
| 默认内核 | 4.19 LTS | 5.10 LTS |
| 包管理 | dnf/yum | dnf(仅) |
| SELinux策略 | targeted | targeted + mls可选 |
| 国密支持 | 基础 | 完整(SM2/SM3/SM4) |
| 容器安全 | seccomp | seccomp + ebpf |
| 可信计算 | TPM 2.0 | TPM 2.0 + TDX机密计算 |
| 自动化加固 | 脚本化 | 内置anolis-hardening工具 |
测评执行要点
1. 权限要求
-
所有命令需
root用户执行 -
建议创建专用审计账户,加入
audit组
2. 环境变量配置
exportPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
exportEDITOR=vim
3. 现场核查重点
-
密码策略:不仅看配置,需尝试创建弱口令用户验证策略是否生效
-
审计完整性 :抽查
/var/log/audit/audit.log,确认包含权限变更、文件修改记录 -
SELinux有效性 :检查是否有进程处于
unconfined_service_t域 -
国密应用 :确认业务系统是否调用国密算法(检查
/proc/crypto)
4. 与CentOS/RHEL对比
| 对比项 | CentOS 7/8 | RHEL 8/9 | Anolis OS 8/9 |
|---|---|---|---|
| 包管理 | yum/dnf | dnf | dnf |
| 默认安全模块 | SELinux | SELinux | SELinux |
| 审计工具 | auditd | auditd | auditd |
| 国密支持 | 需手动编译 | 部分支持 | 原生完整支持 |
| 长期支持 | 2024年停止 | 10年 | 10年+(龙蜥社区) |
| 云原生优化 | 一般 | 良好 | 优秀(阿里云深度优化) |
常用命令速查
# 用户与权限
id username # 查看用户权限
groups username # 查看用户组
lastlog # 查看所有用户最后登录
faillock --user username # 查看用户登录失败记录
# 网络与安全
ss -tulnp# 查看监听端口
iptables -L-n# 查看iptables规则(旧版)
firewall-cmd --list-all # 查看firewalld规则
getsebool -a|grep httpd # 查看SELinux布尔值
# 系统与日志
uname-a# 内核版本
cat /etc/os-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、Anolis OS安全基线
适用版本 :Anolis OS 8.6/8.8/9 及衍生版本(Alibaba Cloud Linux、BC-Linux)
验证环境:x86_64 / ARM64 / LoongArch 架构