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)
上一篇 2016-09-18 15:10
下一篇 2016-09-18 15:49

相关推荐

  • kickstart+http+dhcp+tftp实现centos7的无人值守安装

    环境:IP: 172.16.0.11 centos 7.2 一. tftp 安装tftp服务端和客户端 [root@localhost ~]# yum -y install tftp tftp-server 启动tftp [root@localhost ~]# systemctl start tftp.socket [root@localhost ~]# s…

    Linux干货 2017-06-03
  • mysql备份之xtrabackup

    mysql备份之xtrabackup(建议用来备份innodb) 下载地址:https://www.percona.com/downloads/XtraBackup/ 安装xtrabackup [root@node1 ~]# yum install percona-xtrabackup 完全备份 节点一 修改配置文件,…

    Linux干货 2016-07-19
  • gitlab-ce并发超过30引起ip被封1小时的问题

    系统环境描述 System information System:     Ubuntu 14.04 Current User:   git Using RVM:  no Ruby Version: …

    Linux干货 2015-09-06
  • 软件包管理(rpm篇)

    软件包管理(rpm篇)静态和动态链接    链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接,分为静态链接和动态链接    静态链接        把程序对应的依赖库复制一份到包&nbsp…

    Linux干货 2017-04-24
  • httpd服务

             练习:        (1)基于主机名实现三个虚拟主机              …

    Linux干货 2016-11-11
  • Linux文件管理与bash特性

    Linux上的文件管理命令 目录管理命令: mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自动按需创建父目录; -v: verbose,显示详细过程; -m MODE:直接给定权限; 注意:路径基名方为命令的作用对象;基名之前的路径必须得存在; r…

    Linux干货 2017-04-01

评论列表(1条)

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

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