zoukankan      html  css  js  c++  java
  • Linux_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或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 的返回信息

    相关阅读:

  • 相关阅读:
    ES6 语法详解(Promise对象(重点))
    ES6 语法详解(形参默认值)
    ES6 语法详解(三点运算符)
    ES6 语法详解(箭头函数(重点))
    ES6 语法详解(简化的对象写法)
    ES6 语法详解(模板字符串)
    ES6 语法详解(变量的解构赋值)
    [刷题] 走迷宫
    [bug] A reference cannot be reassigned, so it must be initialized at the member-initialization-list.
    [Qt] LibreCAD 源码分析
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310949.html
Copyright © 2011-2022 走看看