依据 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 | 至少包含 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 minlen=8 |
| grep pam_faillock /etc/pam.d/system-auth | |
| grep -E '^ClientAliveInterval|^ClientAliveCountMax' /etc/ssh/sshd_config | |
| grep ^PermitRootLogin /etc/ssh/sshd_config | |
二、访问控制(8.1.4.2)
| | |
|---|
| awk -F: '$3<1000 && $1!="root" {print $1}' /etc/passwd | |
| grep -v ^# /etc/sudoers | grep -v ^$ | 仅管理员账号拥有 ALL=(ALL) NOPASSWD:ALL |
| stat -c '%a %n' /etc/{passwd,shadow,group,gshadow} | |
| grep -E '^umask\s+(022|027)' /etc/profile /etc/bashrc | |
三、安全审计(8.1.4.3)
| | |
|---|
| systemctl is-active auditd && systemctl is-enabled auditd | |
| 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 | |
| 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|0.0.0.0:23' | |
| systemctl is-active firewalld && firewall-cmd --state | |
| getenforce | |
| sysctl kernel.randomize_va_space | |
五、恶意代码防范(8.1.4.5)
| | |
|---|
| systemctl is-active clamav-daemon && systemctl is-enabled clamav-daemon | |
| freshclam --version | |
| ps -ef | grep clamd | |
六、可信验证(8.1.4.6)
| | |
|---|
| dmesg | grep -i tpm | 显示 TPM 2.0 device detected |
| 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 | |
| tar -tzf /backup/etc-$(date +%F).tar.gz | wc -l | |
一键巡检脚本(Bash)
#!/bin/bash# Anolis OS 等保三级一键巡检脚本# 适用:Anolis OS 8.6/8.8/9# 执行用户:rootecho"===== 1 身份鉴别 ====="echo"--- 空口令账户 ---"awk -F: '$2=="" {print "空口令用户: "$1}' /etc/shadowecho"--- 密码有效期 ---"grep-E'PASS_MAX_DAYS|PASS_MIN_DAYS' /etc/login.defsecho"--- 密码复杂度 ---"grep-E'pam_pwquality|pam_cracklib' /etc/pam.d/system-auth |head-5echo"--- 登录失败锁定 ---"grep pam_faillock /etc/pam.d/system-authecho"--- SSH配置 ---"grep-E'^ClientAliveInterval|^ClientAliveCountMax' /etc/ssh/sshd_configgrep ^PermitRootLogin /etc/ssh/sshd_configecho""echo"===== 2 访问控制 ====="echo"--- 系统账户 ---"awk -F: '$3<1000 && $1!="root" {print "系统账户: "$1}' /etc/passwdecho"--- sudo配置 ---"grep-v ^# /etc/sudoers | grep -v ^$ | head -10echo"--- 关键文件权限 ---"stat-c'%a %n' /etc/passwd /etc/shadow /etc/group /etc/gshadow 2>/dev/nullecho"--- umask配置 ---"grep-E'^umask\s+(022|027)' /etc/profile /etc/bashrc 2>/dev/nullecho""echo"===== 3 安全审计 ====="echo"--- auditd状态 ---"systemctl is-active auditd && systemctl is-enabled auditdecho"--- 审计规则数量 ---"auditctl -l2>/dev/null |wc-lecho"--- 审计日志配置 ---"grep-E'max_log_file|num_logs' /etc/audit/auditd.confecho"--- 日志权限 ---"stat-c'%a %U:%G' /var/log/audit/audit.log 2>/dev/nullecho""echo"===== 4 入侵防范 ====="echo"--- 待更新包数量 ---"dnf check-update --refresh2>/dev/null |wc-lecho"--- 高危端口监听 ---"ss -tulnp|grep-E'0.0.0.0:111|0.0.0.0:23|0.0.0.0:513'echo"--- 防火墙状态 ---"systemctl is-active firewalldfirewall-cmd --state2>/dev/nullecho"--- SELinux状态 ---"getenforceecho"--- ASLR启用状态 ---"sysctl kernel.randomize_va_spaceecho""echo"===== 5 恶意代码防范 ====="echo"--- ClamAV状态 ---"systemctl is-active clamav-daemonsystemctl is-enabled clamav-daemonecho"--- 病毒库版本 ---"freshclam --version2>/dev/null ||echo"freshclam未安装"echo"--- 实时扫描进程 ---"ps-ef|grep clamd |grep-vgrepecho""echo"===== 6 可信验证 ====="echo"--- TPM状态 ---"dmesg|grep-i"tpm"|head-3echo"--- 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_rootauth [default=die] pam_faillock.so authfail audit deny=5unlock_time=900 even_deny_rootauth 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 300ClientAliveCountMax 0# 仅使用SSHv2协议Protocol 2# 禁用密码认证,启用密钥认证(可选)PasswordAuthentication noPubkeyAuthentication yes# 限制算法(国密支持)Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.comMACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
3. SELinux配置(/etc/selinux/config)
# 启用强制模式SELINUX=enforcingSELINUXTYPE=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 | | | |
| 无登录失败锁定 | grep pam_faillock /etc/pam.d/system-auth | | | |
| root远程登录 | grep ^PermitRootLogin /etc/ssh/sshd_config | | | |
| SELinux未启用 | getenforce | | | |
| 防火墙未启用 | systemctl is-active firewalld | | | |
| 审计未启用 | systemctl is-active auditd | | | |
| 高危端口开放 | | grep -E '0.0.0.0:111|0.0.0.0:23'` | | |
| 无杀毒软件 | systemctl is-active clamav-daemon | | | |
| 备份未配置 | | | | |
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_configecho"MACs hmac-sm3@openssh.com">> /etc/ssh/sshd_configsystemctl 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=0sysctlkernel.kexec_load_disabled=1
版本差异说明(Anolis 8 vs Anolis 9)
测评执行要点
1. 权限要求
所有命令需 root 用户执行
建议创建专用审计账户,加入 audit 组
2. 环境变量配置
exportPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binexportEDITOR=vim
3. 现场核查重点
密码策略:不仅看配置,需尝试创建弱口令用户验证策略是否生效
审计完整性:抽查 /var/log/audit/audit.log,确认包含权限变更、文件修改记录
SELinux有效性:检查是否有进程处于 unconfined_service_t 域
国密应用:确认业务系统是否调用国密算法(检查 /proc/crypto)
4. 与CentOS/RHEL对比
常用命令速查
# 用户与权限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 # 备份/etcrsync-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 架构