其实SELinux是在进行程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也是能够控制网络服务能否访问系统资源的一道关卡!
传统的文件权限与帐号关系:自主访问控制 DAC。而以策略指定特定程序读取特定文件:强制访问控制,MAC。
DAC的困扰是当用户取得程序后,他可以通过这个进程与自己默认权限来处理他自己的文件资源,万一这个用户对linux不熟,很可能会有资源误用的问题产生。SELinux针对这个问题导入了强制访问控制(Mandatory Access Control)的方法。MAC可以针对特定的进程与特定的文件资源来进行权限的控制!也就是说,即使你是root,在使用不同的进程的时候,你所能取得的权限不一定是root,而要看当时该进程的设置而定。如此一来,针对控制的主体变成了进程而不是用户。
两个主要的策略(Policy)为:
× targeted:针对网络服务限制较多,针对本机限制较少,是默认策略。
× strict:完整的SELinux限制,限制方面较为严格。
建议使用默认的targeted就可以了。
在SELinux中,主体也就是进程想要取得目标也就是文件系统的资源访问权限,要经历三道关卡:
1,主体程序必须要通过SELinux策略内的规则放行。
2,与目标资源进行安全上下文的比较,比较成功才能进行下一步。
3,最终要得看文件系统的rwx权限设置,符合的才能最终访问资源。
安全上下文同时存在于主体进程和目标文件资源中,这个就相当于SELinux的rwx,需要每个文件和进程都设置的,懂否。进程的安全上下文放在内存中,而文件的安全上下文放在inode中。
查看安全上下文方法:
# ls -Z
drwx——. yidao yidao unconfined_u:object_r:user_home_t:s0 books
安全上下文主要用冒号分为三个字段:
身份标识(Identify):root表示root的帐号身份,system_u表示系统程序方面的标识,user_u表示一般用户相关的身份。
角色(Role):判断这个数据属于程序、文件资源还是代表用户,object_r代表的是文件或目录,system_r代表的进程
类型(Type):这个最重要,在文件资源中称为Type,而在进程中称为domain,domain需要与type搭配,则该程序才能顺利的读取文件资源。
====SELinux启动、关闭和查看====
目前SELinux支持三种模式:
enforcing:强制模式,代表SELinux正在运行中,且已经正确开始限制domain/type了。
permissive:宽容模式,代表SELinux正在运行中,不过仅会有警告信息并不会实际限制domain/type的访问。
disabled:关闭,SELinux并没有实际运行。
查看目前的SELinux的模式:
1
2
|
[yidao@localhost ~]$ getenforce Disabled <==显示目前的状态为关闭 |
查看SELinux的策略(Policy):
# sestatus [-vb]
-v:检查列于/etc/sestatus.conf内的文件与程序的安全上下文内容
-b:将目前策略的规则布尔值列出
SELinux的配置文件为:/etc/selinux/config,启动和关闭都可以直接编辑这个文件,里面注释写的很清楚,不用解释了。
切换enforcing和permissive模式:
# setenforce [0|1]
0:转成permissive宽容模式
1:转成Enforcing强制模式
安全上下文设置方法:
# chcon [-R] [-t type] [-u user] [-r role] 文件
# chcon [-R] –reference=范例文件 文件
-R:连同子目录递归修改
-t:后接安全上下文的类型type字段!例如httpd_sys_content_t
-u:后接身份标识,例如system_u
-r:后接角色,例如system_r
–reference=范例文件,不解释了。
# chcon -t httpd_sys_content_t /var/www/html/index.html
# ll -Z /var/www/html/index.html
上面的chcon是通过直接指定的方式来处理安全上下文的类型数据,那我们知道其实系统默认的目录都有特殊的SELinux的安全上下文,下面的命令可以使用默认的安全上下文来还原
# restorecon [-Rv] 文件或目录
-R:连同子目录递归设置
-v:过程显示出来
SELinux最好启动两个服务来记录日志情况:
1,将错误信息写入/var/log/messages
# chkconfig –list setroubleshoot
# chkconfig setroubleshoot on
2,将详细数据写入/var/log/audit/audit.log
# chkconfig –list auditd
# chkconfig auditd on
然后这样分析日志文件:
# audit2why < /var/log/audit/audit.log
============================END==========================
本人博客已搬家,新地址为:http://yidao620c.github.io/
相关推荐
操作系统安全:SELinux 客体类别.xlsx
2.5: SELinux 、 系统故障修复 、 防火墙策略管理 、 服务管理.docx
selinux自启动 SELinux的工作方式 SELinux的工作方式 SELinux是在进行程序、文件等权限设置一句的一个内核模块。 传统的DAC模式 我们知道在Linux下面的ugo权限模式,即通过rwx权限对用户进行访问控制。这也可以称...
SELinux笔记本 介绍 本笔记本应有助于说明: SELinux及其生活目的。 LSM / SELinux体系结构,其支持服务以及如何在GNU / Linux中实现它们。 SELinux网络,虚拟机,X-Windows,PostgreSQL和Apache / SELinux-Plus...
Selinux的简介;SELinux(security enhanced Linux)安全强化的Linux ;传统的文件权限与账号关系:自主式访问控制,DAC ;以政策规则定制特定进程读取特定文件:委任式访问控制,MAC ;Selinux简介;Selinux简介;Selinux...
selinux配置语言 SELinux策略配置语言 SELinux策略配置语言 策略是一套指导SELinux安全引擎计算安全决策的规则,它定义了文件客体的类型、进程的域、使用限制进入域的角色及访问许可的规则表达式等。策略的源代码用...
实验一:selinux策略配置 一、实验目的 掌握Selinux的命令 掌握Selinux复制和移动文件 了解chcon命令的使用 掌握Selinux布尔值的查看修改 了解Selinux应用和禁用 二、实验内容与步骤 Selinux命令 SELinux的模式 1.1 ...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SELinux 社区。该笔记本的目标是成为有关 SELinux 的最新、最全面的书籍,涵盖 Linux 内核组件、用户空间库和工具、策略工具链...
selinux入门初探 入门级 希望对大家能有帮助
SELinux: NSA's Open Source Security Enhanced Linux By Bill McCarty Publisher: O'Reilly 2004 | 256 Pages | ISBN: 0596007167 | CHM | 1 MB
logstash-selinux-审计selinux audit.log 的 logstash 配置(grok 模式和 logstash.conf)
本文档是详细描述了Android selinux的相关知识。 包括:selinux的基础架构,和应用的技巧等基础知识,是selinux入门的学习资料
SELinux允许的该模块在引导过程中将SELinux切换到许可模式。 此模块有意降低手机的安全性设置。 请不要使用它,如果您不知道自己在做什么。 如果您的内核始终使用强制编译配置编译该模块,则该模块将无法工作,例如...
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 或者编辑 vi /etc/selinux/config 把SELINUX=enforcing 改为: SELINUX=disabled 重启电脑 或者 用命令立刻生效: # setenforce 0