目录

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或CentOS。它们都是在内核中启用SELinux的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux的功能。

SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNⅨ权限更好的访问控制。

SElinux的应用

`ll 文件/目录后出现”.”,说明该文件/目录与SELinux有关。

只通过权限访问的叫DAC,权限+SELinux,叫MAC强制访问方式。

SELinux 会给每个文件分配一个标签,当标签不匹配时,即使有权限,也不能访问。标签学名叫做SELinux上下文。(context)

ls -Z     #可以查看文件/目录的SELinux标签
ps auxZ    #可以查看进程的SElinux标签
getenforce
sestatus

修改 SELinux 下次启动模式

vim /etc/sysconfig/selinux

或 vim /selinux/config

disabled: 关闭SELinux

permissive :警告,不满足上下文的要求,依然可以访问

enforcing : 强制,不满足上下文,拒绝 setenforce 0|1

mv指令,不会修改SELinux上下文

cp指令,继承目标目录的SELinux上下文

修改 SELinux 上下文

chcon -R -t SELinux上下文   文件/目录
#-R 递归到子目录
#-t 上下文的类型
restorecon -R 文件/目录 #继承当前目录的上下文

上下文的快速模仿

chcon -R --reference=/var/www/html index.html       #将index.html的context修改为与/var/www/html一致

SELinux布尔值

是针对服务的开关(附加开关)

如果SELinux布尔开关关闭了,即使服务允许,但最终是拒绝的。

查看SELinux布尔开关:

getsebool -a   #查看所有服务的开关
setsebool -P #需要修改的SELiux服务布尔开关 on|off

图形化管理SElinux

yum whatprovides system-config-selinux
yum install policycoreutils-gui
system-config-selinux

SELinux错误

setroubleshootd

命令行查看SELinux冲突:

cat /var/log/audit/audit.log | grep sealert
cat /var/log/messages | grep sealert
sealert -l 2065d1c2-42a7-4ca1-a952-a2a16f7d4cb7 #来自setroubleshootd 的返回信息

Linux_SELinux使用的更多相关文章

随机推荐

  1. 关于Unsupported major.minor version 52.0报错问题解决方案

    目录 1.问题描述2.问题分析3.解决方案步骤一:删除JDK1.7版本步骤二:导入JDK1.8版本步骤三:将新的JDK1.8引入到工程中4.总结1.问题描述在启动项目工程中,当编译class文件的时候 ...

  2. 1.Java 字符分割

    使用方法 性能比较 使用方法 或|,点.,加+,乘*,在字符串中出现时,如果这个字符串需要被split,则split时候,需要在前面加两个反斜杠. 与&,在split时候,不需要转义. 一.j ...

  3. Spring boot 拦截器和过滤器

    1. 过滤器 Filter介绍 Filter可以认为是Servlet的一种“加强版”,是对Servlet的扩展(既可以对请求进行预处理,又可以对处理结果进行后续处理.使用Filter完整的一般流程是: ...

  4. 设备树里面#address-cells 、#size-cells、reg三者的关系

    栗子1: cpus { #address-cells = <>; #size-cells = <>; cpu@ { compatible = "arm,cortex- ...

  5. 机器学习聚类算法之K-means

    一.概念 K-means是一种典型的聚类算法,它是基于距离的,是一种无监督的机器学习算法. K-means需要提前设置聚类数量,我们称之为簇,还要为之设置初始质心. 缺点: 1.循环计算点到质心的距离 ...

  6. Spring Boot 整合 AOP

    一.示例 1.依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  7. MySQL数据库安装和启动

    目录 一.数据库介绍 二.数据库的分类 1. 关系型数据库系统 2. 当下的关系型数据库系统 3. 当下的非关系型数据库系统 4. 关系型和非关系型数据库系统的区别 三.MySQL的架构 四.MySQ ...

  8. pyqt5-复合控件中的子控件

    天子骄龙

  9. 【NOIP2016提高A组五校联考4】ksum

    题目 分析 发现,当子段[l,r]被取了出来,那么[l-1,r].[l,r+1]一定也被取了出来. 那么,首先将[1,n]放入大顶堆,每次将堆顶的子段[l,r]取出来,因为它是堆顶,所以一定是最大的子 ...

  10. 算法——二进制解决N皇后(超级酷炫o((>ω< ))o

    先贴代码: public class Solution { void NQueen(int N, int row, int col, int pie, int na, int[] res) { if ...