浅谈SELINUX

浅谈selinux

SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。

##SELINUX概述

关闭SELINUX或没有添加SELINUX的情况下,系统更易遭到入侵并造成极大的影响。因为黑客若利用安全漏洞获取到ROOT权限,则可以随意访问任何文件系统并可以进行任何操作,这是非常可怕的,尤其是对一些保密单位、银行、企业等。
******SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中。SELinux定义了系统中每个【用户】、【进程】、【应用】和【文件】的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。
****** Linux中一切皆文件,由用户、组、权限控制访问。而在SELinux中一切皆对象(object),由存放在inde表的扩展属性域的安全元素所控制其访问。

##SELINUX查看及相关配置
1.vim /etc/selinux/config/ 即查看SELINUX配置文件
](https://img-blog.csdnimg.cn/20181220174449322.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA2NDA1Ng==,size_16,color_FFFFFF,t_70)
SELINUX共有三种模式,如图的高亮部分
(1) enforcing : 强制模式 。强制(一定会生效)违反策略的行动都会被禁止.
(2) permissive:警告模式。 允许进行违反策略的操作,但所有违反selinux的操作都会被记录下来
(3) disable: 关闭模式。 禁用SELINUX,类似于没有selinux功能的系统
可以通过直接修改配置文件的方式来修改SELINUX的值以达到目的,也可以在命令行修改SELINUX,但是命令行只能修改前两种selinux的值,若要禁用SELINUX,还需要修改配置文件。
2. 命令行中修改SELINUX
可以通过getenforce命令获取当前SELINUX的值(要实现关闭模式请修改配置文件),我获取到的SELINUX的值为enforcing。
再通过setenforce 0 来修改selinux为警告模式,可以再通过getenforce查看,此时selinux的值已经变为permissive,即警告模式。
浅谈SELINUX
3.通过ls -Z 命令来查看selinux标签
浅谈SELINUX
system_u:即system_u表示系统进程,通过用户可以确认身份类型,一般搭配角色使用,user_u表示普通用户无特权用户。
object_r:即表示文件目录的角色,system_r表示系统进程的角色
admin_home:文件和进程都有一个类型,SElinux依据类型的相关组合来限制存取权限。
selinux给系统中每个文件和进程都分配了SELINUX标签,若标签和用户、进程、文件等符合,则可以执行相关操作。另,移动文件的标签不变,复制文件的标签会发生改变。
4.修改文件的SELinux标签的命令:chcon 和 restorecon

chcon 命令

chcon - ******change file SELinux security context修改文件安全属性
更改文件的selinux安全上下文件
用法:
chcon [option]… context /path/to/file… #直接对指定的文件写完整的安全上下文字段
chcon [option]… --reference=RFILE FILE… #参考RFILE的上下文修改FILE的上下文
-R :如果是目录,将同时递归设置该目录下所有文件
restorecon 命令
restorecon ********- restore file(s) default SELinux security contexts.
恢复文件或目录默认的SELinux安全上下文,可以通过-R递归,即实现某个目录下所有文件标签的恢复。