Linux系统安全策略:配置 SELinux / AppArmor 强制访问控制机制

胖墨小哥_8654

胖墨小哥_8654

2026-09-08

912人浏览

原创

linux启用强制访问控制(mac)的核心是进程仅能执行策略明确允许的操作,selinux和apparmor是内核lsm框架下两大主流实现;selinux基于类型标签实现细粒度控制,默认拒绝、安全性高但配置复杂,apparmor基于路径限制,语法直观、易于调试,适合快速部署。

linux系统安全策略:配置 selinux / apparmor 强制访问控制机制

Linux系统启用强制访问控制(MAC),核心是让进程只能做策略明确允许的事,而不是依赖用户或组权限去“自主决定”能否访问资源。SELinux 和 AppArmor 是内核级 LSM 框架下的两大主流实现,它们不互斥但通常只启用其一,选择取决于发行版默认和运维习惯。

SELinux:基于类型标签的细粒度控制

SELinux 为每个进程、文件、端口等分配安全上下文(如 system_u:object_r:httpd_exec_t:s0),策略规则基于主体类型与客体类型的匹配来放行或拒绝操作。默认拒绝原则使其防护能力强,但也带来配置复杂性。

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
  • 确认状态:运行 getenforce 查看当前模式(Enforcing/Permissive/Disabled);用 sestatus 获取完整信息
  • 临时切换:用 setenforce 0 进入宽容模式调试,setenforce 1 恢复强制模式
  • 永久生效:编辑 /etc/selinux/config,设置 SELINUX=enforcing 并重启
  • 修复常见问题:当服务启动失败或文件访问被拒,先查 ausearch -m avc -ts recent 或 journalctl -t setroubleshoot,再用 audit2why 和 audit2allow 生成修复建议或自定义策略模块

AppArmor:基于路径的轻量级隔离

AppArmor 通过为可执行程序绑定配置文件(Profile)来限制其能访问的文件路径、网络端口和系统调用。它语法直观、易于调试,适合快速落地,尤其在 Debian/Ubuntu 系统中为默认 MAC 方案。

  • 查看状态:运行 aa-status,确认是否加载、有多少 profile、哪些进程已启用
  • 启用 profile:将配置文件(如 /etc/apparmor.d/usr.sbin.nginx)写好后,执行 sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.nginx
  • 两种模式切换:用 sudo aa-complain /path/to/bin 进入抱怨模式收集行为日志;用 sudo aa-enforce /path/to/bin 切回强制模式
  • 容器场景:Docker 默认使用 docker-default profile;若需强化,先在宿主机加载自定义 profile(如 my-java-app),再以 docker run --security-opt apparmor=my-java-app … 启动

选型与协同要点

SELinux 更适合高合规要求环境(如金融、政务),因其类型强制模型天然支持多级安全(MLS)和严格策略继承;AppArmor 更适合 DevOps 快速迭代场景,路径匹配逻辑贴近运维直觉,profile 可随应用打包分发。

  • 不要同时启用两者并用于同一服务——可能引发策略冲突或不可预测拦截
  • 无论选哪个,都应配合传统 DAC 权限(如文件属主、umask)、SSH 密钥认证、最小权限原则一起使用
  • 容器环境中,MAC 是逃逸防护的关键一环:即使容器内进程获得 root 权限,也无法绕过 AppArmor profile 或 SELinux 类型约束访问宿主机敏感路径
  • 策略不是一次配置就万事大吉:定期审查 /var/log/audit/audit.log(SELinux)或 /var/log/syslog(AppArmor complain 日志),根据实际运行行为优化 profile 或策略规则

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2552

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

769

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2296

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4232

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习