1. Gentoo Linux与等保测评概述
Gentoo作为一款高度定制化的Linux发行版,其安全特性与等保测评要求有着天然的契合点。不同于其他发行版的二进制包管理方式,Gentoo的Portage系统允许用户从源码编译安装软件,这种特性带来了两个显著优势:一是可以针对特定CPU架构进行优化编译,消除不必要的通用指令集可能带来的安全隐患;二是能够精确控制软件包的编译选项,禁用非必需的功能模块,有效减少攻击面。
在实际等保测评工作中,我们通常需要检查系统的身份鉴别、访问控制、安全审计、入侵防范等多个控制点。Gentoo的透明性使得这些检查更为直接——所有配置都以文本文件形式存在,没有隐藏的二进制配置工具。例如/etc/login.defs、/etc/security/limits.conf等文件可以直接反映系统的安全基线配置状态。
重要提示:进行等保测评前务必对系统进行完整备份,某些检查命令可能会影响系统正常运行,建议在测试环境先验证。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 身份鉴别类测评命令
2.1 账户与口令策略检查
Gentoo使用PAM(Pluggable Authentication Modules)进行身份认证管理,相关配置集中在/etc/pam.d目录下。检查密码复杂度策略的命令如下:
bash复制# 查看密码长度和复杂度要求
grep -E 'minlen|dcredit|ucredit|lcredit|ocredit' /etc/pam.d/system-auth
# 检查密码过期策略
grep -E 'PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE' /etc/login.defs
# 查看系统账户列表及shell配置
awk -F: '($3 < 1000) {print $1,$3,$7}' /etc/passwd
实测案例:某次测评中发现系统允许空口令登录,原因是/etc/pam.d/system-auth中缺少"nullok"参数的限制。修复方法是在password requisite pam_pwquality.so配置行中添加"nullok_secure"选项。
2.2 登录失败处理机制
检查登录失败锁定策略:
bash复制# 查看失败锁定配置
grep -E 'deny|unlock_time' /etc/pam.d/system-auth
# 检查历史登录失败记录
lastb | head -20
# 查看当前登录用户及来源
w
经验技巧:Gentoo默认使用sys-libs/pam模块实现账户锁定,但需要手动配置。建议在/etc/pam.d/system-auth中添加:
code复制auth required pam_tally2.so deny=5 unlock_time=900
3. 访问控制类测评命令
3.1 文件权限检查
Gentoo的默认文件权限相对严格,但仍需检查关键目录:
bash复制# 检查/etc/passwd、/etc/shadow权限
ls -l /etc/passwd /etc/shadow /etc/group
# 递归检查/etc目录下所有文件的属主和权限
find /etc -type f -exec ls -l {} \; | grep -E 'world-writable|other-writable'
# 检查SUID/SGID文件
find / -xdev -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
常见问题:某些软件包安装后会错误设置权限,特别是第三方软件。曾遇到/usr/local/bin下的脚本被设置为777权限,这明显违反等保要求。
3.2 特权命令管理
检查sudo配置和特权命令使用:
bash复制# 查看sudoers配置
visudo -c && cat /etc/sudoers
# 检查wheel组成员(拥有sudo权限的用户)
grep wheel /etc/group
# 查看历史sudo命令记录
journalctl -t sudo
配置建议:在/etc/sudoers中添加:
code复制Defaults logfile=/var/log/sudo.log
Defaults log_input,log_output
4. 安全审计类测评命令
4.1 审计日志配置
Gentoo默认使用sys-process/auditd作为审计系统:
bash复制# 检查auditd服务状态
rc-service auditd status
# 查看当前审计规则
auditctl -l
# 检查关键文件监控规则
auditctl -w /etc/passwd -p wa -k identity
auditctl -w /etc/shadow -p wa -k identity
典型配置示例:在/etc/audit/rules.d/下创建base.rules文件,内容包含:
code复制-w /etc/group -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /usr/bin/passwd -p x -k identity
4.2 日志留存检查
检查日志轮转和保存策略:
bash复制# 查看journald配置
cat /etc/systemd/journald.conf | grep -E 'Storage|MaxFileSec'
# 检查logrotate配置
ls -l /etc/logrotate.d/
grep -r 'rotate' /etc/logrotate.d/
实测数据:某次测评发现系统只保留7天日志,不符合等保三级6个月的要求。解决方法是在/etc/systemd/journald.conf中设置:
code复制Storage=persistent
MaxRetentionSec=180day
5. 入侵防范类测评命令
5.1 系统服务与端口检查
Gentoo使用OpenRC作为init系统,服务管理命令如下:
bash复制# 查看所有服务状态
rc-update show
# 检查监听端口
netstat -tulnp
ss -tulnp
# 检查开机启动服务
ls -l /etc/runlevels/default/
安全加固建议:禁用不必要的服务如rpcbind、avahi-daemon等:
bash复制rc-update del rpcbind default
rc-update del avahi-daemon default
5.2 内核安全参数检查
Gentoo允许通过sysctl动态调整内核参数:
bash复制# 查看当前安全相关参数
sysctl -a | grep -E 'kernel.randomize_va_space|net.ipv4.conf.all.accept_redirects'
# 持久化配置到/etc/sysctl.d/
echo "net.ipv4.conf.all.rp_filter = 1" > /etc/sysctl.d/99-security.conf
关键参数说明:
code复制kernel.exec-shield = 1
kernel.randomize_va_space = 2
net.ipv4.conf.all.accept_redirects = 0
6. MySQL 5.7专项检查
虽然Gentoo默认使用MariaDB,但部分环境仍会部署MySQL 5.7:
6.1 基础安全配置检查
bash复制# 检查空密码账户
mysql -uroot -p -e "SELECT User,Host FROM mysql.user WHERE authentication_string='';"
# 查看密码复杂度插件
mysql -uroot -p -e "SHOW PLUGINS LIKE 'validate_password%';"
# 检查二进制日志状态
mysql -uroot -p -e "SHOW VARIABLES LIKE 'log_bin%';"
6.2 等保合规配置建议
在/etc/mysql/my.cnf中添加:
code复制[mysqld]
validate_password_policy=STRONG
skip_symbolic_links=ON
local_infile=OFF
7. 常见问题排查实录
7.1 审计日志不工作问题
症状:auditd服务运行但无日志记录
排查步骤:
bash复制# 检查内核是否支持audit
grep CONFIG_AUDIT= /usr/src/linux/.config
# 查看audit规则是否生效
auditctl -s
# 检查磁盘空间
df -h /var/log/audit/
解决方案:重新编译内核确保启用AUDIT支持,并检查auditd服务配置。
7.2 sudo日志缺失问题
症状:/var/log/sudo.log不存在
排查步骤:
bash复制# 检查rsyslog配置
grep sudo /etc/rsyslog.conf
# 查看journal日志
journalctl -t sudo
修复方法:在/etc/rsyslog.conf中添加:
code复制:programname, isequal, "sudo" /var/log/sudo.log
8. 测评报告生成技巧
使用自动化工具收集信息:
bash复制# 生成系统信息摘要
echo "### 系统基本信息 ###" > report.txt
uname -a >> report.txt
cat /etc/gentoo-release >> report.txt
echo "" >> report.txt
# 收集安全配置
echo "### 密码策略 ###" >> report.txt
grep -E 'PASS_' /etc/login.defs >> report.txt
推荐工具链:
- lynis:开源安全审计工具
- OpenSCAP:自动化合规检查
- rkhunter:rootkit检测
在Gentoo上安装:
bash复制emerge -av app-forensics/lytis app-forensics/rkhunter
