其实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
SELinux 手册 SELinux(Security-Enhanced Linux)是一种基于 Linux 操作系统的访问控制机制,旨在提高系统的安全性和稳定性。它通过 Mandatory Access Control(强制访问控制)机制来控制进程和文件之间的交互,以...
操作系统安全是IT领域中至关重要的一个方面,而SELinux(Security-Enhanced Linux)作为一种强制访问控制机制,为Linux系统提供了更为严密的安全保障。本文主要介绍SELinux的工作方式、模式以及如何实现自启动。 ...
**操作系统安全:SELinux配置语言详解** SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)系统,用于提高Linux操作系统的安全性。其核心在于一套详细的策略配置,该配置通过SELinux配置语言来描述,...
**SELinux(Security Enhanced Linux)**是由美国国家安全局(NSA)开发的一种强制访问控制(Mandatory Access Control,MAC)机制,旨在增强Linux操作系统的安全性。传统的Linux安全模型基于自主式访问控制...
SELinux笔记本 介绍 本笔记本应有助于说明: SELinux及其生活目的。 LSM / SELinux体系结构,其支持服务以及如何在GNU / Linux中实现它们。 SELinux网络,虚拟机,X-Windows,PostgreSQL和Apache / SELinux-Plus...
【SELinux 知识点详解】 SELinux,全称为 Security-Enhanced Linux,是由美国国家安全局(NSA)开发的一种强制访问控制(MAC)机制,旨在提高Linux系统的安全性。它通过对系统中的对象(如文件、进程)进行细粒度的...
Linux是一种开源的、基于Unix的操作系统内核,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。Linux内核是操作系统的核心部分,负责管理系统资源、调度进程、处理硬件设备请求等。Linux内核以其稳定性、安全...
知识点一:SELinux简介 SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制(MAC)在Linux中的实现。它提供了一个额外的安全层来限制程序和进程可以访问或执行的操作,以减少系统被攻击的...
Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
Linux是一个开源的操作系统,广泛用于服务器、桌面计算机、移动设备以及嵌入式系统等多种平台。以下是Linux开发可能包含的几个方面: 1. **Linux系统开发**:开发和维护Linux操作系统本身,包括内核开发、系统库、...
SELinux(Security-Enhanced Linux)是一种安全模块,最初由美国国家安全局(NSA)开发,后来贡献给了开源社区。它在Linux内核中提供了强制访问控制(MAC)安全策略,可以对系统中运行的所有程序和进程进行精细控制...
### SELinux详解 #### SELinux概述 SELinux(Security-Enhanced Linux)是一种为Linux内核提供的强制访问控制(MAC)安全扩展。本节将详细解释SELinux的基础知识及其架构。 - **背景**:操作系统访问控制的历史和...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
SELinux(Security-Enhanced Linux)是Linux操作系统中的一种安全模块,它提供了强制访问控制(Mandatory Access Control, MAC),增强了系统的安全性。"selinux-master"这个压缩包可能包含了一个完整的SELinux学习...
SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SELinux 社区。该笔记本的目标是成为有关 SELinux 的最新、最全面的书籍,涵盖 Linux 内核组件、用户空间库和工具、策略工具链...