前提:Ubuntu默认使用AppArmor,需先安装SELinux
Ubuntu并非默认启用SELinux(默认使用AppArmor),因此需先安装SELinux及相关工具。通过以下命令完成安装:
sudo apt update
sudo apt install selinux selinux-utils auditd audispd-plugins
步骤1:配置SELinux模式
编辑SELinux配置文件/etc/selinux/config,将SELINUX参数设置为permissive(宽松模式,仅记录违规不阻止)或enforcing(强制模式,阻止违规)。例如:
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
修改后重启系统使设置生效:
sudo reboot
验证SELinux状态:
sestatus
# 应显示"SELinux status: enabled"及当前模式(如"Current mode: permissive")
步骤2:安装并配置auditd服务
auditd是Linux审计框架的核心守护进程,用于记录SELinux相关事件。
sudo apt install auditd audispd-plugins
sudo systemctl start auditd
sudo systemctl enable auditd
/etc/audit/auditd.conf,调整日志大小、保留数量等参数(如max_file_size 100表示单日志文件最大100MB,num_files 10表示保留10个归档文件),修改后重启服务:sudo systemctl restart auditd
步骤3:配置SELinux审计规则
通过auditctl命令或自定义规则文件监控SELinux关键操作:
/etc/selinux/config)、策略文件(/etc/selinux/policy)及活动策略目录(/var/lib/selinux/active)的所有读写操作,自定义关键词selinux_audit便于后续过滤:sudo auditctl -w /etc/selinux/config -p wa -k selinux_audit
sudo auditctl -w /etc/selinux/policy -p wa -k selinux_audit
sudo auditctl -w /var/lib/selinux/active -p wa -k selinux_audit
/etc/audit/rules.d/selinux.rules,添加以下内容(监控SELinux AVC拒绝事件及上述文件变更):-w /etc/selinux/config -p wa -k selinux_audit
-w /etc/selinux/policy -p wa -k selinux_audit
-w /var/lib/selinux/active -p wa -k selinux_audit
-a always,exit -F arch=b32 -S avc -k selinux_avc
-a always,exit -F arch=b64 -S avc -k selinux_avc
加载规则:sudo augenrules --load
步骤4:查看与分析SELinux审计日志
ausearch命令过滤selinux_audit关键词或avc(SELinux访问控制)消息类型,-ts recent表示最近1分钟内事件,-i参数显示详细信息:sudo ausearch -k selinux_audit -ts recent -i
sudo ausearch -m avc -ts recent -i
aureport命令生成汇总报告,-m selinux参数聚焦SELinux事件,可查看违规次数、类型等统计信息:sudo aureport -m selinux -i
/var/log/audit/audit.log,可使用grep快速筛选拒绝事件:sudo grep -i "denied" /var/log/audit/audit.log
注意事项
enforcing模式,但需提前通过permissive模式测试避免误拦截;/var/log/audit/audit.log),防止日志被覆盖或篡改;semanage(策略管理工具)和audit2allow(生成自定义策略)工具使用。