Linux内核安全机制实施:SElinux与AppArmor配置对比

Paul813 +0/-0 0 0 正常 2025-12-24T07:01:19 系统安全 · Linux内核 · SELinux

在Linux系统安全领域,SELinux与AppArmor是两种主流的强制访问控制(MAC)机制。本文将通过具体配置案例对比这两种机制的安全策略实施。

SELinux配置示例

首先启用SELinux并设置为 enforcing 模式:

# 编辑 /etc/selinux/config
SELINUX=enforcing

# 重启系统后验证状态
getenforce
# 输出应为 Enforcing

创建一个受限的Web服务上下文:

# 为httpd设置特定的SELinux域
semanage login -a -s staff_u -r s0 system_u
semanage fcontext -a -t httpd_exec_t /var/www/cgi-bin/*
restorecon -R /var/www/cgi-bin/

AppArmor配置示例

安装并启用AppArmor:

# Ubuntu/Debian系统
sudo apt install apparmor apparmor-utils
sudo systemctl enable apparmor
sudo systemctl start apparmor

# 创建配置文件
sudo nano /etc/apparmor.d/usr.sbin.apache2

配置内容如下:

#include <tunables/global>
/usr/sbin/apache2 {
  include <abstractions/base>
  include <abstractions/nameservice>
  capability net_bind_service,
  capability setuid,
  capability setgid,
  /usr/sbin/apache2 mrwkl,
  /etc/apache2/** rwkl,
  /var/www/** rwkl,
}

加载配置:

sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.apache2

安全策略对比

在实际部署中,SELinux通过细粒度的类型强制控制,适用于高安全要求环境;而AppArmor通过路径为基础的访问控制,更适合快速部署。两者都支持审计日志收集:

# SELinux审计
ausearch -m avc -ts recent

# AppArmor审计
journalctl | grep apparmor

建议根据组织安全需求选择合适的机制,并定期审查安全策略配置。

推广
广告位招租

讨论

0/2000
AliveWarrior
AliveWarrior · 2026-01-08T10:24:58
SELinux的类型强制控制确实更细粒度,但配置复杂到让人怀疑人生。建议新手先从AppArmor入手,别一上来就搞SELinux,否则排查问题的时间比写配置还长。
Paul813
Paul813 · 2026-01-08T10:24:58
两种机制都强调审计日志的重要性,但实际使用中发现,SELinux的日志信息量大得几乎无法手动分析,建议配合logwatch或自研脚本做聚合处理,不然根本看不过来。
RoughGeorge
RoughGeorge · 2026-01-08T10:24:58
AppArmor路径基础的策略虽然部署快,但容易出现权限蔓延问题。建议在生产环境配置时,先做充分的测试用例覆盖,避免因为一个路径遗漏导致整个服务被绕过访问控制