依据 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 |
≤90 天,≥7 天 |
|
复杂度模块 |
grep -E 'pam_pwquality|pam_cracklib' /etc/pam.d/system-auth |
至少包含 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 minlen=8 |
|
登录失败锁定 |
grep pam_faillock /etc/pam.d/system-auth |
连续 5 次失败锁定 30 min |
|
SSH 超时 |
grep -E '^ClientAliveInterval|^ClientAliveCountMax' /etc/ssh/sshd_config |
300 秒内无操作自动断开 |
|
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 ^$ |
仅管理员账号拥有 ALL=(ALL) NOPASSWD:ALL |
|
文件权限 |
stat -c '%a %n' /etc/{passwd,shadow,group,gshadow} |
644/000/644/000 |
|
umask |
grep -E '^umask\\s+(022|027)' /etc/profile /etc/bashrc |
全局 umask 为 022 或 027 |
三、安全审计(8.1.4.3)
|
auditd 运行 |
systemctl is-active auditd && systemctl is-enabled auditd |
active & enabled |
|
规则完整性 |
auditctl -l | wc -l |
≥30 条且覆盖用户、文件、特权、网络、配置 |
|
日志保留 |
grep -E 'max_log_file|num_logs' /etc/audit/auditd.conf |
单文件 ≥50 MB,保留 ≥6 个月 |
|
日志权限 |
stat -c '%a %U:%G' /var/log/audit/audit.log |
640 root:root |
|
日志轮转 |
grep -E 'weekly|rotate' /etc/logrotate.d/audit |
配置每周轮转,rotate ≥26 |
四、入侵防范(8.1.4.4)
|
补丁更新 |
dnf check-update –refresh && rpm -qa –last | head |
最近 30 天内完成更新 |
|
关闭端口 |
ss -tulnp | grep -E '0.0.0.0:111|0.0.0.0:23' |
无 telnet、rpcbind 等高危端口 |
|
防火墙启用 |
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 |
显示 TPM 2.0 device detected |
|
IMA/EVM |
cat /proc/cmdline | grep -E 'ima=on|evm=fix' |
内核启动参数已开启 |
|
完整性校验 |
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)
|
默认内核 |
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对比
|
包管理 |
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 架构



