SELinux——有趣的标签

SELinux


·SELinux: Secure Enhanced linux,工作与Linux内核中

·DAC:Discretionary Access Control 自由访问控制

·MAC:Mandatory Access Control  强制访问控制

         DAC环境下进程是无束缚的

         MAC环境下策略的规则决定控制的严格程度

         MAC环境下进程可以被限制的

         策略被用来定义被限制的进程能够使用那些资源(文件和端口)

         默认情况下,没有被明确允许的行为将被拒绝

·SELinux有四种工作级别:

         strict:每个进程都受到selinux的控制

         targeted:仅有限个进程受到selinux控制

                 只监控容易被入侵的进程

         minimum:centos7,修改过的targeted,只对选择的网络服务

         mls:提供MLS(多级安全)机制的安全性

                 minimum和mls稳定性不足,未加以应用

·sandbox:

         传统Linux,一切皆文件,由用户,组,权限控制访问

         在SELinux 中,一切皆对象(object),由存放在inode的扩展属性域的安全元素所控制其访问

         所有文件和端口资源和进程都具备安全标签:安全上下文(security context)

        

         格式:

                 subject operation object

                 subject:进程

                 object:进程,文件,

                         文件:open,read,write,close,chown,chmod

                

                 subject:domain

                 object:type

        

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

                 user:role:type

                         user:SELinux的user

                         role:SELinux的角色

                         type:SELinux的的类型

        

         实际上下文:存放在文件系统中,

                 ls –Z;ps –Z

         期望(默认)上下文:存放在二进制的SELinux策略库(映射目录和期望安全上下文)中

                 semanage fcontext –l

        

         SELinux规则库:

                 规则:那种域能访问那种或那些种类型的文件

·配置SELinux:

         SELinux是否启用

         给文件重新打标

         给端口设置安全标签

         设定某些操作的布尔型特性

         SELinux的日志管理        

        

         1、SELinux的状态:

                 ·enforcing:强制,每个受限的进程都必然受限

                 ·permissive:启用,每个受限的进程违规操作不会被禁止,但会被记录于审计日志

                 ·disabled:关闭

                

                 ·相关命令:        

                           sestatus

                               查看selinux的状态


                         getenforce:获取当前selinux状态

                         setenforce 0|1

                                 0:设置为permissive

                                 1:设置为enforcing

                        

                              此设定:重启系统后无效

                        

                         配置文件:

                                 /etc/selinux/config,/etc/sysconfig/selinux

                                         SELinux={disabled|permissive|enforcing}

                                 /boot/grub/grub.conf

                                         在kernel行追加内核参数:使用selinux=0禁用SELinux

        

         2、给配置文件重新打标:

                 chcon

                        chcon [OPTION]… CONTEXT FILE…

                        chcon [OPTION]… [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE…

                        chcon [OPTION]… –reference=RFILE FILE…

                        

                        -R:递归打标

        

        3、还原文件的默认标签:

                restorecon [-R] /path/to/somewhere

        

         4、默认安全上下文查询与修改

                 ·需要用到的包:semanage来自policycoreutils-python包

                

                 ·查看默认的安全上下文

                         semanage fcontext –l

                

                 ·添加安全上下文

                         semanage fcontext -a –t httpd_sys_content_t '/testdir(/.*)?'

                         restorecon –Rv /testdir

                        

                 ·删除安全上下文

                         semanage fcontext -d –t httpd_sys_content_t '/testdir(/.*)?'

                

                 ·查看端口标签

                         semanage port –l

                

                 ·添加端口

                         semanage port -a -t port_label -p tcp|udp PORT

                         semanage port -a -t http_port_t -p tcp 9527

                        

                 ·删除端口

                         semanage port -d -t port_label -p tcp|udp PORT

                         semanage port -d -t http_port_t -p tcp 9527

                

                 ·修改现有端口为新标签

                         semanage port -m -t port_label -p tcp|udp PORT

                         semanage port -m -t http_port_t -p tcp 9527                

        

        5、布尔型规则:

                getsebool

                setsebool

                

                 ·查看bool值命令:

                         getsebool [-a] [boolean]

                         semanage boolean –l

                         semanage boolean -l –C

                

                 ·设置bool 值命令:

                         setsebool [-P] boolean value (on,off)

                         setsebool [-P] Boolean=value (0 ,1)

        

         6、SELinux日志管理:

                 安装包:yum install setroublesshoot* (重启生效)

                

                 将错误的信息写入/var/log/message

                 grep setroubleshoot /var/log/messages

                

                 sealert -l UUID

                         查看安全事件日志说明

                

                 sealert -a /var/log/audit/audit.log

                         扫描并分析日志        

        

         7、SELinux帮助:

                  yum -y install selinux-policy-devel (centos7)

                 yum -y install selinux-policy-doc  (centos6)

                 mandb | makewhatis

                 man -k _selinux

练习:


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

SELinux——有趣的标签SELinux——有趣的标签

SELinux——有趣的标签

SELinux——有趣的标签

SELinux——有趣的标签

216.png

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

SELinux——有趣的标签

SELinux——有趣的标签

212.png

SELinux——有趣的标签

SELinux——有趣的标签

SELinux——有趣的标签SELinux——有趣的标签

SELinux——有趣的标签

SELinux——有趣的标签

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

SELinux——有趣的标签

SELinux——有趣的标签

SELinux——有趣的标签SELinux——有趣的标签

SELinux——有趣的标签SELinux——有趣的标签

原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/47442

(0)
megedugaomegedugao
上一篇 2016-09-18 15:10
下一篇 2016-09-18 15:49

相关推荐

  • 计算机(服务器)的基础知识

    计算机(服务器)基础知识  计算机系统由硬件系统与软件系统两大部分组成 一、计算机(Computer)):又称电脑,是一种能自动接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。 发展历史:       第一代计算机(1946-1957)…

    Linux干货 2017-02-15
  • N25_第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或者处理连接:建立请求或拒绝请求     2)接收请求:接收来自于网络上的主机请求报文中对特定资源的一次请求的过程;     3)处理请求:对请求报文进行解析,主要获取客户端请求的…

    Linux干货 2017-03-06
  • 网络工具

    测试网络 显示主机名     hostname     centos6 /etc/sysconfig/network     更改主机名        &nbs…

    Linux干货 2016-09-09
  • sed使用方法

      sed编辑器被称作流编辑器(stream editor)。流编辑器在处理数据之前基于预先提供的一组规则来编辑数据流。 一、命令格式   sed options '"地址""编辑命令"' file   常用选项:     -n:静默模式,不显示模式…

    Linux干货 2015-12-28
  • LVS集群讲解

    目录 LVS介绍 LVS集群类型 LVS调度算法 ipvsadm/ipvs LVS-NAT模型演练 LVS-DR模型演练 LVS定义多集群 FWM实现多集群统一调度 LVS持久连接  每端口持久 每FWM持久 每客户端持久 LVS介绍 一般来说,LVS采用三层结构:负载调度器、服务器池、共享存储。工作在TCP/IP协议的四层,其转发是依赖于四层协议…

    Linux干货 2016-11-07
  • 文本编辑器sed和vim的用法集锦

    8月8号,主要学习内容为: 一、文本处理工具sed 二、vim编辑器 一、文本处理工具sed 1)简介    sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下…

    Linux干货 2016-08-12

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 14:14

    总结的很好,理论与实践相结合起来了,赞一个。