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

相关推荐

  • nginx在linux系统应用详解之一基础介绍和全局配置

    一、nginx简介       1、特点:           (1)nginx服务器既可以作为HTTP服务器,也可以作为反向代理服务器,还可以作为邮件服务器;           (2)能够快速响应静态页面的请求;  …

    2017-06-19
  • Linux运维之基础拾遗

    博客具体内容请移步博客园: http://www.cnblogs.com/ITOps/p/6151766.html

    Linux干货 2016-12-09
  • 用keepalived高可用LVS-dr模型

    环境四个虚拟机 Real server:node1:172.16.100.6         CeotOS 6 Real server:node3:172.16.100.69         CeotOS 7 Director1:172.16.100.67                        CeotOS 7 Director1:172.16.10…

    Linux干货 2017-10-15
  • LAMP 编译安装基于2.4

    一 安装前准备 说明:     操作系统:CentOS 6.7 64位     MySQL数据库版本:mariadb-5.5.48-linux-x86_64.tar.gz     Apache 版本:httpd-2.4.12.tar.bz2…

    Linux干货 2016-11-21
  • Linux基础知识之压缩、解压、归档工具

    压缩、解压、归档工具     压缩格式:gz,bz2,xz,zip,Z 压缩算法不同,压缩比也会不同     1.compress/uncompress (.Z) compress [-dfvcVr] [-b maxbits] [file …] -d: 解压缩,相当于 -c: 结果输出至标准输出, 不删除原…

    Linux干货 2016-08-19
  • find命令用法及示例

    文件查找 locate,find可是实现在文件系统上查找符合条件的文件 实现工具:locate,find locate有几下几个特性 1、依赖于事先构建好的索引库; 2、系统自动实现;(周期性任务) 3、手动更新数据库(updatedb) /var/lib/mlocate/mlocate.db 工作特性: 查找速度快; 模糊查找; 非实时查找 lo…

    Linux干货 2016-08-18

评论列表(1条)

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

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