CentOS中SELinux简单介绍

SELinux:Security-EnhancedLinux,是美国国家安全局(NSA)基于“域-类型”模型(domain-type)的强制访问控制(MAC)的实现。在这种访问控制体系的限制下,进程只能访问那些在它的任务中所需要地文件。SELinux在2.6版本及之后的Linux内核中提供,并工作于Linux内核中。SELinux在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念,SELinux提供了比传统的UNIX权限更好的访问控制。

DAC:DiscretionaryAccess Control,自主访问控制。自主访问控制是一种最为普遍的访问控制手段,用户可以按自己的意愿对系统的参数做适当修改以决定哪些用户可以访问他们的文件。

MAC:MandatoryAccess Control,强制访问控制。用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。其中多级安全(MultiLevel Secure, MLS)就是一种强制访问控制策略。

SELinux有两种工作级别:

  • strict:每个进程都受到SELinux的控制
  • targeted:仅有限个进程受到SELinux控制,只监控容易被入侵的进程

显示文件的安全上下文:# ls -Z  -->  system_u:object_r:etc_t:s0

SELinux为每个文件提供了安全标签,也为进程提供了安全标签:

user:role:type

user:SELinux的user

role:角色

type:类型

SELinux规则库:哪种域能访问哪种或哪些类型内的文件

SELinux的状态:

  • enforcing:强制,每个受限的进程都必然受限
  • permissive:启用,每个受限的进程违规操作不会被禁止,但会被记录于/var/log/audit/audit.log审计日志中
  • disabled:关闭

获取SELinux的当前状态:# getenforce

设置SELinux的状态(立即生效,重启系统后无效):

  • 设置为enforcing:# setenforce 1
  • 设置为permissive:# setenforce 0
  • 如果当前系统的SELinux处于disabled状态,需要改成enforcing或者permissive状态,必须重启服务器,才能生效

启动过程如下:

修改配置文件/etc/selinux/config(非立即生效,重启系统后永久有效):

SELINUX={ disabled | enforcing | permissive }

给文件重新打标:

改变文件SELinux安全上下文:chcon

chcon [OPTION]... CONTEXT FILE...

chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...

chcon [OPTION]... --reference=RFILE FILE...

-R:递归打标

示例:通过SELinux限制httpd服务的运行

# yum -y install httpd

# service httpd start

# ss -tunlp | grep 80

创建测试页:

# vim /var/www/html/index.html

<h1>192.168.1.145---Apache Test Page</h1>

查看测试页:

# vim /etc/selinux/config -->  SELINUX=enforcing

# reboot

修改SELinux安全上下文:

正常显示的两种方法:

  • 关闭SELinux:# setenforce 0       //从Enforcing  1 --> permissive 0

  • 重打标签:# chcon -t httpd_sys_content_t /var/www/html/test.html

还原文件的默认标签(默认SELinux安全上下文):restorecon

restorecon [-R] /path/to/somewhere

取得SELinux布尔型规则:getsebool

getsebool [-a] [boolean]

设置SELinux布尔型规则:setsebool

setsebool [ -P] boolean value | bool1=val1 bool2=val2 ...

-P:修改的值会写入磁盘中的策略文件,永久有效

时间: 2024-10-20 06:37:39

CentOS中SELinux简单介绍的相关文章

html中注释简单介绍

html中注释简单介绍: 为了提高网页代码的可读性,一般都会在代码中做一些注释,但是这些注释又不想被浏览器渲染,所以需要一定的格式才行,下面介绍一下html中注释方式,希望能顾给需要的朋友带来帮助. <!--蚂蚁部落--> 上面就是一个html中使用的注释方式,单行多行都是可以的. 原文地址是:http://www.51texiao.cn/HTML5jiaocheng/2015/0612/4008.html

Curve Mode在Zbrush中功能简单介绍

Curve Mode是ZBrush中比较重要的一个工具,它的主要功能有两个,本文小编将给大家简单介绍Curve Mode的功能以及它的笔刷有哪些. Curve Mode主要有两大功能:修改模型的表面和添加模型. Curve Mode只是一个笔刷调板,展开Stroke面板就可以看到Curve Mode.它必须依附在模型上,所以在使用Curve Mode前要先建立一个多边形模型才可. 展开笔刷调板,下面这14个笔刷都是开启了Curve Mode的笔刷,他们的前缀都包含了Curve这个单词.这些是官方

SELinux 简单介绍

在linux操作系统中,SELinux提供了一个安全精细化的策略规则,这个类似于网络中的ACL规则,用于对文件进行访问控制.但是对于大多数系统管理员来说,往往觉的SELinux过于繁琐而直接禁用,其实在安全性要求较高的场景,合理的使用SElinux可以使我们的系统更加稳固. SELinux的目的是确保进程如何在Linux环境中访问文件.如果没有SELinux,像Apache守护程序这样的进程或应用程序使用root启动,当应用受到流氓程序的攻击,应用程序可以执行任何所需的操作,因为root对每个文

Centos中Systemd知识介绍

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置. 本文介绍它的基本用法,分为上下两篇.今天介绍它的主要命令,下一篇介绍如何用于实战. 一.由来 历史上,Linux 的启动一直采用init进程. 下面的命令用来启动服务. $ sudo /etc/init.d/apache2 start # 或者 $ service apache2 start 这种方法有两个缺点. 一是启动时间长.init进程是串行启动,只有前一个进程启动完,才会启动下一个进程. 二是启动

Swift中协议的简单介绍

熟悉objective-c语言的同学们肯定对协议都不陌生,在Swift中苹果将 protocol 这种语法发扬的更加深入和彻底.Swift语言中的 protocol 不仅能定义方法还能定义属性,配合 extension 扩展的使用还能提供一些方法的默认实现,而且不仅类可以遵循协议,现在的枚举和结构体也能遵循协议了.基于此本文从 1,协议中定义属性和方法 , 2,协议的继承.聚合.关联类型 , 3,协议的扩展 , 4,Swift标准库中常见的协议 , 5,为什么要使用协议 5个方面结合自身的学习经

简单介绍一下R中的几种统计分布

统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 下面先列举各种分布: rnorm(n, mean=0, sd=1) 高斯(正态)分布rexp(n, rate=1) ?指数分布rgamma(n, shape, scale=1) γ分布 rpois(n, lambda) Poisson分布rweibull(n, shape, scale=1) Weibull分布 rcauchy(n, location=0, s

sharepoint 2013 中修改母版页简单介绍

sharepoint 2013 中修改母版页简单介绍 分类: SharePoint2013-07-05 11:10 1565人阅读 评论(1) 收藏 举报 1.打开网站操作:设计管理器中创建html母版页,系统会自动生成.master的母版页 2.打开spd编辑签出新建的html的母版页,在<body>中上面加上style="overflow:auto;",增加滚动条 3.在<body></body>中最上面加banner,最下面 添加相应的foot

简单介绍在C# 项目中使用 redis

搜索了一圈, 发现没有比较全面且简单的介绍如何在C#项目中使用redis的, 大部分都是零碎的文章,稍微组织了一下,希望对要用redis的人有帮助. 前提 1. Redis is an open source, BSD licensed, advanced key-value store, 简单说用来缓存数据,更多信息参照官网 http://redis.io/,很多大网站都在用这个, 参照 http://redis.io/topics/whos-using-redis. 2. Redis官方是没

openstack架构简单介绍J版(更新中)

title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算?软件,以Apache许可证授权.而且是一个自由软件和开放源码项目. 通俗点来讲,openstack就是一个用python编写的linux软件,openstack是一个开源云平台. openstack能干嘛? openstack最基础的功能就是产生云主机(vm虚拟机).用这些虚拟机能够做你想做的非常多事.比如产