在Linux系统安全实践中,SELinux和AppArmor作为两大主流强制访问控制(MAC)机制,各有其独特优势与适用场景。本文将通过具体配置案例对比两者差异,并提供可复现的配置步骤。
SELinux配置实践
首先配置SELinux策略:
# 检查当前状态
getenforce
# 临时启用强制模式
setenforce 1
# 查看SELinux上下文
ls -Z /etc/passwd
# 创建自定义策略文件(example.te)
module example 1.0 {
type example_t;
class process execmem;
# 允许进程执行内存映射
allow example_t self:process execmem;
}
AppArmor配置实践
AppArmor通过路径策略实现控制,配置相对简单:
# 查看AppArmor状态
aa-status
# 创建路径策略文件
vim /etc/apparmor.d/usr.bin.vim
#include <tunables/global>
/usr/bin/vim {
# 包含全局规则
include <abstractions/base>
# 允许读取配置文件
/etc/vimrc r,
# 允许写入临时目录
/tmp/** rw,
}
# 加载策略
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.vim
对比分析 SELinux采用类型强制模型,策略复杂但控制粒度细;AppArmor基于路径访问控制,更易理解和配置。实际部署中,建议根据安全需求和团队技术能力选择。对于高安全性要求的环境,推荐使用SELinux配合自定义策略。
踩坑提醒 配置不当可能导致系统无法启动或服务异常,务必在测试环境中验证策略有效性。

讨论