Ubuntu与SELinux的版本兼容性处理指南
Ubuntu默认采用AppArmor作为安全模块,并未内置SELinux。但通过额外安装包,可在Ubuntu上启用SELinux(仅支持targeted策略,默认模式为permissive)。需注意:SELinux与AppArmor可能存在冲突,启用前需卸载AppArmor。
apt安装对应工具包(如selinux-basics、auditd、selinux-policy-default)。sestatus命令查看(如Max kernel policy version: 33)。策略模块需与内核版本匹配,避免因版本不符导致加载失败。policycoreutils-gui),需确保其与Ubuntu版本及SELinux策略版本兼容。sudo apt remove --purge apparmor apparmor-utils
sudo systemctl stop apparmor
sudo systemctl disable apparmor
sudo apt update
sudo apt install selinux-basics auditd selinux-policy-default selinux-utils policycoreutils-python-utils
/etc/selinux/、/var/lib/selinux/)及数据,便于回滚。selinux-activate命令,按提示重启系统,使SELinux生效。/etc/selinux/config文件,将SELINUX=设置为enforcing(强制模式)或permissive(宽容模式,仅记录日志),保存后重启:sudo nano /etc/selinux/config
# 修改为:SELINUX=enforcing
sudo reboot
sestatus命令检查SELinux是否启用及运行模式:sestatus
# 正常输出应包含:SELinux status: enabled; Current mode: enforcing/permissive
/etc/selinux/(策略文件)和/var/lib/selinux/(安全上下文),复制到目标系统后,使用semodule -R -i重新加载策略模块。ausearch -m avc -ts recent查看拒绝日志,用audit2allow生成自定义策略模块修复。audit2why分析日志,生成并应用自定义策略:sudo ausearch -m avc -ts recent | audit2why
sudo ausearch -m avc -ts recent | audit2allow -M my_policy
sudo semodule -i my_policy.pp