什么是SELinux
selinux学习理解
selinux学习理解一、什么是selinux。
selinux全称是security enhanced linux,安全强化linux,是MAC (mandatory access control,强制访问控制系统)的一个实现,目的在于明确的知名某个程序可以访问哪些资源(程序,端口)。
它的用户在于防范0—DAY攻击(利用尚未公开的漏洞实现攻击),所以它不是防火墙和ACL的替代品,功能也不重复。
举例来说,系统上Apache被发现存在一个漏洞,使得远程用户可以访问系统上的敏感文件(比如/etc/passwd),且修复该漏洞的补丁尚未发布,此时selinux可以起到弥补漏洞的方法。
因为/etc/passwd 不具有apache的访问标签,所以Apache对于/etc/passwd的访问会被selinux阻止。
相比其他强制访问系统,selinux有如下访问优势:1.控制策略是可以查询,而非程序比可见的。
2.可以热更改策略,无需或停止服务。
3.可以从程序初始化、继承、执行三个方面,使用策略进行控制。
4.控制范围广,包括:文件系统,目录,文件,文件启动描述符,端口,消息接口,网络接口。
二、了解和配置selinux。
1、获取当前selinux运行状态getenforce:可能返回三种结果Enforcing:记录报警且阻止可疑行为。
Permissive:记录告警,不阻止可以行为。
Disable:关闭selinux。
默认是Enforcing2、改变selinux状态。
setenforce 1|0 1代表Enforcing,0代表Permissive。
此时不需要重启系统就可以实现。
要永久改变selinxu的状态,在/etc/sysconfig/selinux实现。
当从disable切换到enforcing或permissive时,要重启系统并为整个文件系统重新创建安全标签。
3、selinux运行策略。
配置文件/etc/sysconfig/seilnux还包含了selinux运行策略的信息,通过改变SELINUXTYPE值实现,该值有两种可能:targeted代表仅针对预制的几种网络服务和访问请求都要使用selinux。
selinux基本工作原理
selinux基本工作原理SELinux(Security-Enhanced Linux)是一个在Linux内核中实现的强制访问控制(MAC)系统。
其基本工作原理是通过在系统中强制执行安全策略,对进程的访问和操作进行更为细致和精确的控制,以增强系统的安全性。
以下是SELinux的基本工作原理:1.策略定义:SELinux的工作始于一个称为"策略"的定义。
策略规定了哪些主体(如进程、用户)有权执行哪些操作(如读、写、执行),以及在哪些对象(如文件、目录)上执行这些操作。
策略是由安全策略管理器生成和维护的。
2.标签:SELinux为系统上的每个对象和主体分配唯一的安全标签。
这些标签包含了有关对象和主体的信息,如它们的角色、类型和安全上下文。
标签的引入使得SELinux能够在更细粒度上进行访问控制。
3.强制访问控制:SELinux通过在系统中实施强制访问控制来执行定义的策略。
传统的Linux访问控制是基于自愿访问控制(DAC),而SELinux引入了强制访问控制(MAC)。
这意味着即使用户具有访问某个资源的权限,如果SELinux规则不允许,则该用户也无法访问。
4.安全上下文:SELinux使用安全上下文来定义对象和主体的标签。
安全上下文包括类型(type)、角色(role)和用户(user)。
这些信息在策略中定义,并通过标签与对象和主体相关联。
5.审计日志:SELinux还提供了审计功能,可用于记录系统上发生的安全事件。
审计日志记录包含有关SELinux决策的信息,以及与安全策略违规相关的详细信息。
总体而言,SELinux通过实施强制访问控制和基于安全标签的访问规则,提供了比传统自愿访问控制更为细致和强大的安全性。
这有助于防范各种攻击和提高系统的整体安全性。
selinux 三权分立机制
SELinux(Security-Enhanced Linux)是一种安全增强的Linux操作系统,它在操作系统内核层面提供了强大的安全机制。
与三权分立机制(Separation of Powers)相比,SELinux和三权分立并不直接相关,因为它们解决的是不同领域的问题。
三权分立机制是指行政、立法和司法三个国家权力机构相互制约和平衡的原则。
这一原则旨在确保国家权力不集中于单一机构,以保护公民的权益,并维护社会的稳定和民主。
三权分立机制通常用于政治和法律领域,是现代民主国家的重要基石。
而SELinux是一种安全性增强的机制,它通过在操作系统内核中实施强制访问控制(MAC)来限制进程的权限,以提供更高的系统安全性。
SELinux确保系统资源只能被授权的实体所访问,并防止恶意软件或攻击者利用漏洞进行未经授权的操作。
它提供了更细粒度的权限控制,可以根据用户角色和对象类型来定义访问规则。
虽然SELinux和三权分立机制不是相同的概念,但它们都旨在维护系统和社会的安全与稳定。
SELinux可以在操作系统层面提供额外的安全保护,而三权分立机制则在政治和法律层面确保权力的平衡和限制。
selinux详解及配置文件
selinux详解及配置⽂件selinux详解selinux 的全称是Security Enhance Linux,就是安全加强的Linux。
在Selinux之前root账号能够任意的访问所有⽂档和服务;如果某个⽂件设为777,那么任何⽤户都可以访问甚⾄删除。
这种⽅式称为DAC(主动访问机制),很不安全。
DAC⾃主访问控制:⽤户根据⾃⼰的⽂件权限来决定对⽂件的操作,也就是依据⽂件的own,group,other/r,w,x 权限进⾏限制。
Root有最⾼权限⽆法限制。
r,w,x权限划分太粗糙。
⽆法针对不同的进程实现限制。
Selinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有⼀个安全标签(即selinux上下⽂)进⾏区分,只有对应的标签才能允许访问,否则即使权限是777,也是不能访问的。
在selinux中,访问控制属性叫做安全上下⽂,所有客体(⽂件、进程间通讯通道、套接字、⽹络主机等)和主体(进程)都有与其关联的安全上下⽂,⼀个安全上下⽂由三部分组成:⽤户(u)、⾓⾊(r)、和类型(t)标识符。
但我们最关注的是第三部分当程序访问资源时,主体程序必须要通过selinux策略内的规则放⾏后,就可以与⽬标资源进⾏安全上下⽂的⽐对,若⽐对失败则⽆法存取⽬标,若⽐对成功则可以开始存取⽬标,最终能否存取⽬标还要与⽂件系统的rwx权限的设定有关,所以启⽤了selinux后出现权限不符的情况时,你就得⼀步⼀步分析可能出现的问题了。
1.selinux状态查看与配置:selinux的配置⽂件位置:/etc/selinux/config,它还有个链接在/etc/sysconfig/selinux.使⽤config⽂件来配置selinux(通过配置⽂件修改selinux的状态属于永久修改,要重启系统才⽣效)[root@localhost ~]# ls /etc/sysconfig/selinux -llrwxrwxrwx. 1 root root 17 Jan 10 19:48 /etc/sysconfig/selinux -> ../selinux/config(1)配置⽂件[root@make_blog ~]# cat /etc/sysconfig/selinux# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three two values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targetedselinux=enforcing#此项定义selinux状态#enforcing-是强制模式系统,它受selinux保护。
SELinux之一:SELinux基本概念及基本配置旺旺知识库
SELinux之一:SELinux基本概念及基本配置旺旺知识库SELinux从出现至今,已经走过将近13年历史,然而在Linux相关QQ技术群或者Linux相关论坛,经常有人遇到问题问题都归咎与SELinux,如httpd各项配置都正常,但客户就是无法访问;又比如vsftpd配置均正常,但客户端访问提示无法转换家目录。
于是乎很多人都对SELinux有了极大的偏见,认为SELinux带来的似乎只有麻烦,于是很多人选择在安装系统第一件事就是将SELinux设置为禁用。
不过随着日益增长的 0-day 安全漏洞,SELinux在很多时候给了我们关键的保障。
什么是SELinux?SELinux 全称 Security Enhanced Linux (安全强化 Linux),是美国国家安全局2000年以 GNU GPL 发布,是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。
强制访问控制系统的用途在于增强系统抵御 0-Day 攻击(利用尚未公开的漏洞实现的攻击行为)的能力。
所以它不是网络防火墙或 ACL 的替代品,在用途上也不重复。
在目前的大多数发行版中,已经默认在内核集成了SELinux。
举例来说,系统上的Apache 被发现存在一个漏洞,使得某远程用户可以访问系统上的敏感文件(比如 /etc/passwd 来获得系统已存在用户) ,而修复该安全漏洞的Apache 更新补丁尚未释出。
此时SELinux 可以起到弥补该漏洞的缓和方案。
因为/etc/passwd 不具有Apache 的访问标签,所以Apache 对于/etc/passwd 的访问会被SELinux 阻止。
相比其他强制性访问控制系统,SELinux 有如下优势:•控制策略是可查询而非程序不可见的。
•可以热更改策略而无需重启或者停止服务。
•可以从进程初始化、继承和程序执行三个方面通过策略进行控制。
selinux_enforcing 内核符号
selinux_enforcing 内核符号SELinux(Security-Enhanced Linux)是一种在Linux内核中实现的安全机制,它通过强制访问控制(MAC)来限制进程的权限,从而提供更高的系统安全性。
在SELinux中,内核符号`selinux_enforcing`是一个用于控制SELinux强制模式的标志。
SELinux有三种模式:强制模式(enforcing)、警告模式(permissive)和禁用模式(disabled)。
在强制模式下,SELinux 会严格限制进程的权限,只允许其执行经过授权的操作。
在警告模式下,SELinux会记录并报告违反安全策略的操作,但不会阻止它们。
在禁用模式下,SELinux完全关闭,不对进程进行任何限制。
`selinux_enforcing`是一个内核符号,用于表示当前SELinux 的模式。
它的值为1时表示SELinux处于强制模式,为0时表示SELinux处于警告模式或禁用模式。
内核使用这个符号来判断是否需要对进程进行强制访问控制。
当`selinux_enforcing`为1时,内核会根据SELinux的策略对进程进行访问控制,只允许经过授权的操作。
如果进程尝试执行未经授权的操作,内核会拒绝该操作并记录相关信息。
这种模式下,SELinux提供了更高的系统安全性。
当`selinux_enforcing`为0时,内核不会进行强制访问控制,而是将违反安全策略的操作记录下来。
这种模式下,SELinux仍然可以帮助管理员分析系统安全问题,但不会限制进程的权限,因此可能会降低系统的安全性。
要修改`selinux_enforcing`的值,可以通过修改内核参数或者使用SELinux管理工具来实现。
但需要注意的是,修改这个值可能会对系统的安全性产生重大影响,因此在进行修改之前需要仔细评估系统的安全需求和风险。
总结来说,`selinux_enforcing`是一个用于控制SELinux模式的内核符号。
selinux原理
SELinux 是一种强制访问控制(MAC)系统,是Linux 内核的一部分,它通过将安全上下文标签应用到各种资源(如进程、文件、套接字等)来提供更细粒度的安全策略。
它的主要思想是建立一个强制访问控制策略,即只允许明确允许的操作,而禁止所有其他操作,以保护系统和数据安全。
SELinux 的工作原理可以分为以下几个方面:1. 标记系统:SELinux 会为每个对象(如进程、文件、套接字等)提供一个安全上下文标签,该标签包含对象的身份信息、权限信息和其他策略信息。
2. 策略引擎:SElinux 提供了一个策略引擎,用于根据安全上下文标签规则执行访问控制决策,以确定哪些操作是允许的,哪些是禁止的。
3. 访问控制决策:当某个进程对某个对象进行操作时,SELinux 会根据当前操作的安全上下文标签和对象的安全上下文标签,去策略引擎里查找匹配的规则,如果匹配成功则允许操作,否则拒绝访问。
4. 日志记录:SELinux 会将所有访问控制决策信息记录到系统日志中,以便后期审计和分析。
除了上面提到的,SELinux 还有一些其他的原理和特点:1. 强制访问控制(MAC):SELinux 强制访问控制是指只有在用户被授权访问某个资源的情况下才允许访问,而普通的权限控制是基于用户自己的限制和许可来控制访问。
2. 安全上下文:SELinux 使用安全上下文标签来标识每个进程和文件的身份信息、权限信息和其他策略信息。
这些标签是由系统管理员和SELinux 策略引擎共同定义的。
3. 多层安全:SELinux 支持多层安全,可以为不同的用户和应用程序分配不同的安全级别,确保系统各部分之间的完全隔离,并使其更加安全可靠。
4. 可定制性:SELinux 的策略引擎是高度可定制的,可以针对不同的应用场景进行设置,以满足不同的安全需求。
SELinux 是一个复杂而且功能强大的安全模块,它能够在Linux 系统中提供强制访问控制和更细粒度的安全保障,适合需要高度安全性保护的系统和应用程序。
操作系统安全:selinux简介
定而定。这样,我们对控制的主体变成了进程而不是使用者,此外,这个主体进程也不能任意使用系
统文件资源,因为每个文件资源也有针对该主体进程设定可取用的权限.
SELinux 也提供一些预设的政策(policy),并在该政策内提供多个(rule)
Selinux简介
SELinux是通过MAC的方式来控管进程,他控制的主体是进程,而目标则该进程能否读取的文件资源。
Selinux的简介
Selinux简介
1 SELinux(security enhanced Linux)安全强化的Linux
SELinux 是由美国国家安全局(NSA)开发,我们知道所有的系统资源都是透过进程 来进行存取的,那么/var/www/html/如果设定为777,代表所有进程均可对该目录进行存 取,为了控制权限与进程之间的问题,SELinux是在进行进程、文件等细部权限设定依据一 个核心模块,由于启动网络服务也是进程,因此也刚好也能控制网路服务能否存存取系统 资源的一道关卡。
Selinux简介
3
以政策规则定制特定进程读取特定文件:委任式访问控制,MAC
为了避免DAC容易发生的问题,因此SELinux导入了委任式访问控制(mandatory access
control)的方法,委任式访问控制控制可以针对特定的进程与特定的文件资源来进行权限的控管, 即
使你是root,那么在使用不同的进程时,你所取得的权限并不一定时root,而得要看当时该进程的设
主体能不能存取目标除了政策指定外,主体与目标的安全性 本文必须一致才能顺利存取,SELinux重点在保护进程读取文件系 统的权限,主体进程必须要通过SELinux政策内的规则放行后,就 可以与目标资源进行安全性本文的对比,若对比失败,则无法存 取文件,若对比成功则可以开始存取目标
SELinux是什么
SELinux是什么SELinux是什么导读:SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是Linux® 上最杰出的新安全子系统。
NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
概述SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。
对于目前可用的Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在20 年的MAC 研究基础上建立的。
SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。
大部分使用 SELinux 的.人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian 或 Gentoo。
它们都是在内核中启用SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。
SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
众所周知,标准的UNIX安全模型是"任意的访问控制"DAC。
就是说,任何程序对其资源享有完全的控制权。
假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他!而MAC情况下的安全策略完全控制着对所有资源的访问。
SELinux概述
SELinux使用了分级得强制访问控制,就是Linux内核得重要安全措施。
SELinux得安全策略工具可从下载。
本章分析了SELinux得安全机制,介绍了安全策略配置语言、内核策略库得结构,简述了SELinux内核模块得实现,还分析了用户空间得客体管理器。
3、1 SELinux概述SELinux就是安全增强了得Linux,就是Securityenhanced Linux得简写,SELinux改进了对内核对象与服务得访问控制,改进了对进程初始化、继承与程序执行得访问控制,改进了对文件系统、目录、文件与打开文件描述得访问控制,还改进了对端口、信息与网络接口得访问控制。
早期得Linux内核只提供了经典得UNIX自主访问控制(root用户,用户ID,模式位安全机制),以及部分地支持了POSIX、1e标准草案中得capabilities安全机制,这对于Linux系统得安全性就是不够得,NSA(the National Security Agency)与SCC(Secure puting Corporation)共同开发了强大得基于类型加强(Type Enforcement)得强制访问控制(mandatory access control,简称MAC)机制,提供了动态得安全策略机制。
Linux内核增加了一个通用得安全访问控制框架,它通过hook函数来控制程序得执行,这个框架就就是Linux安全模块(LSM),在LSM上可使用各种安全控制机制(如:Flask机制)来实现对程序得控制。
SELinux应用了类型加强(Type Enforcement,TE)与基于角色访问控制(rolebased access control,RBAC)技术。
TE给每个主体(进程)与系统中得客体定义了一个类型,这些类型定义在SELinux得安全策略文件中,以安全标签形式存放在文件本身得扩展属性(extended attributes,简称xattrs)里。
selinux机制原理_概述及解释说明
selinux机制原理概述及解释说明1. 引言:1.1 概述:SELinux(Security-Enhanced Linux)是一种用于Linux操作系统的强制访问控制(MAC)安全机制,它通过为每个对象和主体分配唯一的标签,并使用这些标签来管理对系统资源的访问权限,从而提供了更高级别的系统安全性。
SELinux广泛应用于各种Linux发行版中,并成为许多关键部署环境中不可或缺的安全功能。
1.2 文章结构:本文首先对SELinux机制进行概述,包括其基本原理和概念。
然后介绍了安全策略与访问控制在SELinux中扮演的角色,并阐述了标签和标记机制在实现安全性方面的重要性。
接下来,我们将深入了解SELinux的工作原理,包括类型强制访问控制(TE)机制、强制访问控制(MAC)模型与规则引擎等方面。
此外,我们还会提供一些利用SELinux保护系统安全的实例和示例。
在完成对SELinux机制原理和工作原理的详细介绍后,我们将说明如何与Linux 内核集成以及各种实现方式。
这部分将涵盖SELinux在Linux内核中位置、关键组件的介绍,以及如何解决不同发行版和版本之间的差异。
最后,我们会提供一些开启、关闭或配置SELinux策略的方法和技巧指南。
1.3 目的:本文旨在为读者深入了解SELinux机制原理提供一个全面而清晰的解释。
通过详细阐述SELinux的基本概念、工作原理、与Linux内核的集成方式等内容,读者可以更好地理解SELinux对系统安全性的重要性和实际应用。
同时,本文也将帮助读者掌握使用和配置SELinux策略的方法,进一步提升系统的安全性。
2. SELinux机制原理:2.1 SELinux概述:SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)机制,旨在增强Linux操作系统的安全性。
它通过强制策略来控制进程、文件和网络资源的访问,以及保护系统免受恶意软件和未经授权的访问。
Linux之SELinux的开启、关闭。
Linux之SELinux的开启、关闭。
SELinux简介SELinux 是Security-Enhanced Linux的简写,意指安全增强的linux。
它不是⽤来防⽕墙设置的。
但它对Linux系统的安全很有⽤。
Linux内核(Kernel)从2.6就有了SELinux。
SELinux是内置在许多GNU / Linux发⾏版中的主要强制访问控制(MAC)机制。
SELinux最初是由犹他州⼤学Flux团队和美国国防部开发的Flux⾼级安全内核(FLASK)。
美国国家安全局加强了这⼀发展,并将其作为开源软件发布。
SELinux的历史可以在Flux和NSA⽹站上找到。
什么是SElinux?SELinux是Linux的安全增强,它允许⽤户和管理员对访问控制进⾏更多的控制。
访问权限可以限制在哪些⽤户和应⽤程序可以访问哪些资源这样的变量上(由变量控制访问权限)。
这些资源可以采⽤⽂件的形式。
⽤户和⽤户运⾏的应⽤程序可以修改标准的Linux访问控制,例如⽂件模式(-rwxr-xr-x)。
相反,SELinux访问控制由加载在系统上的策略决定,粗⼼的⽤户或⾏为不当的应⽤程序可能不会更改该策略。
SELinux还为访问控制添加了更细的粒度。
例如,SELinux不只是能够指定谁可以读、写或执⾏⽂件,⽽是允许您指定谁可以取消链接、只追加、移动⽂件等等。
SELinux还允许您指定对除⽂件以外的许多资源的访问,例如⽹络资源和进程间通信(IPC)。
Security-Enhanced Linux的缩写,是⼀种⾮常安全的linux模式。
基本上⽤户得不到什么权限在这个系统下⾯。
不过你可以在这个系统下⾯写⼀些配置⽂件来管理这些⽤户可以做什么或者不能⼲什么。
SELinux 的作⽤及权限管理机制:SELinux 主要作⽤就是最⼤限度地减⼩系统中服务进程可访问的资源(最⼩权限原则)。
SELinux是做什么的?SELinux控制应⽤程序和资源之间的访问。
selinux安全机制指标
selinux安全机制指标【实用版】目录1.SELinux 概述2.SELinux 的安全机制3.SELinux 的安全上下文4.SELinux 的应用场景5.SELinux 的优缺点正文1.SELinux 概述SELinux(Security-Enhanced Linux)是一个安全增强型的 Linux 系统,它是一个 Linux 内核模块和一个安全子系统。
SELinux 的主要作用是最大限度地减小系统中服务进程可访问的资源,遵循最小权限原则,以提高系统的安全性。
2.SELinux 的安全机制SELinux 有三种工作模式:enforcing、permissive 和 disabled。
enforcing 模式是强制模式,如果进程违反 SELinux 规则,会被阻止并记录到日志中。
permissive 模式是宽松模式,如果进程违反 SELinux 规则,只会记录到日志中,一般用于调试。
disabled 模式是关闭 SELinux 模式,不进行任何安全检查。
3.SELinux 的安全上下文在 SELinux 中,所有的文件都被赋予一个类型(type),进程则被称为主体(subject)。
主体只能访问拥有相同类型的文件,这就构成了SELinux 的安全上下文。
安全上下文可以防止进程访问未授权的资源,从而提高系统的安全性。
4.SELinux 的应用场景SELinux 主要应用于服务器操作系统、云计算平台、容器等领域。
在这些场景中,SELinux 可以有效地限制进程的权限,防止恶意攻击,保障系统的安全性。
5.SELinux 的优缺点SELinux 的优点有:强制实施最小权限原则,降低系统被攻击的风险;日志记录功能,有助于追踪和检测潜在的安全问题。
缺点有:配置复杂,学习成本较高;可能影响系统性能。
综上所述,SELinux 作为一种安全增强型的 Linux 系统,通过实施最小权限原则和安全上下文,有效地提高了系统的安全性。
SELinux介绍
SELinux介绍一、SELinux简介RedHat Enterprise Linux AS 3.0/4.0中安全方面的最大变化就在于集成了SELinux的支持。
SELinux的全称是Security-Enhanced Linux,是由美国国家安全局NSA开发的访问控制体制。
SELinux可以最大限度地保证Linux系统的安全。
至于它的作用到底有多大,举一个简单的例子可以证明:没有SELinux保护的Linux的安全级别和Windows一样,是C2级,但经过保护SELinux 保护的Linux,安全级别则可以达到B1级。
如:我们把/tmp目录下的所有文件和目录权限设置为0777,这样在没有SELinux保护的情况下,任何人都可以访问/tmp 下的内容。
而在SELinux环境下,尽管目录权限允许你访问/tmp下的内容,但SELinux的安全策略会继续检查你是否可以访问。
NSA推出的SELinux安全体系结构称为 Flask,在这一结构中,安全性策略的逻辑和通用接口一起封装在与操作系统独立的组件中,这个单独的组件称为安全服务器。
SELinux的安全服务器定义了一种混合的安全性策略,由类型实施 (TE)、基于角色的访问控制 (RBAC) 和多级安全(MLS) 组成。
通过替换安全服务器,可以支持不同的安全策略。
SELinux使用策略配置语言定义安全策略,然后通过checkpolicy 编译成二进制形式,存储在文件(如目标策略/etc/selinux/targeted/policy/policy.18)中,在内核引导时读到内核空间。
这意味着安全性策略在每次系统引导时都会有所不同。
SELinux的策略分为两种,一个是目标(targeted)策略,另一个是严格(strict)策略。
有限策略仅针对部分系统网络服务和进程执行SELinux策略,而严厉策略是执行全局的NSA 默认策略。
有限策略模式下,9个(可能更多)系统服务受SELinux监控,几乎所有的网络服务都受控。
linux中selinux的作用
linux中selinux的作用Linux中的SELinux是一种安全增强工具,它在操作系统级别提供了额外的安全层,以保护系统免受恶意软件和攻击的侵害。
SELinux的全称是Security-Enhanced Linux,它是由美国国家安全局(NSA)开发的,旨在提供更高级别的安全性。
SELinux的作用主要体现在以下几个方面:1. 强制访问控制(MAC):SELinux通过强制访问控制机制,对系统资源进行细粒度的访问控制。
它基于安全策略规则,限制进程对文件、目录、网络端口等资源的访问权限。
这种机制可以防止恶意软件或攻击者利用系统漏洞获取未授权的访问权限。
2. 标签安全:SELinux使用标签来标识系统中的各种对象,如文件、进程、网络端口等。
每个对象都有一个唯一的标签,用于表示其安全级别和访问权限。
通过标签安全机制,SELinux可以对系统中的对象进行细粒度的访问控制,确保只有具有相应标签的对象才能相互交互。
3. 强制策略:SELinux提供了一套默认的安全策略,用于限制系统中各个进程的行为。
这些策略规则定义了进程可以执行的操作,如读取、写入、执行等。
通过强制策略,SELinux可以防止恶意软件或攻击者执行未经授权的操作,从而保护系统的安全性。
4. 安全审计:SELinux可以记录系统中发生的安全事件,并生成相应的审计日志。
这些日志可以用于分析系统的安全性,发现潜在的安全威胁。
通过安全审计,管理员可以及时发现并应对系统中的安全问题,提高系统的安全性。
5. 安全上下文:SELinux使用安全上下文来标识系统中的对象和主体。
安全上下文是一个包含标签的字符串,用于表示对象或主体的安全属性。
通过安全上下文,SELinux可以对系统中的对象和主体进行细粒度的访问控制,确保只有具有相应安全上下文的对象和主体才能相互交互。
总之,SELinux在Linux系统中起到了重要的安全保护作用。
它通过强制访问控制、标签安全、强制策略、安全审计和安全上下文等机制,提供了更高级别的安全性。
SElinux
SElinux一.简介SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux 系统的安全性,提供强健的安全保证,可防御未知攻击,相当于B1级的军事安全性能。
比MS NT的C2等高得多。
SELinux起源于自1980开始的微内核和操作系统安全的研究,这两条研究线路最后形成了一个叫做的分布式信任计算机(Distribute Trusted Mach (DTMach))的项目,它融合了早期研究项目的成果(LOCK【锁】,它包含一组安全内核类型强制;Trusted Mach【信任计算机】,它将多层安全控制合并到计算机微内核中)。
美国国家安全局的研究组织参加了DTMach项目,付出了巨大努力,并且继续参与了大量的后续安全微内核项目。
最终,这些工作和努力导致了一个新的项目产生,那就是Flask,它支持更丰富的动态类型的强制机制。
由于不同平台对这这项技术没有广泛使用,NAS认为需要在大量的社团中展示这个技术,以说明它的持久生命力,并收集广泛的使用支持意见。
在1999年夏天,NSA开始在Linux内核中实现Flask安全架构,在2000年十二月,NSA发布了这项研究的第一个公共版本,叫做安全增强的Linux。
因为是在主流的操作系统中实现的,所以SELinux开始受到Linux社区的注意,SELinux最迟是在2.2.x内核中以一套内核补丁的形式发布的。
随着2001年Linux内核高级会议在加拿大渥太华顺利召开,Linux安全模型(LSM[7])项目开始为Linux内核创建灵活的框架,允许不同的安全扩展添加到Linux中。
NSA和SELinux社区是SELinux的主要贡献者,SELinux帮助LSM实现了大量的需求,为了与LSM 一起工作,NSA开始修改SELinux使用LSM框架。
SELinux简单学习
SELinux简单学习SELinux(Security Enhanced Linux)是RedHat公司在RHEL4以后的版本中所使用的一种全新的安全机制。
有很多的用户在使用RHEL4以后的版本的时候,不知道该如何设置此功能,并且影响了在RHEL上的服务的运行。
所以一开始的时候,就停用了此功能。
这篇文章就是为了让使用RHEL4或者是RHEL5的用户了解其基本的操作来加强系统的安全性。
本文所有的操作以RHEL5.1为例。
SElinux简介SELinux是美国国家安全局开发的,是建立在kernel之上的安全机制。
图01DAC(Discretionary access control,自主访问控制):DAC机制就是指对象(比如程序、文件或进程等)的的拥有者可以任意的修改或授予此对象相应的权限。
也就是大家熟悉的使用user、group和other的方式来进行权限的控制。
MAC(Mandatory Access Control,强制访问控制):MAC机制是指系统不再允许对象(比如程序、文件或文件夹等)的拥有者随意修改或授予此对象相应的权限,而是透过强制的方式为每个对象统一授予权限。
在MAC这种安全机制下,访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
并且与部分的网络服务器加以整合,如DHCP,Apacher等服务。
假如使用传统的DAC方式,我们的RHEL5上有提供WEB服务的时候,,那么当黑客入侵WEB服务器,那么黑客有可能提升自己的权限,从而导致整台的RHEL5的服务器瘫痪;但是如果采用了MAC的方式,由于有了SELinux的保护,当黑客入侵WEB服务器,由于进程只能访问那些在他的任务中所需要文件,也就是WEB服务器的所有文件,不能访问除WEB服务器以外的文件,那么我们的RHEL5的服务器不会瘫痪,最多也就是WEB服务器被黑客损坏,这样可以降低损失。
如图02使用传统的控制方式黑客可能通过/etc/passwd来获取权限,从而导致RHEL5的资料丢失或瘫痪如图03使用SELinux,黑客不能到WEB服务器以外的范围,只能在WEB 所在的范围之内转一转,这样如果黑客攻击也就不能破坏RHEL5的其他部分,最多破坏WEB服务器。
SELinux安全系统基础
一、SELinux简介SELinux(Secure Enhanced Linux)安全增强的Linux是由美国国家安全局NSA针对计算机基础结构安全开发的一个全新的Linux安全策略机制。
SELinux可以允许系统管理员更加灵活的来定义安全策略。
SELinux是一个内核级别的安全机制,从Linux2.6内核之后就将SELinux集成在了内核当中,因为SELinux是内核级别的,所以我们对于其配置文件的修改都是需要重新启动操作系统才能生效的。
现在主流发现的Linux版本里面都集成了SELinux机制,CentOS/RHEL都会默认开启SELinux机制。
二、SELinux基本概念我们知道,操作系统的安全机制其实就是对两样东西做出限制:进程和系统资源(文件、网络套接字、系统调用等)。
在之前学过的知识当中,Linux操作系统是通过用户和组的概念来对我们的系统资源进行限制,我们知道每个进程都需要一个用户才能执行。
在SELinux当中针对这两样东西定义了两个基本概念:域(domin)和上下文(context)。
域就是用来对进行进行限制,而上下文就是对系统资源进行限制。
我们可以通过ps -Z这命令来查看当前进程的域的信息,也就是进程的SELinux信息:[root@xiaoluo ~]# ps -ZLABEL PID TTY TIME CMD unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2503 pts/000:00:00 suunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2511 pts/000:00:00 bashunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 3503 pts/000:00:00 ps通过ls -Z命令我们可以查看文件上下文信息,也就是文件的SELinux信息:[root@xiaoluo ~]# ls -Z-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Desktop-rw-r--r--+ root root system_u:object_r:admin_home_t:s0 install.log-rw-r--r--. root root system_u:object_r:admin_home_t:s0install.log.syslog在稍后我们来探讨一下这些字段所代表的含义。
SElinux
SElinux一.简介SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux 系统的安全性,提供强健的安全保证,可防御未知攻击,相当于B1级的军事安全性能。
比MS NT的C2等高得多。
SELinux起源于自1980开始的微内核和操作系统安全的研究,这两条研究线路最后形成了一个叫做的分布式信任计算机(Distribute Trusted Mach (DTMach))的项目,它融合了早期研究项目的成果(LOCK【锁】,它包含一组安全内核类型强制;Trusted Mach【信任计算机】,它将多层安全控制合并到计算机微内核中)。
美国国家安全局的研究组织参加了DTMach项目,付出了巨大努力,并且继续参与了大量的后续安全微内核项目。
最终,这些工作和努力导致了一个新的项目产生,那就是Flask,它支持更丰富的动态类型的强制机制。
由于不同平台对这这项技术没有广泛使用,NAS认为需要在大量的社团中展示这个技术,以说明它的持久生命力,并收集广泛的使用支持意见。
在1999年夏天,NSA开始在Linux内核中实现Flask安全架构,在2000年十二月,NSA发布了这项研究的第一个公共版本,叫做安全增强的Linux。
因为是在主流的操作系统中实现的,所以SELinux开始受到Linux社区的注意,SELinux最迟是在2.2.x内核中以一套内核补丁的形式发布的。
随着2001年Linux内核高级会议在加拿大渥太华顺利召开,Linux安全模型(LSM[7])项目开始为Linux内核创建灵活的框架,允许不同的安全扩展添加到Linux中。
NSA和SELinux社区是SELinux的主要贡献者,SELinux帮助LSM实现了大量的需求,为了与LSM一起工作,NSA开始修改SELinux使用LSM框架。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux? 上最杰出的新安全子系统。
NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。
对于目前可用的Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。
SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。
大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian 或 Gentoo。
它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。
SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux 的补丁,最后还有一个相应的安全策略。
众所周知,标准的UNIX安全模型是"任意的访问控制"DAC。
就是说,任何程序对其资源享有完全的控制权。
假设某个程序打算把含有潜在重要信息的文件仍到/tmp目录下,那么在DAC 情况下没人能阻止他!而MAC情况下的安全策略完全控制着对所有资源的访问。
这是MAC和DAC本质的区别。
SELinux提供了比传统的UNIX权限更好的访问控制。
1.背景SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。
原先是在Fluke上开发的,2000年以 GNU GPL 发布。
现在以Linux作为因特网服务器是越来越普遍的事了。
在我这几年作过的项目里,WEB的开发基本都是基于Linux的,这里有给大公司做的,也给政府部门做的,当然更多的是中小企业做的。
这其中给政府做的,我们把SELinux作为一个卖点,接受了不少项目。
2.我们需要安全操作系统的理由现在不论是政府还是民间企业,大家对信息安全问题是越来越关心了,因为企业的业务平台的服务器上存储着大量的商务机密,个人资料,个人资料它直接关系到个人的隐私问题。
特别是我们政府的网站,作为信息公开的平台,它的安全就更显得重要了。
这些连到互联网的服务器,不可避免的要受到来自世界各地的各种威胁。
最坏的时候我们的服务器被入侵,主页文件被替换,机密文件被盗走。
除了来自外部的威胁外,内部人员的不法访问,攻击也是不可忽视的。
对于这些攻击或者说是威胁,当然有很多的办法,有防火墙,入侵检测系统,打补丁等等。
因为Linux也和其他的商用UNIX一样,不断有各类的安全漏洞被发现。
我们对付这些漏洞不得不花很多的人力来堵住它。
在这些手段之中,提高OS系统自身的牢固性就显得非常的重要。
2.1传统的Linux OS的不足之处虽然Linux 比起 Windows 来说,它的可靠性,稳定定要好得多,但是他也是和其他的UNIX 一样,有以下这些不足之处。
1)存在特权用户root任何人只要得到root的权限,对于整个系统都可以为所欲为。
这一点Windows也一样。
2)对于文件的访问权的划分不够细在linux系统里,对于文件的操作,只有「所有者」,「所有组」,「其他」这3类的划分。
对于「其他」这一类里的用户再细细的划分的话就没有办法了。
3)SUID程序的权限升级如果设置了SUID权限的程序有了漏洞的话,很容易被攻击者所利用。
4)DAC(Discretionary Access Control)问题文件目录的所有者可以对文件进行所有的操作,这给系统整体的管理带来不便。
对于以上这些的不足,防火墙,入侵检测系统都是无能为力的。
在这种背景下,对于访问权限大幅强化的OS SELinux来说,它的魅力的无穷的。
2.2 SELinux的优点SELinux系统比起通常的Linux系统来,安全性能要高的多,它通过对于用户,进程权限的最小化,即使受到攻击,进程或者用户权限被夺去,也不会对整个系统造成重大影响。
接下来我来介绍SELinux的一些特点。
特点1:MAC(Mand atory Access Control)―――对访问的控制彻底化对于所有的文件,目录,端口这类的资源的访问,都可以是基于策略设定的,这些策略是由管理员定制的、一般用户是没有权限更改的。
特点2: TE (Type Enforcement)――― 对于进程只付与最小的权限Te概念在 SELinux里非常的重要。
它的特点是对所有的文件都赋予一个叫type的文件类型标签,对于所有的进程也赋予各自的一个叫 domain的标签。
Domain标签能够执行的操作也是由access vector在策略里定好的。
我们熟悉的apache服务器,httpd进程只能在httpd_t 里运行,这个httpd_t 的domain 能执行的操作,比如能读网页内容文件赋予httpd_sys_content_t, 密码文件赋予shadow_t, TCP的80端口赋予 http_port_t等等。
如果在access vector里我们不允许 http_t来对http_port_t进行操作的花,Apache启动都启动不了。
反过来说,我们只允许80端口,只允许读取被标为 httpd_sys_content_t的文件,httpd_t就不能用别的端口,也不能更改那些被标为httpd_sys_content_t的文件(read only)。
特点3:domain迁移―― 防止权限升级在用户环境里运行点对点下载软件azureus,你当前的domain是fu_t, 但是,你考虑到安全问题,你打算让他在azureus_t里运行,你要是在terminal里用命令启动azureus的话,它的进程的domain就会默认继承你实行的shell的fu_t。
有了domain迁移的话,我们就可以让azureus在我们指定的azureus_t里运行,在安全上面,这种做法更可取,它不会影响到你的fu_t。
下面是domain迁移指示的例子:domain_auto_trans(fu_t, azureus_exec_t, azureus_t)意思就是,当在 fu_t domain里,实行了被标为 azureus_exec_t的文件时,domain 从fu_t迁移到 azureus_t 。
下面是Apache启动的迁移图。
注意了,因为从哪一个domain能迁移到httpd_t是在策略里定好了,所以要是我们手动 (/etc/init.d/httpd start)启动apache的话,可能仍然留在sysadm_t里,这样就不能完成正确的迁移。
要用run_init命令来手动启动。
特点4: RBAC(role base access control) ――――― 对于用户只付与最小的权限对于用户来说,被划分成一些ROLE,即使是ROOT用户,你要是不在sysadm_r里,也还是不能实行sysadm_t管理操作的。
因为,那些ROLE可以执行那些domain也是在策略里设定的。
ROLE也是可以迁移的,但是也只能安策略规定的迁移。
3. 控制切换从fedora core 2开始, 2.6内核的版本都支持selinux.我们看看 Fedora core 5 里的/etc/sysconfig/selinux标准设定吧。
# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled.SELINUX=enforcing#SELINUX=disabled# SELINUXTYPE= type of policy in use. Possible values are:# targeted - Only targeted network daemons are protected.# strict - Full SELinux protection.SELINUXTYPE=targetedSELINUX有「disabled」「permissive」,「enforcing」3种选择。
Disabled就不用说了,permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来。
在我们开发策略的时候非常的有用。
相当于Debug模式。
Enforcing就是你违反了策略,你就无法继续操作下去。
SELINUXTYPE呢,现在主要有2大类,一类就是红帽子开发的targeted,它只是对于,主要的网络服务进行保护,比如 apache ,sendmail, bind,postgresql等,不属于那些domain 的就都让他们在unconfined_t里,可导入性高,可用性好但是不能对整体进行保护。
另一类是Strict,是NAS开发的,能对整个系统进行保护,但是设定复杂,我认为虽然它复杂,但是一些基本的会了,还是可以玩得动的。
我们除了在/etc/sysconfig/selinux设它有效无效外,在启动的时候,也可以通过传递参数selinux给内核来控制它。
(Fedora 5默认是有效)kernel /boot/vmlinuz-2.6.15-1.2054_FC5 ro root=LABEL=/ rhgb quiet selinux=0上面的变更可以让它无效。
[root@python sysconfig]# /usr/sbin/getenforceEnforcing确认有效后重新对文件系统赋予标签:[root@python sysconfig]# /sbin/fixfiles relabel或者[root@python /]# touch /.autorelabel然后 reboot ,你就在secure的Linux环境下工作了。