• SELinux介绍


    SELinux概念

            安全加强的Linux,早期的Linux系统安全由系统管理员控制.SELinux就是一些安全规则的集合,类似于人类生活中的法律.

            DAC:   自由访问控制(以前的linux版本)

                 DAC环境下的进程是无束缚的

            MAC:  强制访问控制(即使是root用户也会受到MAC的控制)

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

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

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

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

    SELinux工作类型

        SELinux有四种工作类型:

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

              targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易 被入侵的进程,centos4只保护13个服务,centos5保护88个服务

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

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

        targeted为默认类型,minimum和mls稳定性不足,未加以应用,strict已不再使用

    SELinux安全上下文

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

           规定每个进程只能访问哪些文件和端口

           chcon    -t      var_log_t       /var/log/messages

           restorecon   /var/log/messages

           semanage  fcontext  -l | grep   /var/log/messages

           semanage  fcontext   -a    -t    httpd_sys_content_t      "/data/html(/.*)?" 

           semanage命令需要安装软件包 policycoreutils-python

    启用和禁用SELinux

      查看当前系统是否启用了SELinux  查看文件或者进程信息加 -Z 选项,如果LABEL信息不为空则表示已经启动了SELinux,如果为空则表示禁用了SELinux.

     1 [root@centos7 ~]# ll -Z guess.sh 
     2 -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 guess.sh
     3 [root@centos7 ~]# ps auxZ
     4 LABEL                           USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
     5 system_u:system_r:init_t:s0     root          1  0.0  0.3 193704  6844 ?        Ss   15:55   0:04 /usr/lib/systemd/
     6 system_u:system_r:kernel_t:s0   root          2  0.0  0.0      0     0 ?        S    15:55   0:00 [kthreadd]
     7 system_u:system_r:kernel_t:s0   root          3  0.0  0.0      0     0 ?        S    15:55   0:00 [ksoftirqd/0]
     8 system_u:system_r:kernel_t:s0   root          4  0.1  0.0      0     0 ?        S    15:55   0:18 [kworker/0:0]
     9 system_u:system_r:kernel_t:s0   root          5  0.0  0.0      0     0 ?        S<   15:55   0:00 [kworker/0:0H]
    10 system_u:system_r:kernel_t:s0   root          7  0.0  0.0      0     0 ?        S    15:55   0:00 [migration/0]
    View Code

    临时切换成enforcing            setenforce  1         启用所有规则

    临时切换成permissive         setenforce  0         提示告警信息,但不会真正阻止程序执行

    永久启用(enforcing)或者禁用(disabled)    vim  /etc/selinux/config   

    SELinux中(enforcing和permissive)两者和disabled无法直接相互切换.如果需要进行切换,必须修改配置文件,重启机器才能生效.

    管理端口标签

       一个服务不能够随意使用任何一个端口,它的端口使用范围收到SELinux的策略限制.

       查看端口标签    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

    管理SELinux布尔值的开关

          布尔型规则:  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)

    管理日志

         SELinux会把日志信息写入到/var/log/messages中,通过查看分析日志来判定某个服务不能正常运行是不是由于SELinux设置的策略不对导致的.

         SElinux会把告警信息全部写入日志   grep    setroubleshoot      /var/log/messages

         sealert  -l UUID 列出具体的SELinux的详细问题信息包括解决方法

         

         

  • 相关阅读:
    git
    读后感
    总结
    封装,策略,Asp换脸
    典型用户
    第四次作业
    第三次作业
    计算
    感悟
    对git的认识
  • 原文地址:https://www.cnblogs.com/yxh168/p/9040350.html
Copyright © 2020-2023  润新知