Linux系统的安全模块Selinux总结

目录

一、起源

二、架构和模式

2.1 获取SELinux运行模式

1、查看SELinux运行模式

2、改变SELinux模式

2.2 获取SELinux运行信息

1、查询策略类型包含的策略项

2、查询策略项的具体内容 

三、SELinux策略

3.1 策略如何生效

3.2 违反策略的日志

3.3 违反策略的解决方法

1、利用chcon更改安全上下文

2、利用setsebool 修改策略

3、利用semanage修改策略

4、利用audit2allow产生自定义的策略文件

一、起源

SELinux全称是Security Enhanced Linux美国国家安全局开发的一个Linux强制访问控制安全模块,2001年发布,默认集成在CentOS、RedHat、Euler、Kylin等系统的2.6及以上的内核里,项目开源地址:SELinux Project · GitHub

CentOS官网也包含该项目的介绍:zh/HowTos/SELinux - CentOS Wiki

二、架构和模式

Linux系统对于权限访问的控制,主要有两种:

  1. 自主访问控制(DAC):允许所有者根据自己的判断来设置对文件和目录的保护。DAC的两种实现形式是UNIX权限位(rwx)和访问控制列表(例如我们常见的文件或目录的可读可写可执行这种就是基于用户的自主访问控制)。
  2. 强制访问控制(MAC):是一种基于标签关系的、由系统强制执行的访问控制机制。系统将敏感标签与创建用来执行程序的所有进程关联起来。MAC策略使用这种标签来进行访问控制决策。

SELinux就是一种基于域-类型模型的强制访问控制安全系统,它可以控制文件系统、文件描述符、文件、目录、端口、消息接口和网络接口的权限。

SELinux是通过LSM(Linux Security Modules)框架加载到内核中的,SELinux也不是唯一的一个用于增强Linux安全的系统(比如还有Ubuntu系统中APPArmor),SELinux作为一个LSM的模块被加载到内核中,只有当访问符合DAC检查后,才会进行判断是否符合SELinux的权限控制。

2.1 获取SELinux运行模式

1、查看SELinux运行模式

可以使用getenforce命令可以查看当前系统的SELinux模式,共有三种,分别是:

Enforcing:强制模式,这种模式下,会对不符合权限的行为进行拦截,拦截行为会记录在/var/log/message日志里;

permissive:警告模式,这种模式下,只会产生告警日志到/var/log/audit/audit.log,不会拦截;

disabled:关闭模式。

2、改变SELinux模式

1、可以使用setenforce 1(Enforcing)/0(permissive) 命令暂时改变SELinux的运行模式(直到系统重启),只有在Enforcing和permissive两种模式转换时不需要系统重启,其他模式的转换都需要重启。

2、可以修改/etc/selinux/config文件中的SELINUX值,改为enforcing/permission/disabled的任一种即可。

2.2 获取SELinux运行信息

使用sestatus可以查看当前系统的SELinux状态,可以显示当前系统selinux的版本和使用的策略集以及当前的selinux模式。

另外配置文件 /etc/selinux/config 也包含了 SELinux 运行策略和模式的信息,通过改变变量 SELINUXTYPE 的值实现,该值有多种可能(targeted, mls,  or minimum),每种都是一系列定义好的规则集,例如:targeted 代表仅针对预制的几种网络服务和访问请求使用 SELinux 保护

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值