插件窝 干货文章 linux selinux是什么

linux selinux是什么

安全 SELinux 上下文 访问 695    来源:    2025-04-30

SELinux 简介

SELinux (Security-Enhanced Linux) 是 Linux 内核的一个安全模块,提供强制访问控制(MAC)机制,是对传统 Linux 自主访问控制(DAC)的补充。

基本概念

  1. 强制访问控制(MAC):与传统的用户/组/权限(DAC)不同,SELinux 通过安全策略强制执行访问规则。

  2. 安全上下文:SELinux 为系统中的每个对象(文件、进程、端口等)分配安全标签,格式为:用户:角色:类型:级别

  3. 策略:定义哪些主体(如进程)可以访问哪些对象(如文件)的规则集合。

SELinux 工作模式

  1. Enforcing:强制执行安全策略,拒绝未经授权的访问
  2. Permissive:仅记录违规行为但不阻止
  3. Disabled:完全禁用 SELinux

常用命令

# 查看SELinux状态
getenforce
sestatus

# 临时更改模式
setenforce 0  # Permissive
setenforce 1  # Enforcing

# 永久更改模式(需编辑/etc/selinux/config)

# 查看文件/目录的安全上下文
ls -Z

# 查看进程的安全上下文
ps -Z

# 修改文件安全上下文
chcon -t httpd_sys_content_t /var/www/html/index.html

# 恢复默认安全上下文
restorecon -v /var/www/html/index.html

常见用途

  1. 限制服务只能访问其所需的资源
  2. 防止提权攻击
  3. 实现多级安全(MLS)系统
  4. 隔离容器和虚拟机

故障排除

当遇到权限问题时: 1. 检查/var/log/audit/audit.log 或使用 ausearch 命令 2. 使用 sealert 分析问题 3. 生成并应用自定义策略模块(使用 audit2allow)

SELinux 虽然增加了安全性,但也带来了复杂性。正确配置后,它可以显著提高系统的安全性。