1. RHEL等保三级测评概述
作为企业级Linux发行版的代表,Red Hat Enterprise Linux(RHEL)在金融、政务等对安全性要求严格的领域广泛应用。等保2.0三级标准(GB/T 22239-2019)对操作系统安全提出了明确要求,本文将基于RHEL 7.9/8.6/9.0版本,从技术实操角度解析如何通过命令行完成合规性检查。
提示:所有测评命令需在root权限下执行,建议先通过
sudo -i切换到root账户。测评结果需结合人工复核,特别是密码复杂度、SELinux策略等配置项。
2. 身份鉴别安全配置
2.1 账户与密码策略核查
2.1.1 用户身份唯一性检查
RHEL系统要求每个用户必须拥有唯一的UID(用户标识符)。通过以下命令检查是否存在UID重复:
bash复制awk -F: '{print $3}' /etc/passwd | sort | uniq -d
正常情况应无输出,若存在重复UID,需通过usermod -u <新UID> <用户名>命令修改。
2.1.2 空口令账户检测
空口令账户是重大安全隐患,必须严格禁止:
bash复制awk -F: '$2==""{print $1}' /etc/shadow
若发现空口令账户,应立即锁定或设置密码:
bash复制passwd <用户名> # 设置密码
usermod -L <用户名> # 或直接锁定账户
2.1.3 密码复杂度策略(RHEL 7+)
RHEL 7及以上版本使用pam_pwquality模块管理密码策略:
bash复制cat /etc/security/pwquality.conf
合规配置示例:
code复制minlen = 8 # 最小长度8位
minclass = 4 # 需包含4类字符(大小写字母、数字、特殊符号)
dcredit = -1 # 至少1个数字
ucredit = -1 # 至少1个大写字母
lcredit = -1 # 至少1个小写字母
ocredit = -1 # 至少1个特殊字符
maxrepeat = 2 # 相同字符最多连续2个
enforce_for_root # root账户同样受限制
2.1.4 密码有效期设置
检查密码最长使用期限:
bash复制grep -E 'PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE' /etc/login.defs
等保三级要求:
- PASS_MAX_DAYS ≤ 90(密码最长使用天数)
- PASS_MIN_DAYS ≥ 1(密码最短使用天数)
- PASS_WARN_AGE ≥ 7(密码过期前提醒天数)
2.2 登录安全配置
2.2.1 登录失败处理
RHEL 7/8使用pam_faillock,RHEL 9使用pam_faillock2:
bash复制# RHEL 7/8
grep pam_faillock /etc/pam.d/sshd
# RHEL 9
grep pam_faillock2 /etc/pam.d/sshd
合规配置应包含:
code复制auth required pam_faillock.so preauth silent deny=5 unlock_time=300
auth required pam_faillock.so authfail deny=5 unlock_time=300
表示连续5次登录失败后锁定账户300秒。
2.2.2 会话超时设置
等保要求会话超时不超过600秒:
bash复制# 检查全局超时设置
grep -E 'TMOUT|TIMEOUT' /etc/profile /etc/bashrc
# 检查SSH超时
grep -E 'ClientAliveInterval|ClientAliveCountMax' /etc/ssh/sshd_config
推荐配置:
code复制ClientAliveInterval 300 # 300秒检测一次
ClientAliveCountMax 2 # 2次无响应后断开
2.3 远程管理安全
2.3.1 SSH安全配置
bash复制grep -E 'PermitRootLogin|Protocol|PasswordAuthentication' /etc/ssh/sshd_config
合规要求:
- PermitRootLogin no(禁止root直接登录)
- Protocol 2(仅使用SSHv2)
- PasswordAuthentication no(推荐禁用密码认证,使用密钥)
2.3.2 双因素认证(高风险项)
等保三级要求采用两种及以上认证方式组合:
bash复制# 检查PAM模块配置
grep -E 'pam_pkcs11|pam_google_authenticator' /etc/pam.d/sshd
# 检查智能卡服务
systemctl status pcscd
典型实施方案:
- 口令+数字证书(如智能卡)
- 口令+动态令牌(如Google Authenticator)
- 口令+生物特征(需专用硬件支持)
3. 访问控制配置
3.1 文件权限管理
3.1.1 关键文件权限检查
bash复制stat -c '%a %n' /etc/passwd /etc/shadow /etc/group /etc/gshadow
合规要求:
- /etc/passwd 644(-rw-r--r--)
- /etc/shadow 000(----------)
- /etc/group 644
- /etc/gshadow 000
3.1.2 sudo权限检查
bash复制grep -v '^#' /etc/sudoers | grep -v '^$'
应遵循最小权限原则,避免使用ALL=(ALL) ALL这种宽泛授权。
3.2 默认账户处理
3.2.1 无用账户清理
bash复制grep -E 'halt|shutdown|sync|adm|lp|news|uucp|operator|games|gopher' /etc/shadow
这些默认账户应被锁定(密码字段为!!)或删除:
bash复制userdel -r games # 删除games账户
usermod -L lp # 锁定lp账户
3.3 SELinux配置
3.3.1 SELinux状态检查
bash复制getenforce # 当前模式
sestatus # 详细状态
等保要求必须为Enforcing模式,若为Disabled或Permissive需修改:
bash复制setenforce 1 # 临时切换
sed -i 's/SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config # 永久生效
3.3.2 SELinux策略检查
bash复制# 查看文件安全上下文
ls -Z /etc/passwd
# 查看进程安全上下文
ps -eZ | grep sshd
# 检查布尔值
getsebool -a | grep httpd
常见需要启用的布尔值:
code复制httpd_can_network_connect=off
ftp_home_dir=off
ssh_sysadm_login=off
4. 安全审计配置
4.1 审计服务部署
4.1.1 auditd服务状态
bash复制systemctl is-active auditd && systemctl is-enabled auditd
若未安装,需通过yum/dnf安装:
bash复制yum install audit # RHEL 7
dnf install audit # RHEL 8/9
systemctl enable --now auditd
4.1.2 审计规则检查
bash复制auditctl -l | wc -l # 规则数量
aureport -i | head -20 # 事件摘要
等保要求审计规则不少于30条,关键审计项包括:
- 用户登录/注销
- 权限变更
- 重要文件访问
- 系统管理操作
4.2 日志管理
4.2.1 日志服务配置
bash复制systemctl is-active rsyslog && systemctl is-enabled rsyslog
RHEL 8/9默认使用journald,但仍需rsyslog持久化存储:
bash复制grep Storage /etc/systemd/journald.conf # 应为persistent
4.2.2 日志远程备份
bash复制grep '@' /etc/rsyslog.conf /etc/rsyslog.d/*.conf
推荐配置远程日志服务器:
code复制*.info;mail.none;authpriv.none;cron.none @192.168.1.100:514
5. 入侵防范措施
5.1 系统补丁管理
5.1.1 检查待更新包
bash复制yum check-update # RHEL 7
dnf check-update # RHEL 8/9
安全补丁应在发布后30天内安装:
bash复制yum update --security # 仅安装安全更新
5.2 网络服务控制
5.2.1 高危端口检查
bash复制ss -tunlp | grep -E '0.0.0.0:23|0.0.0.0:111|0.0.0.0:513|0.0.0.0:32768'
应关闭Telnet(23)、rpcbind(111)等高危服务。
5.2.2 firewalld配置
bash复制firewall-cmd --list-all
推荐配置:
bash复制firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-service=ssh --zone=work
firewall-cmd --reload
6. 恶意代码防范
6.1 ClamAV部署
bash复制systemctl is-active clamd && systemctl is-enabled clamd
freshclam --version
若未安装:
bash复制yum install clamav clamd # RHEL 7
dnf install clamav clamd # RHEL 8/9
systemctl enable --now clamd
freshclam # 更新病毒库
6.2 SCAP安全合规扫描
bash复制oscap info /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml
执行等保合规扫描:
bash复制oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis \
--results /tmp/等保-results.xml \
/usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml
7. 资源控制配置
7.1 会话超时设置
bash复制grep -E 'TMOUT|TIMEOUT' /etc/profile /etc/bashrc
推荐配置:
bash复制echo "TMOUT=600" >> /etc/profile
echo "readonly TMOUT" >> /etc/profile
7.2 系统资源限制
bash复制cat /etc/security/limits.conf
示例配置:
code复制* soft nofile 4096
* hard nofile 8192
@users hard cpu 2
@users hard as 1024000
8. RHEL版本差异处理
8.1 包管理工具变化
- RHEL 7:yum
- RHEL 8:yum/dnf
- RHEL 9:dnf
8.2 安全工具增强
RHEL 9新增功能:
- 国密算法支持(SM2/SM3/SM4)
- 增强的SELinux策略
- 集成的SCAP等保模板
9. 高风险项整改清单
- 空口令账户:必须立即设置密码或锁定
- root远程登录:必须禁用PermitRootLogin
- SELinux禁用:必须切换为Enforcing模式
- 审计服务未启用:需安装配置auditd
- 双因素认证缺失:需部署智能卡或动态令牌
- 补丁滞后超过30天:需立即更新安全补丁
10. 持续维护建议
- 每月执行安全更新:
bash复制dnf update --security # RHEL 8/9 - 每周检查审计日志:
bash复制aureport -i | grep -E 'failed|user' - 每日监控关键文件完整性:
bash复制
aide --check - 使用Red Hat Insights进行自动化合规检查:
bash复制
insights-client --register insights-client --compliance
通过以上配置,RHEL系统可满足等保2.0三级基本要求。实际测评时需结合人工检查,特别是业务特殊配置可能影响某些安全策略的实施。建议在测试环境验证后再在生产环境部署。