Ubuntu默认使用AppArmor,若需使用SELinux需手动安装配置,其文件系统保护策略核心如下:
-
安全上下文标记
为文件/目录分配用户:角色:类型:级别标签,如httpd_sys_content_t,控制进程访问权限。- 查看:
ls -Z /path/to/file - 修改:
chcon -t type /path/to/file(递归用-R) - 恢复默认:
restorecon -Rv /path/to/directory
- 查看:
-
策略规则配置
- 默认策略:Ubuntu可安装
selinux-policy-default,包含针对Web服务、数据库等场景的预定义规则。 - 自定义策略:
- 编写
.te规则文件(如允许特定进程访问文件):
policy_module(my_policy, 1.0)\nallow httpd_t my_file_t:file { read write }; - 编译安装:
checkmodule -M -m -o my_policy.mod my_policy.te\nsemodule_package -o my_policy.pp -m my_policy.mod\nsudo semodule -i my_policy.pp - 应用策略:
restorecon -Rv /affected/directory
- 编写
- 默认策略:Ubuntu可安装
-
模式与权限控制
- 强制模式(Enforcing):严格按策略拒绝未授权访问,记录日志。
- 宽容模式(Permissive):仅记录违规,不阻止,用于调试。
- 切换模式:编辑
/etc/selinux/config,设置SELINUX=mode,需重启生效。
-
审计与监控
通过/var/log/audit/audit.log查看访问拒绝事件,使用ausearch和audit2why分析违规原因。
注意:SELinux配置复杂,可能影响系统兼容性,建议仅在特定安全需求场景(如企业服务器)中使用,并提前备份重要数据。
参考资料: