SELinux

阅读数:53 评论数:0

跳转到新版页面

分类

Linux

正文

一、概述

SELinux(Security-Enhanced Linux)是一个强制访问控制(MAC)安全架构,它是内核的一部分,由美国国家安全局(NSA)开发,并在社区的帮助下维护。SELinux 提供了一种机制来支持访问控制安全策略,并且可以用来限制程序只能访问它们需要的资源,从而减少或防止安全漏洞被利用。

SELinux 通过为系统上的每个资源(如文件、设备、网络端口等)分配标签(通常称为"上下文")来工作。然后,它使用这些标签来决定各种主体(如用户、进程等)是否可以访问这些资源。SELinux 的策略非常灵活,可以配置为允许或拒绝几乎任何类型的访问。

1、三种模式

enforcing 在强制模式下,SELinux 强制执行其策略,并且阻止非授权的行为。违反策略的尝试将被拒绝,并记录到日志中。
permissive 在许可模式下,SELinux 不会强制实施策略,但会记录策略违规行为。这种模式对于调试和日志审计很有用,因为它不会实际阻止任何行为,但会显示哪些行为将在强制模式下被阻止。
disabled  在禁用模式下,SELinux 完全关闭,不会强制任何策略,也不会记录任何信息。

2、常用命令

getenforce 显示当前 SELinux 的模式。
setenforce 切换 SELinux 的模式。例如,使用 setenforce 0 切换到许可模式,使用 setenforce 1 切换到强制模式。
sestatus 提供 SELinux 状态的详细概述。
chcon 更改文件或目录的上下文。
restorecon 将文件或目录的上下文恢复为默认值。
semanage 管理 SELinux 策略的工具。

二、启动、关闭与查看

目前SELinux支持三种模式,分别

(1)enforcing:强制模式,代表正在运行,且已正确开始限制doman/type了

(2)permissive:宽容模式,代表正在运行,不过仅会有警告信息并不会实际限制domain/type的访问

(3)disabled:关闭

#获取当前模式
getenforce

#列出SELinux的策略
sestatus [-vb]
-v:检查列于/etc/sestatus.conf内的文件与程序的安全上下文内容
-b:将目前策略的规则布尔值列出


setenforce [0|1]
0:转成permissive
1:转成enforcing

也可以直接修改/etc/selinux/config文件,如果由enforcing或permissive改变是disable或反过来,需要重启。

三、重设SELinux安全上下文

(1)chcon

chcon [-R] [-t type] [-u user] [-r role] 文件
chcon [-R] -reference=范例文件  文件
-R:连同该目录下的子目录也同时修改
-reference:拿某个文件当范例来修改后续的文件

(2)restorecon

使用默认的上下文修复。

restorecon [-Rv]  文件或目录
-R:连同子目录也修改
-v:显示过程

四、策略与规则

(1)seinfo

seinfo [-Atrub]
-A:列出SELinux的所有规则 
-t:列出所有类型种类
-r:列出所有角色种类
-u:列出氖身份标识种类
-b:列出所有规则种类(布尔值)

(2)sesearch

sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]
-a:列出该类型或布尔值的所有相关信息
-t:后面还要接类型
-b:后面接布尔值的规则 

(3)布尔值的查询与修改

getsebool [-a] [布尔值条款]
-a:列出目前系统上面的所有布尔值条款为开启或关闭
setsebool [-P] 布尔值=[0|1]
-P:直接将值写入配置文件,

(4)默认目录的安全上下文查询与修改

semanage {login|user|port|interface|fcontext|translation} -l
semanage fcontext -{a|d|m} [frst] file_spec
fcontext:主要用在安全上下文方面的用途,
-l:查询
-a:增加
-m:修改
-d:删除



相关推荐

一、概述 1、为什么Linus不使用GPLv3 在 PC 上,只要你得到了某个程序的源代码,就可以自行编译生成二进制程序,然后替换掉原有的二进制程序,你的程序自由很容易得到保证。然而 iPod、iPh

说明:这种方式只是用于方便阅读代码,因为可以在源代间快速索引跳跃。但是最后可能会有一些warning,可以不必关心,如果是强迫症,可以使用下面这种方式来去掉。

一、概述 在Linux系统中,/usr/bin和/usr/local/bin是两个常见的目录,用于存放可执行文件(二进制文件)。 很多应用都安装在/usr/local下面,先看一下automake工具

  一、概述 vmstat命令是最常见的Linux/Unix监控工具,可以监控给定时间间隔服务器的CPU使用率、内存使用、IO情况。相比top命令,可以查看到整个机器的CPU、内存、IO的使用情况,而

一、概述 sar,System Activity Reporter。是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁

一、简介 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 二、使用方法 1、基本语法  awk '条件类型1 {动作1} 条件类型2{动作2} ...

一、概述 列出目标目录中所有的子目录和文件。 二、 语法 ls [选项] [目录名] -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -A 同-a,但不列出“.”(表示当前目录)

一、概述 cd全称是change directory,用于切换当前工作目录。 注意的是,cd命令是一个内建命令,它是由 shell 提供的。因此,不同的 shell 可能会有一些差异,但基本的用法和功

一、概述 全称为print working directory,查看”当前工作目录“的完整路径,一般情况下不带任何参数 二、语法 pwd [选项] -L 即logical,逻辑路径 -P 即

一、概述 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录