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.

 [root@centos7 ~]# ll -Z guess.sh
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 guess.sh
[root@centos7 ~]# ps auxZ
LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
system_u:system_r:init_t:s0 root 0.0 0.3 ? Ss : : /usr/lib/systemd/
system_u:system_r:kernel_t:s0 root 0.0 0.0 ? S : : [kthreadd]
system_u:system_r:kernel_t:s0 root 0.0 0.0 ? S : : [ksoftirqd/]
system_u:system_r:kernel_t:s0 root 0.1 0.0 ? S : : [kworker/:]
system_u:system_r:kernel_t:s0 root 0.0 0.0 ? S< : : [kworker/:0H]
system_u:system_r:kernel_t:s0 root 0.0 0.0 ? S : : [migration/]

临时切换成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的详细问题信息包括解决方法

SELinux介绍的更多相关文章

  1. Linux SELinux 介绍详解

    Linux SELinux 介绍详解 SElinux 简介 SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的.它已被植入到了Linux系统的内核当中 ...

  2. selinux介绍/状态查看/开启/关闭

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统--百度百科. 基于经验来说SELinux在 ...

  3. selinux介绍及关闭selinux指南

    selinux简介 SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的 实现,是 Linux历史上最杰出的新安全子系统.NSA是在Linux ...

  4. CentOS7的防火墙以及selinux介绍/安装telnet命令/安装netstat与ifconfig命令

    简介:firewall防火墙的使用 防火墙:主要用户信息安全防护,主要有软件防火墙和硬件防火墙.firewalld防火墙是软件防火墙,在centos7 之前默认采用的防火墙是iptables,而在ce ...

  5. zabbix安装,关闭SELinux

    一.缘由 在安装zabbix的时候,按照官网的Zabbix Manual一路跑下来,zabbix的dashboard提示:zabbix server is not running the inform ...

  6. linux的安全--Selinux,tcp_wrappers,iptables使用

    一.linux安全 安全主要是端口与服务的对应配置 1.1 linux安全主要通过下面三个进行加固 Selinux----主要是对内核的访问权限加以控制 tcp_wrappers---一定程度上限制某 ...

  7. docker容器安全

    title: docker容器安全 tags: Docker,容器,安全策略 grammar_cjkRuby: true --- Docker容器的安全性 1.安全策略-Cgroup 1.限制Cpu ...

  8. Centos7 二进制安装 Kubernetes 1.13

    目录 1.目录 1.1.什么是 Kubernetes? 1.2.Kubernetes 有哪些优势? 2.环境准备 2.1.网络配置 2.2.更改 HOSTNAME 2.3.配置ssh免密码登录登录 2 ...

  9. Apache修改了配置文件中的路径后,登录该地址网页出现问题 (其中介绍了selinux的域和安全上下文)

    默认的网站数据存放在: /var/www/html 首页名称: index.html Apache服务程序的主配置文件: /etc/httpd/conf/httpd.conf (若是将  119  行 ...

随机推荐

  1. CentOS7 设置软件镜像源

    Linux拥有众多的发行版,每个发行版都有提供镜像,但是,在国内这些镜像的下载速度参差不齐,偶尔会有更新失败的情况. 网上众多推荐的镜像源为163的镜像,笔者通过一段时间的试用,发现某些小众带宽访问1 ...

  2. .bat文件调用java类的main方法

    此处记录一个小例子,备用,说不定哪天写小工具时会用到. @echo on set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43 set classpath=. ...

  3. linux-Centos 7下bond与vlan技术的结合

    服务器eno1与eno2作bonding,捆绑成bond0接口,服务器对端交换机端口,同属于301.302号vlan接口 vlan 301: 10.1.2.65/27                  ...

  4. 试着理解cookie和session

    web服务一个特点是提供个性化服务,为很多客户端提供服务,那么每个用户不同,服务自然不同,所以要记住用户及其状态,这也很多应用软件的通用功能. 由于http是无状态的,Session和Cookie是两 ...

  5. day_4_24 py

    ''' 函数的嵌套调用应用 ''' # def print_line(): # print("="*50) # def print_5_line(): # i = 0 # whil ...

  6. day_5.25py

    作用域

  7. 书写 sql 中关于 update 多表联合更新的方法

    SQL Update多表联合更新的方法(1) sqlite 多表更新方法//----------------------------------update t1 set col1=t2.col1fr ...

  8. String对象的比较

    public class StringTest { /* * equals 和 ==的区别 * 如果类中没有重写equals(),那么默认比较也是内存地址 * ==在基本数据类型中比较的是值! * i ...

  9. ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

    这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  10. Flask web开发之路十

    首先介绍循环引用的问题: 当一个模块需要引用另一个模块的类,而另一个模块又需要引用这个模块的类时,就出现了循环引用,而没法导入类,这时候可以切断其中一条引用路径,增加一个模块 项目结构: models ...