SELinux管理及应用
linux-selit命令的用法
linux selit命令的用法SELinux是Linux内核的一种安全机制,selinux命令用于管理和配置SELinux的相关功能。
selinux命令用法如下:1. 查看SELinux状态:`sestatus`2. 修改SELinux状态:-临时关闭SELinux:`setenforce 0`-临时开启SELinux:`setenforce 1`-永久关闭SELinux(需要重启生效):编辑`/etc/selinux/config`文件,将`SELINUX=enforcing`改为`SELINUX=disabled`-永久开启SELinux(需要重启生效):编辑`/etc/selinux/config`文件,将`SELINUX=disabled`改为`SELINUX=enforcing`3. 查看文件或目录的SELinux属性:`ls -Z <文件或目录路径>`4. 修改文件或目录的SELinux属性:-设置文件或目录的SELinux用户:`chcon -u <SELinux用户> <文件或目录路径>`-设置文件或目录的SELinux类型:`chcon -t <SELinux类型> <文件或目录路径>`-恢复文件或目录的SELinux默认属性:`restorecon -R <文件或目录路径>`5. 查看进程的SELinux上下文:`ps -eZ`6. 修改进程的SELinux上下文:-临时修改进程的SELinux上下文:`chcon -t <SELinux类型> <执行文件路径>`-永久修改进程的SELinux上下文(需要重启生效):使用`semanage`命令,例如:`semanage fcontext -a -t <SELinux类型> <执行文件路径>`,然后执行`restorecon -R -v <执行文件路径>`以上是selinux命令的基本用法,更多详细信息可参考相关文档或使用`man selinux`命令查看帮助文档。
SELinux特权用户管理的设计与应用
摘
要 :分析 S Lnx E i 体系在 当前 Lnx u i 类操作系统 中的应用 ,基于角色的访问控制模 型与可信计算 , 出新 的特权 用户标识定义 ,利用 u 提
该定义给出一种安全 Ln x i 操作系统特权用户管理方案。 过 U D与角色的二维标识 方法解决特权 用户区分 的问题 ,以可信计算 中的密码 u 通 I
Ba e n S s d 0 ELi u n x
XU n LI W e - i g , ENG ik i, ANG - i Ni g , U n q n M Ka - a W Ya d
( . c oo f e to isTe h oo y PLA no mainEn ie rn ie st, e g h u4 0 0 , 1 S h l crn c c n lg , o El I fr t gn eigUnv riy Zh n z o 5 0 4 Chia o n; 2. h g i S a ha n tn a dS fwaeCo Lt .S a g i 0 03 , ia n ChiaS a d r o t r . d, h n ha 0 0 Chn ) 2
e h n e n , n fe tv l n a c me t a d e f c i e y i r v st e s c r p l a i n o EL n x i n x s se mp o e h e u e a p i to f S i u n Li u y t m. c
SELinux的策略与规则管理相关命令
SELinux的策略与规则管理相关命令SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
1、setinfo命令语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、⾝份识别、⾓⾊、类型等所有信息。
-t:列出SELinux所有类型(type)的种类。
-r:列出SELinux所有⾓⾊(role)的种类。
-u:列出SELinux所有⾝份识别(user)的种类。
-b:列出所有规则的种类(布尔值)。
实例列出与httpd有关的规则:seinfo -b | grep httpd来⾃:语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、⾝份识别、⾓⾊、类型等所有信息。
-t:列出SELinux所有类型(type)的种类。
-r:列出SELinux所有⾓⾊(role)的种类。
-u:列出SELinux所有⾝份识别(user)的种类。
-b:列出所有规则的种类(布尔值)。
实例列出与httpd有关的规则:seinfo -b | grep httpd来⾃:语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、⾝份识别、⾓⾊、类型等所有信息。
-t:列出SELinux所有类型(type)的种类。
-r:列出SELinux所有⾓⾊(role)的种类。
-u:列出SELinux所有⾝份识别(user)的种类。
-b:列出所有规则的种类(布尔值)。
实例列出与httpd有关的规则:seinfo -b | grep httpd来⾃:seinfo(选项)来⾃:seinfo(选项)来⾃:setinfo (选项)-a:列出该类型或布尔值的所有相关信息-A:列出SELinux的状态、规则布尔值、⾝份识别、⾓⾊、类型等所有信息。
-t:列出SELinux所有类型(type)的种类。
-r:列出SELinux所有⾓⾊(role)的种类。
selinux试验
Selinux学习学习目标:学习和掌握selinux相关管理命令。
学习效果:学会使用基础常用的selinux命令,来实现对selinux服务的管理和应用。
一、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监控,几乎所有的网络服务都受控。
Red Hat Enterprise Linux 8 SELinux使用指南说明书
Red Hat Enterprise Linux 8使用 SELinux防止用户和进程使用增强安全的 Linux (SELinux)与文件和设备执行未授权的交互Last Updated: 2023-07-26Red Hat Enterprise Linux 8 使用 SELinux防止用户和进程使用增强安全的 Linux (SELinux)与文件和设备执行未授权的交互法律通告Copyright © 2023 Red Hat, Inc.The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates.XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.All other trademarks are the property of their respective owners.摘要通过配置 SELinux,您可以增强系统的安全性。
semodule 命令的原理
一、semodule命令的概述SELinux(Security-Enhanced Linux)是一种安全增强的 Linux 发行版,它提供了更强大的访问控制机制,可以有效地保护系统安全。
semodule命令是 SELinux 的一个重要工具,用于管理和操作SELinux 策略模块。
二、semodule命令的基本用法semodule命令主要用于安装、卸载、导入和管理SELinux 策略模块。
其基本用法如下:1. 安装 SELinux 策略模块使用semodule -i命令可以安装一个 SELinux 策略模块,该模块通常是一个以.pp为后缀的文件,其中包含了 SELinux 的策略规则。
2. 卸载 SELinux 策略模块使用semodule -r命令可以卸载一个已安装的 SELinux 策略模块,该操作将移除相应的策略规则。
3. 导出 SELinux 策略模块使用semodule -l命令可以将当前系统中加载的 SELinux 策略模块导出为一个以.pp为后缀的文件,该文件可以用于备份和共享 SELinux策略规则。
4. 管理 SELinux 策略模块使用semodule -e、semodule -d等命令可以对 SELinux 策略模块进行启用、禁用操作,以及对其属性进行调整。
三、semodule命令的原理semodule命令实际上是一个用于管理 SELinux 策略模块的工具集,其原理基于 SELinux 系统的核心架构和机制。
1. SELinux 策略模块SELinux 策略模块是 SELinux 策略的一部分,它包含了一系列由SELinux策略语言编写的策略规则,用于定义进程、文件、端口等在SELinux 下的安全访问权限。
semodule命令主要用于对这些策略模块进行安装、卸载、导出和管理操作。
2. SELinux 核心架构SELinux 的核心架构包括了安全服务器(security server)、安全策略数据库(security policy database)、安全上下文(security context)等组件,它们共同构成了 SELinux 的强大安全保护机制。
RHEL5.4管理SELinux
RHEL5.4管理SELinux关于linux下面SELinux问题的讨论,在linux里面,所有的文件和进程都有一个security context的,而SELinux就是通过security context就用来对文件和进程进行控制的。
如何去查看文件的security context值呢,#ls -Z[root@localhost ~]#[root@localhost ~]# ls -Z-rw------- root root system_u:object_r:user_home_t anaconda-ks.cfgdrwxr-xr-x root root root:object_r:user_home_t Desktop-rw-r--r-- root root root:object_r:user_home_t file-rw-r--r-- root root root:object_r:user_home_t Finished-rw-r--r-- root root root:object_r:user_home_t install.log-rw-r--r-- root root root:object_r:user_home_t install.log.syslog-rw-r--r-- root root root:object_r:user_home_t Package-rw-r--r-- root root root:object_r:user_home_t Running[root@localhost ~]#这个就是我们文件的security context值,root:object_r:user_home_troot 用户的用户名(一般文件是谁创建的,这个用户名就是谁)object_r 文件的角色user_home_t context值的类型context值的类型会随着文件在不同的位置,会跟着发生变化。
最新整理安全防护软件Selinux使用详解
安全防护软件S e l i n u x使用详解网络安全是目前互联网的热门话题之一,作为个人用户的我们同样需要关注,做好防护。
S E L i n u x(S e c u r i t y-E n h a n c e d L i n u x)是美国国家安全局(N S A)对于强制访问控制的实现,是 L i n u x上最杰出的新安全子系统。
今天小编要为大家带来的就是C e n t O S 上的安全防护软件S e l i n u x详解,希望对大家会有帮助,有需要的朋友一起去看看吧具体介绍S E L i n u x(S e c u r i t y-E n h a n c e d L i n u x)是美国国家安全局(N S A)对于强制访问控制的实现,是 L i n u x历史上最杰出的新安全子系统。
N S A是在L i n u x社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
S E L i n u x默认安装在 F e d o r a和 R e d H a t E n t e r p r i s eL i n u x上,也可以作为其他发行版上容易安装的包得到,20**以G N U G P L发布,L i n u x内核 2.6版本后集成在内核中D A C:D i s c r e t i o n a r y A c c e s s C o n t r o l自由访问控制 M A C:M a n d a t o r y A c c e s s C o n t r o l强制访问控制D A C环境下进程是无束缚的M A C环境下策略的规则决定控制的严格程度M A C环境下进程可以被限制的策略被用来定义被限制的进程能够使用那些资源(文件和端口)默认情况下,没有被明确允许的行为将被拒绝s e l i n u x的工作类型s e l i n u x一共有四种工作类型s t r i c t:每个进程都受到s e l i n u x的控制t a r g e t e d:用来保护常见的网络服务,仅有限进程受到s e l i n u x控制,系统当中默认设置类型m i n i m u m:这个模式在c e n t o s7上,是t a r g e t e d的修改版,只对选择的网络服务,仅对选中的进程生效m l s:提供m l s机制的安全性,国防级别的s e l i n u x安全上下文传统的l i n u x,一切皆文件,由用户、组、权限来进行访问控制,这当中有很多的缺陷在s e l i n u x中,一切皆对象(进程),有存放在i n o d e 的扩展属性域的安全元素所控制其访问所有文件和端口资源和进程都具备安全标签,这就是安全上下文安全上下文有五个元素组成s y s t e m_u:o b j e c t_r:a d m i n_h o m e_t:s0u s e r:r o l e:t y p e:s e n s i t i v i t y:c a t e g o r yu s e r:指示登录系统的用户类型,如r o o t,u s e r_u,s y s t e m_u,多数本地进程都属于自由进程r o l e:定义文件,进程和用户的用途,文件:o b j e c t_r,进程和用户:s y s t e m_rt y p e:指定数据类型,规则重定义何种进程类型访问何种文件,t a r g e t策略基于t y p e实现,多服务功用,p u b l i c_c o n t e n t_ts e n s i t i v i t y:限制访问的需要,由组织定义的分层安全级别,如u n c l a s s i f i e d,s e c r e t,t o p,一个对象有且只有一个s e n s i t i v i t y,分0-15个级别,s0最低,t a r g e t策略默认使用是s0c a t e g o r y:对于特定组织划分不分层的分类,如F B I s e c r e t,N S A s e c r e t,一个对象可以有多个c a t e g o r y,c0-c1023共1024个分类,t a r g e t策略不适用c a t e g o r y 查看安全上下文l s Z;p s-Z期望(默认)上下文:存放在二进制的s e l i n u x策略库中s e m a n a g e f c o n t e x t l查看系统中的默认安全上下文@f o n t-f a c e{f o n t-f a m i l y:宋体;}@f o n t-f a c e{f o n t-f a m i l y:C a m b r i a M a t h;}@f o n t-f a c e{f o n t-f a m i l y:C a l i b r i;}@f o n t-f a c e{f o n t-f a m i l y:@宋体;}p.M s o N o r m a l,l i.M s o N o r m a l,d i v.M s o N o r m a l{m a r g i n:0c m0c m0.0001p t;t e x t-a l i g n:j u s t i f y;f o n t-s i z e:10.5p t;f o n t-f a m i l y:C a l i b r i,s a n s-s e r i f; }.M s o C h pD e f a u l t { f o n t-f a m i l y: C a l i b r i,s a n s-s e r i f;}d i v.W o r d S e c t i o n1{}s e l i n u x策略对象(o b j e c t):所有可以读取的对象,包括文件、目录和进程,端口等主体:进程称为主题(s u b j e c t)s e l i n u x中对所有的文件都赋予一个t y p e的文件类型标签,对于所有的进程也赋予各自的一个d o m a i n标签。
Linux安全中阶教程之SElinux(适合有一定水平的管理员) ...
Linux安全中阶教程之SEIinux(适合有一定水平的管理员)一:SElinux(安全增强linux 简介)1:使用SElinux可以将进程放入在特定的SElinux域,同时赋予系统上的资源(如文件,网络套接字,系统调用等)SElinux上下文。
装入SElinux的策略(通常作为系统启动过程的一部分),然后决定哪个进程域可以访问哪些资源上下文。
2:在红帽企业版linux5中,有关SElinux的选择有下面几种:(1)我是否需要启用SElinux(2)一旦启用,我需要SElinux处于允许(permissive)还是强制(enforcing)状态。
(3)我需要在文件上赋予什么样的SElinux上下文。
3:在实际工作中,红帽企业版linux5支持一种SElinux策略,叫目标策略(targeted).这个策略在大多数应用之中。
在目标策略之中,只有目标进程受到SElinux的影响。
而其他进程运行在非限制模式下。
目标策略只影响常用的网络应用程序。
受到限制的服务在200个以上,有增加的趋势。
SElinux限制的典型应用程序如下:(1)dhcp(2)httpd(3)mysqld(4)named(5)nscd()(6)ntpd()(7)portmap(8)postgres()(9)snmpd()(10)squid(11)syslogd4:启用SElinux/etc/sysconfig/selinuxsetenforcegetenforce/etc/sysconfig/selinux⑴强制(enforcing):任何违法SElinux的操作都被禁止。
⑵允许(permissive):任何违反SElinux的操作都会受到一个警告信息。
但是行动可以继续。
⑶停用(disabled):不启用SElinux策略。
Setenforce和getenforce命令Setenforce0/10表示允许;1表示强制Getenforce查看当前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系统中起到了重要的安全保护作用。
它通过强制访问控制、标签安全、强制策略、安全审计和安全上下文等机制,提供了更高级别的安全性。
1 管理SELINUX
07/21/12
显示和修改 SELinux 模式
请注意, /etc/sysconfig/selinux 包含一些有用注释:
在引导时,使用 /etc/sysconfig/selinux 更改默认 SELinux 模式。在上面的示例中,设置为强制模 式。若要显示当前 SELinux 模式,请使用 getenforce 。若要修改当前 SELinux 模式,请使用 setenforce :
07/21/12
显示和修改 SELinux 文件上下文
许多处理文件的命令具有一个用于显示或设置 SELinux 上下文的选项(通常是 -Z )。例如, ps 、 ls 、cp 和 mkdir 都使用 -Z 选项显示或设置 SELinux 上下文。
什么确定文件的初始 SELinux 上下文?通常是父目录。将父目录的上下文指定给新创建的文件。这 对 vimcp 和 touch 等命令其作用,但是,如果文件是在其他位置创建的并且保留了权限(与 mv 或 cp a 一样)则还将保留 SELinux 上下文。
07/21/12ຫໍສະໝຸດ 管理 SELinux 布尔值
SELinux 布尔值是更改 SELinux 策略行为的开关。 SELinux 布尔值是可以启用或禁用的规则。 安全管理员可以使用 SELinux 布尔值来调整策略,以有选择地进行调整。getsebool 用于显示布尔 值, setsebool 用于修改布尔值。 setsebool -P 修改 SELinux 策略,以永久保留修改。 [root@serverX ~]# getsebool -a abrt_anon_write --> off ..... [root@serverX ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs --> off [root@serverX ~]# setsebool httpd_enable_homedirs on [root@serverX ~]# semanage boolean -l |grep httpd_enable_homedirs httpd_enable_homedirs --> off Allow httpd to read home directories [root@serverX ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs --> on [root@serverX ~]# setsebool -P httpd_enable_homedirs on [root@serverX ~]# semanage boolean -l |grep httpd_enable_homedirs httpd_enable_homedirs --> on Allow httpd to read home directories
Linux下查看SELinux状态和关闭SELinux的方法命令是什么
Linux下查看SELinux状态和关闭SELinux的方法命令是什么Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
对于SELinux状态可能很多用户不知道怎么设置,这篇文章主要介绍了Linux下查看SELinux状态和关闭SELinux 的方法,需要的朋友可以参考下。
一、查看SELinux状态命令:1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查二、关闭SELinux方法:1、临时关闭(不用重启机器):复制代码代码如下:setenforce 0 #设置SELinux 成为permissive模式#setenforce 1 设置SELinux 成为enforcing模式2、修改配置文件需要重启机器:补充:Linux基本命令①l s 意为list 列出当前文件夹中的文件-l 显示文件的属性可用ll来表示②alias 别名看看是否有别名的文件③cd dir 跳跃目录 -P选项将路径中的链接文件替换成链接指向的文件路径④pwd 查看当前工作的文件夹名使用-P的选项,会直接进入到其中,相当于cd相关阅读:Linuxshell脚本不执行问题实例分析shell脚本不执行问题:某天研发某同事找我说帮他看看他写的shell脚本,死活不执行,报错。
我看了下,脚本很简单,也没有常规性的错误,报“:badinterpreter:Nosuchfileordirectory”错。
看这错,我就问他是不是在windows下编写的脚本,然后在上传到linux 服务器的……果然。
原因:在DOS/windows里,文本文件的换行符为rn,而在*nix系统里则为n,所以DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了个^M。
Linux操作系统配置与管理课件:SELinux的应用
11.3 SELinux配置管理
11.3.2 SELinux配置文件
SELinux的配置文件主目录为/etc/selinux,在RHEL5.x中可用模块包 括下面几种。
targeted:RedHat开发的策略模块,只对Apache、SendMail、 BIND、PostgresQL等网络服务进行保护,不属于这些服务的就都 属于unconfined_t。该模块也可导入性高,可用性好,但是不能 呢个对整体进行保护。
11.3 SELinux配置管理
11.3.4 SELinux日志
日志信息都位于在/var/log/messagesN(该文件有多个,结尾会编号) 单击“系统”—“管理”—“SELinux故障诊断”会出现如图11-1所示
界面,可以查看出错的原因
图11-1
11.3 SELinux配置管理
11.3.5 使用SELinux图形界面配置工具
3. RHEL将SELinux与FTP、Samba、Apache等一系列服务整合,可 为每一个服务制定严格的SELinux策略
11.2 SELINUX的运行状态配置
SELinux运行状态有: enforcing(SELinux安全策略被强制执行) permissing(SELinux系统输出警告信息,但不强制执行安全策略) disable(SELinux被完全终止)三种
11.3 SELinux配置管理
11.3.1 SELinux控制规则及相关概念
1. DAC(Discretionary Access Control,自主访问控制) 2. MAC(Mandatory Access Controll,强制访问控制) 3.安全上下文与TE(类型强制) 4. RABC(基于角色的访问控制
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 系统,通过实施最小权限原则和安全上下文,有效地提高了系统的安全性。
【IT专家】SELinux管理与配置
本文由我司收集整编,推荐下载,如有疑问,请与我司联系SELinux管理与配置2011/07/28 0 1.1 SElinux概述 SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
大部分使用SELinux 的人使用的都是SELinux就绪的发行版,例如Fedora、Red Hat Enterprise Linux (RHEL)、Debian 或Gentoo。
它们都是在内核中启用SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用SELinux 的功能。
1.1.1 SElinux特点 1.MAC 对访问的控制彻底化,对所有的文件、目录、端口的访问都是基于策略设定的,可由管理员时行设定。
2.RBAC 对于用户只赋予最小权限。
用户被划分成了一些role(角色),纵然是root用户,如果不具有sysadm_r角色的话,也不是执行相关的管理。
哪里role可以执行哪些domain,也是可以修改的。
3.安全上下文 当启动selinux的时候,所有文件与对象都有安全上下文。
进程的安全上下文是域,安全上下文由用户:角色:类型表示。
(1)系统根据pam子系统中的pam_selinux.so模块设定登录者运行程序的安全上下文 (2)rpm包安装会根据rpm包内记录来生成安全上下文, (3)如果是手工他建的,会根据policy中规定来设置安全上下文, (4)如果是cp,会重新生成安全上下文。
(5)如果是mv,安全上下文不变。
1.1.2 安全上下文式。
Linux中SElinux
Linux中SElinuxSElinux初探SElinux已经是个⾮常完备的内核模块了,CentOS5.x提供了很多管理SELinux的命令与机制,因此在整体架构上⾯⽐以前的版本要单纯且容易操作管理。
SElinux字⾯上的意义就是安全强化的Linux。
SELinux是在进⾏程序、⽂件等权限设置依据的⼀个内核模块SELinux的启动、关闭与查看SELinux⽀持三种模式,分别如下Enforcing:强制模式,代表SELinux正在运⾏中,且已经正确开始限制domain/type了。
permissive:宽容模式:代表SELinux正在运⾏中,不过仅会有警告信息并不会实际限制。
domain/type的访问。
这种模式可以运来作为SELinux的调试之⽤。
disabled:关闭,SELinux并没有实际运⾏。
SELinux的配置⽂件就是在 /etc/selinux/config查看当前SELinux模式。
[root@Centos ~]# getenforceEnforcing范例⼀:列出⽬前的SELinux使⽤的策略[root@Centos ~]# sestatusSELinux status:enabled 是否启动SELinuxSELinuxfs mount:/selinux SELinux的相关⽂件数据挂载点Current mode:enforcing ⽬前的模式Mode from config file:enforcing 配置⽂件制定模式Policy version: 24Policy from config file:targeted ⽬前的策略为何SELinux的启动与关闭上⾯是默认的策略与启动的模式,你要注意的是,如果改变了策略则需要重新启动;如果由enforcing或permissive改成disabled,或由disabled改成其他两个,那也必须要重新启动。
让SELinux模式在enforcing于permissive之间切换的⽅法为:[root@Centos ~]# setenforce [0|1]0:转成permissive宽容模式1:转成Enforcing强制模式。
RHCE认证培训之selinux配置与管理
selinux 基于MAC(强制访问控制系统)实现,活动范围是个指定的范围。
DAC:自主访问控制系统(基于用户的权限),活动范围是整个系统。
Selinux的作用是把用户或进程的权限最小化selinux上下文:文件、进程、目录、端口专有的安全标签。
sestatus:查看selinux状态getsebool -a | grep xxx:查看某个进程的bools值或者用semanage -l 命令setsebool -P :修改布尔值启动vsftp服务器后以本地用户无法登陆。
ftp服务器:192.168.10.11.service vsftpd start2.chkconfig vsftpd on3.iptables -I INPUT -p tcp --dport 21 -j ACCEPT4.service iptables save5. windows客户端访问:ftp 192.168.10.1访问失败6.getsebool -a | grep ftp7.setsebool -P ftp_home_dir on8.再次访问成功!Apache实现个人主页1.vim /etc/httpd/conf/httpd.conf2.修改配置项UserDir public_html ---个人主页存放的目录366行eradd lining4.mkdir /home/lining/public_html5.echo "web page" > /home/lining/public_html/index.html6.chmod o+x /home/lining7.iptables -I input -p tcp --dport 80 -j ACCEPT8.service iptables save9.service httpd restart10.chkconfig httpd on11.访问:http://192.168.10.1/~lining ---失败12.getsebool -a | grep httpd13.setsebool -P httpd_enable_homedirs on14.再次访问,成功。
SElinux 管理工具
#SElinux 管理工具yum -y install policycoreutils-newrole # Usage: System -> Management -> SElinux------------------------------------------------------------------------# SElinux信息与开启ls -Z ps -Z id -Z # 分别可以看到文件,进程和用户的SELinux属性sestatus seinfo selinuxenabled getenforce # 查看SElinux信息setenforce [ Enforcing | Permissive | 1 | 0 ]/etc/selinux/config # 需要重启系统来启动SELinux新的工作模式------------------------------------------------------------------------#chcon 改变SELinux安全上下文chcon -u [user] 对象-r [role]-t [type]-R 递归--reference 源文件目标文件# 复制安全上下文示例:chcon -R -t samba_share_t /tmp/abc---------------------# restorecon # 恢复默认安全上下文---------------------# SElinux查看与设置策略getsebool # 获取本机selinux策略值,也称为bool值# selinux的设置一般通过两个部分完成的,一个是安全上下文,另一个是策略,策略值是对安全上下文的补充setsebool -P allow_ftpd_anon_write=1 # -P 是永久性设置,否则重启之后又恢复预设值。
示例:[root@redhat files]# setsebool -P allow_ftpd_anon_write=1[root@redhat files]# getsebool allow_ftpd_anon_writeallow_ftpd_anon_write --> on--------------------注意:如果仅仅是安全上下文中设置了vsftpd进程对某一个目录的访问,配置文件中也允许可写,但是selinux中策略中不允许可写,仍然不可写。
SELinux管理
sestatus——显示SELinux状态sestatus [-v] [-b]-v:详细检查进程和安全上下文-b:显示当前布尔值状态getenforce——显示当前SELinux的应用模式显示当前SELinux的应用模式[root@centos7 ~]# getenforceEnforcingsetenforce——修改SELinux的应用模式setenforce [Enforcing|Permissive|1|0]Enforcing:切换成强制模式Permissive:切换成允许模式1:切换成强制模式0:切换成允许模式切换成允许模式[root@centos7 ~]# setenforce permissive / [root@centos7 ~]# setenforce 0 切换成强制模式[root@centos7 ~]# setenforce enforcing / [root@centos7 ~]# setenforce 1getfattr——获取文件对象的扩展属性getfattr [-hRLP] -n name [-e en] pathname...getfattr [-hRLP] -d [-e en] [-m pattern] pathname...-n:得到命名扩展属性值-d:获得所有扩展属性名-e:编码值(为文本、十六进制或base64编码)-h:不引用符号链接-R:递归到子目录-m:仅包括名称匹配正则表达式模式的属性chcon——修改文件SELinux安全上下文chcon [OPTION]... CONTEXT FILE...chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE...chcon [OPTION]... --reference=RFILE FILE...-R:递归处理-v:显示诊断信息-u:设置指定用户的目标安全环境-r:设置指定角色的目标安全环境-t:设置指定类型的目标安全环境、-l:设置指定范围的目标安全环境-h:影响符号链接,而不是任何引用文件-L:遍历每一个遇到的通到目录的符号链接-H:若命令行参数是一个通到目录的符号链接,则遍历符号链接-P:不遍历任何符号链接(默认)注:不能再/proc文件系统上使用chcon命令,因为/proc文件系统不支持这种标记的改变修改/root/yangyang文件的SELinux安全上下文[root@centos7 ~]# chcon -t etc_t /root/yangyangmatchpathcon——查看文件默认安全上下文matchpathcon [-V] [-N] [-n] [-m type] [-f file_contexts_file] [-p prefix] [-P policy_root_path] filepath...-p:使用前缀的速度解答-N:不使用解答-n:不显示路径-V:在磁盘匹配默认上验证文件上下文-f<file_context_file文件>:使用备用file_context文件查看/root/yang文件默认的安全上下文[root@centos7 ~]# matchpathcon /root/yangfixfiles——修复安全上下文fixfiles [-v] [-F] [-B] [ -N time ] [-l logfile ] { check | restore|[-f] relabel | verify } [[dir/file] ... ]fixfiles [-v] [-F] [ -R rpmpackagename[,rpmpackagename...] ] [-l logfile ] { check | restore | verify } fixfiles [-v] [-F] -C PREVIOUS_FILECONTEXT [-l logfile ] { check | restore | verify }fixfiles [-F] [-B] onboot-l:将输出保存到指定的日志文件-F:强制重置上下文为匹配file_comtext的自定义文件-f:清除/tmp目录-R:使用rpm数据库,以发现指定数据包中的所有文件和恢复文件的上下文restorecon——修复文件默认的SELinux安全上下文restorecon [-R] [-n] [-p] [-v] [-e directory] pathname...restorecon -f infilename [-e directory] [-R] [-n] [-p] [-v] [-F]-i:忽略不存在的文件-f:包含由应用程序处理的文件列表-e:指定要排除的目录-R:递归处理-n:不改变任何文件标签-o:保存不正确的上下文的文件列表到输出文件中-v:显示文件标签-F:强制恢复文件安全上下文-p:每1000个文件显示进度seinfo——显示SELinux策略的组建有关的信息seinfo [选项] [表达式] [策略]sesearch——在SELinux策略中搜索规则sesearch [选项] [规则类型] [表达式] [策略]getsebool——查看SElinux布尔值getsebool [-a] [boolean]setsebool——修改SELinux布尔值setsebool [ -PNV ] boolean value | bool1=val1 bool2=val2 ...-P:所有设置的值被写入到磁盘上的策略文件,在重启系统后布尔值永久改变启动httpd_can_network_connect布尔值[root@centos7 ~]# setsebool httpd_can_network_connect on启动httpd_can_network_connect布尔值[root@centos7 ~]# setsebool httpd_can_network_connect true启动httpd_can_network_connect布尔值[root@centos7 ~]# setsebool httpd_can_network_connect=1禁用httpd_can_network_connect布尔值[root@centos7 ~]# setsebool httpd_can_network_connect off永久修改httpd_can_network_connect布尔值为on[root@centos7 ~]# setsebool -P httpd_can_network_connect onsemodule——管理SELinux策略模块semodule [options]... MODE [MODES]...-l:显示安装的模块-R:重装策略模块-B:建立和重装策略模块-i:安装一个新的模块-u:升级处理模块-e:激活策略模块-d:禁用策略模块-b:安装新的基础模块-r:删除策略模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、SELinux配置文件小解 、 配置文件小解
(2)SELinux的执行模式 ) 的执行模式
• enforcing强制模式,只要SELinux不允许,就 无法执行; • permissive警告模式,将该事件记录,依然 允许执行; • disabled关闭SELinux; • 停用、启用需要重启计算机; • 使用setenforce切换enforcing与permissive模 式不需要重启计算机; • getenforce及sestatus查看执行模式;
(2) )
4、getsebool getsebool –a与sestatus –b 5、setsebool 参数-P,永久性设置; -P
(3) )
6、chcon 修改文件、目录的安全上下文 chcon –u[user] chcon –r[role] chcon –t[type] chcon –R 递归
2、格式:user:role:type
(4.1、user) 、 )
• user identity:类似Linux系统中的UID,提供身份 识别;安全上下文的一部分; • 三种常见的 users: user_u - 普通用户登录系统后的预设; system_u - 开机过程中系统进程的预设; root - root 登录后的预设; • 在 targeted policy 中 users 不是很重要; • 在strict policy 中比较重要,所有预设的 SELinux Users 都是以 “_u” 结尾的,root 除外。
说明
本内容参考了网上搜索到的多个技术文档, 主要有: • Kenduest Lee的《SELinux管理配置》 • 林彦明的《Enterprise Linux实战之RHEL4的 安全新机制-Security Enhanced Linux》 系统平台:Redhat Enterprise Linux 5 U3 系统平台 2.6.18-128-el5
(2) )
• 普通Linux和传统UNIX系统一样,是基于自主存取 控制的,即DAC;只要符合规定的权限,就可存 取资源;此时,一些具有SUID/SGID权限的程序就 存在严重安全隐患,甚至因为管理员的错误配置 就可引发巨大的漏洞,被轻易取得最高权限; • SELinux是基于强制存取控制的,即MAC,通过强 制性的安全策略,应用程序或用户必须同时符合 DAC及对应SELinux的MAC才能进行正常操作,否 则都将遭到拒绝或失败,而这些问题将不会影响 其他正常运作的程序和应用,并保持它们的安全 系统结构。
5、SELinux的运行机制 、 的运行机制
(2) )
• 系统中每个文件、目录、网络端口等都被 指定一个安全上下文,policy 则给出各安全 上下文之间的作用规则。 • SELinux根据policy及security context规则来决 定行为是否可存取; • Subject:系统进程,比如/usr/sbin/httpd; • Object:被存取的项目,比如File、Directory、 IP、Socket等;
附注: 附注:计算机安全级别
• D级别是最低的安全级别,对系统提供最小的安全防护。系统的访问 控制没有限制,无需登陆系统就可以访问数据,该级别系统包括DOS, Win98等; • C1级称为选择性保护级,可以实现自主安全防护,对用户和数据的分 离,保护或限制用户权限的传播; • C2级具有访问控制环境的权力,比C1的访问控制划分的更为详细,能 够实现受控安全保护、个人帐户管理、审计和资源隔离。该级别系统 包括UNIX、Linux和WindowsNT系统 ; UNIX Linux WindowsNT • B1级称为标识安全保护; • B2级称为结构保护级别,要求访问控制的所有对象都有安全标签以实 现低级别的用户不能访问敏感信息,对于设备、端口等也应标注安全 级别; • B3级别称为安全域保护级别,这个级别使用安装硬件的方式来加强域 的安全,比如用内存管理硬件来防止无授权访问; • A级别称为验证设计级,是目前最高的安全级别,在A级别中,安全的 设计必须给出形式化设计说明和验证,需要有严格的数学推导过程, 同时应该包含秘密信道和可信分布的分析,也就是说要保证系统的部 件来源有安全保证。
(4.3、type) 、 )
• type:用来将主体和客体划分为不同的组, 给每个主体和系统中的客体定义了一个类 型;为进程运行提供最低的权限环境; • 当一个类型与执行中的进程相关联时,其 type也称为domain; • SElinux security context 中最重要的部位,是 SELinux Type Enforcement 的心脏,预设值以 _t结尾;
(3)SELinux的安全规则(policy) ) 的安全规则 )
• targeted,保护常见的网络服务,为SELinux 默认值; • strict,提供符合Role-based-Access Control(RBAC)之policy,具备完整的保护功 能,保护网络服务、一般指令及应用程序; • 改变policy后,需要重启计算机; • 用SELinux Boolean增加policy的弹性;
7、实例讲解 、
RHEL5.3,yum安装 • vsftpd • samba • http
谢 谢
1、SELinux 简介 、
• SELinux全称Security Enhanced Linux,由美国国家 安全局(National Security Agency)开发,构建于 kernel之上的、拥有灵活而强制性的访问控制结构, 旨在提高Linux系统的安全性,提供强健的安全保 证,可防御未知攻击,据称相当于B1级的军事安 全性能; • 已经被整合到2.6kernel中; • 传统Linux在没有SELinux保护的时候,倘若运行于 之上的服务被骇客攻陷,其服务器最高权限就有 可能随之丧失;但是倘若有了SELinux的保护,入 侵的也只是服务本身,整个服务器的最高权限依 旧还健在;
ChinaUNIX沙龙 沙龙 SELinux管理及应用 管理及应用
尹剑鹏 marsaber@
ห้องสมุดไป่ตู้
主题大纲
1、SELinux简介 、 简介 2、SELinux特点 、 特点 3、SELinux配置文件小解 、 配置文件小解 4、 4、Security context安全上下文 context安全上下文 5、SELinux运行机制 、 运行机制 6、SELinux的一些命令 、 的一些命令 7、实例讲解(vsftp、samba、http) 、实例讲解( 、 、 )
6、SELinux的一些命令 、 的一些命令
1、sestatus 查询SELinux的状态 2、selinuxenabled 检查SELinux是否处于激活状态;echo $? 返 回0说明处于激动状态,反之返 回-256; 3、setenforce enforcing | permissive | 1 | 0 enforcing与1,表示开启强制模式; permissive与0,表示开启警告模式;
2、 SELinux特点 、 特点
1、MAC(Mandatory Access Control)-对访问的控制 彻底化,对所有的文件、目录、端口的访问,都 是基于策略设定的。这些策略是由管理员设定的、 一般用户是无权更改的; 2、RBAC(Role Base Access Control)-对于用户只赋 予最小权限。对于用户来说,被划分成一些role, 即使是root用户,你要是不在sysadm_r里,也还是 不能实行sysadm_t管理操作的。因为,哪些role可 以执行哪些domain也是在策略里设定的。role也 是可以迁移的,但是只能按策略规定的迁移;
4、Security context 、
• Security context,安全上下文; • 系统根据PAM子系统中的pam_selinux.so模 块设定登录者运行程序的安全上下文; • 文件,rpm包安装的会根据rpm包内记录来 生成安全上下文;如果是手动创建的,会 根据policy中规定的来设置安全上下文;如 果是cp,是重新生成安全上下文;如果是 mv,安全上下文则不变。
(2) )
• id –Z 检查账号的安全上下文; • ps –Z 检查进程的安全上下文; • ls –Z 检查文件、目录的安全上下文;
(3) )
1、/usr/include/sepol/policydb/context.h
73 static inline int context_cpy(context_struct_t * dst, context_struct_t * src) 74 { 75 dst->user = src->user; 76 dst->role = src->role; 77 dst->type = src->type; 78 return mls_context_cpy(dst, src); 79 }
(2) )
3、TE (Type Enforcement)-对进程只赋予最小运行 权限, TE概念在 SELinux中非常重要;其特点是对 文件赋予一个叫type的文件类型标签,对于进程 赋予一个叫 domain的 标签;Domain标签能够执 行的操作也是由access vector(存取矢量)在策略 里设定好的; 4、domain迁移-防止权限升级,A程序在A Domain内 运行,B程序在B Domain内运行,在A Domain中执 行B程序时,可以规范B程序使用A Domain的环境 还是使用B Domain的环境。
(4.2、role) 、 )
• 文件/目录的role,通常是 object_r; • 程序的role,通常是 system_r; • 用户的role,targeted policy为system_r; strict policy为sysadm_r、staff_r、user_r; • 用户的role,类似系统中的GID,不同角色具备不 role GID 同的的权限; • 用户可以具备多个role;但是同一时间内只能使用 一个role; • roles 是 RBAC(Roles Based Access Control) 的基础;