在Ubuntu上,SELinux(Security-Enhanced Linux)并不是默认启用的安全模块,而是使用AppArmor作为其强制访问控制(MAC)框架。不过,如果你确实需要在Ubuntu上配置SELinux,以下是一些基本步骤和策略配置:
首先,确保系统已经安装了SELinux及相关工具。可以使用以下命令来安装:
sudo apt update
sudo apt install selinux-basics selinux-policy-default selinux-utils
安装完成后,需要将SELinux设置为“宽松”或“严格”模式。要将其设置为“宽松”模式,请编辑 /etc/selinux/config
文件并更改以下行:
SELINUX=enforcing
将其更改为:
SELINUX=permissive
保存并关闭文件。然后重新启动计算机以使更改生效:
sudo reboot
要检查SELinux是否已启用并运行,可以在终端中输入以下命令:
sestatus
SELinux策略可以通过多种方式进行管理,包括使用命令行工具 semanage
和 audit2allow
,或者通过图形界面工具如 Policy Configurator。
例如,要允许Apache Web服务器访问用户主目录中的文件,可以运行以下命令:
sudo setsebool -P httpd_enable_homedirs 1
要定制SELinux策略,需要编写一个 .te
文件,其中包含策略规则。例如,创建一个名为 my-custom-policy.te
的文件,包含以下内容:
policy_module(my_custom_policy, 1.0)
require {
type httpd_t;
class file {
read write;
}
}
allow httpd_t self:file {
read write;
}
编译策略:
checkmodule -M -m -o my-custom-policy.mod my-custom-policy.te
安装编译好的策略:
sudo semodule -i my-custom-policy.pp
验证策略:
使用 audit2why
和 ausearch
工具检查策略是否按预期工作:
grep my_custom_policy /var/log/audit/audit.log
ausearch -m avc -ts recent
请注意,SELinux在Ubuntu上的支持有限,并非所有功能都可用。在某些情况下,您可能需要考虑使用其他发行版,如CentOS或RHEL,以获得更好的SELinux支持。