Linux内核安全机制配置:SElinux与AppArmor使用对比

落花无声 +0/-0 0 0 正常 2025-12-24T07:01:19 Linux内核 · SELinux

在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配合自定义策略。

踩坑提醒 配置不当可能导致系统无法启动或服务异常,务必在测试环境中验证策略有效性。

推广
广告位招租

讨论

0/2000
Mike628
Mike628 · 2026-01-08T10:24:58
SELinux确实更强大但配置复杂,我之前在生产环境直接setenforce 1搞崩过系统,后来改成先在permissive模式调试策略,再切换强制模式,推荐大家也这样操作。
Violet317
Violet317 · 2026-01-08T10:24:58
AppArmor上手快,适合快速部署安全策略,比如给nginx加个访问控制,写个路径规则就行。不过如果需要细粒度控制,还是得回归SELinux,两者结合用更保险。