SElinux

SElinux:Secure Enhanced Linux

  SElinux工作与linux内核中他所实现的功能叫做强制访问控制机制。DAC:是linux的自主访问控制。MAC:是SElinux引入的访问法则,叫作强制访问控制。

  SElinux有两种工作级别:

    strick:严格级别,每个进程都收到SElinux的控制:
    targeted:仅有限个进程受到SElinux控制:
        只监控容易被入侵的进程:

SElinux是如何工作的

subject: 进程
object: 包括进程,文件,
文件支持的操作:open, read, write, close, chown, chmod
该模型为一个进程对另一个对象进行操作,被操作的对象可以为进程,也可以是文件目录等,subject:存在domain(域),
object:存在type(类型),而所允许的操作其subject和object要求域内存在所允许的类型的文件
selinux围绕一个进程所能够对另外一个进程被操纵资源的操作功能,
被操纵资源的操作功能受限于一个文件被操作资源和操作者两者是否位于同一个区域内。
SElinux为每个文件提供了安全标签,也为进程提供了安全标签,安全标签使用冒号隔开由五段组成,
最后两段对于在CentOS系列的文件系上是无太多意义的:selinux必须在系统启动时候激活内核加载此功能
    user:role:type
        user:selinux的user;
        role:角色
        type:类型

SElinux规则库:库里定义了很多规则

规则说明了哪种域能访问哪种或哪些种类型内的文件

如何配置SElinux:

SElinux是否启用:
    启用与否的模式有三种:
        enforcing:强制,每个受限的进程都必然受限
        permissive:启用,每个受限的进程违规操作不会被禁止,但会被记录于审计日志
        disabled:关闭
        注意:如果当前系统SElinux处于disabled状态,无论需要启用为enfotcing,permissive状态,
        都需要重启系统让内核对根文件系统上的所有文件做打标签以后才能启用。如果当前系统SElinux处于permissive状态,
        需要改为enfotcing就简单多了,想看以下命令;

        相关命令:
            getenforce:获取selinux当前状态:
            setenforce 0|1
                0:设置为permissive
                1:设置为enforcing
            注意:此设定重启系统后无效;需要当前系统selilnux为启用状态。如果要想永久有效需要改配置文件,改完以后需重启

            配置文件:/etc/sysconfig/selinux,/etc/selinux/config
                SELINUX={disabled|enforcing|permissive}


给文件重新打标:
    chcon:
        chcon [OPTION]... CONTEXT FILE...
        chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...
        chcon [OPTION]... --reference=RFILE FILE...
          -R:递归打标;

还原文件的标签:
    restorecon [-R] /path/to/somewhere

设定某些布型特性:
    getsebool:显示布尔型特性
        getsebool [-a] [boolean]
    setsebool:设置布尔型特性
        setsebool [ -P] boolean value | bool1=val1 bool2=val2 …
        -P:保存在策略库中,立刻有效

练习1、启用SElinux策略并安装http服务,改变网站的默认主目录为/website,添加SElinux文件标签规则,使网站可访问

1)安装httpd,并且开启, 修改SElinux配置文件为enforcing强制状态然后重启,并且重启后需要httpd是开启状态

SElinux

SElinux

2)创建/website并且给目录打标

SElinux

SElinux

3)编辑httpd.conf文件,修改默认目录为/website

]#vim/etc/httpd/conf/httpd.conf

SElinux

练习2、修改上述网站的http端口为9527,增加SElinux端口标签,使网站可访问

1)修改httpd服务监听端口配置文件

SElinux

2)安装semange ]# yum install policycoreutils-python -y

3)将9527设置为httpd监听端口

SElinux

练习3、启用相关的SElinux布尔值,使上述网站的用户student家目录可通过http访问

]# setsebool httpdenablehomedirs=on

SElinux

配置完成,清空防火墙策略,访问测试

SElinux

SElinux

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/48719

(1)
M20-1马星M20-1马星
上一篇 2016-09-23 12:26
下一篇 2016-09-23 15:41

相关推荐

  • Linux中查看文本工具

    一、文件查看 文件查看命令:cat,tac,rev,我们重点详解cat命令 cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令 我们可以理解cat命令是复制标准输入到标准输出 cat命令选项: cat [OPTION]… [FILE]… -E:显示行结束符$   &nbs…

    Linux干货 2016-08-07
  • MHA安装包及其依赖包下载

    MySQL MHA是一款在业界广泛部署的MySQL高可用软件。但是在安装时,需要安装较多依赖包,并且有些依赖包在操作系统中默认的yum源是不存在的,因此需要到多个地方去寻找相应的包,费时费力。特别是在某些公司的网络政策,只允许少数机器连接外网,因此部署MHA更是苦不堪言。     为了方便大家也是方便以后我自己的使用,…

    Linux干货 2016-12-05
  • 第九周 N21 总有刁民想害朕

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash nologinuser=$(awk -F : '$NF~/\/nologin$/ {print $7}&…

    Linux干货 2016-09-26
  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

    目录与路径 相对路径与绝对路径 绝对路径:路径的写法【一定由根目录 / 写起】 /usr/share/doc 这个目录。 相对路径:路径的写法【不是由 / 写起】 由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法。相对路径意指相对于当前的工作目录 cd (切换目录) . &n…

    Linux干货 2016-11-06
  • 基于通用二进制格式安装mysql

    实验环境: Linux主机:centos6.8 mysql二进制格式包:mysql-5.5.52-linux2.6-x86_64.tar.gz 1、解压包到特定目录 [root@centos6 ~]# tar xf mysql-5.5.52-linux2.6-x86_64.tar.gz -C /us…

    Linux干货 2016-10-29
  • LNMP安装过程中出现的问题及解决方法

    一、背景介绍    操作系统版本:centos6.8    nginx版本:nginx-1.10.2            mysql版本:mysql5.7.16    php版本:php5.6.28   由于mysql和php的…

    Linux干货 2016-11-23