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. [Bayes] runif: Inversion Sampling

    runifum Inversion Sampling 看样子就是个路人甲. Ref: [Bayes] Hist & line: Reject Sampling and Importance S ...

  2. 【SpringCloud微服务实战学习系列】服务治理Spring Cloud Eureka

    Spring Cloud Eureka是Spring Cloud Netflix微服务中的一部分,它基于NetFlix Sureka做了二次封装,主要负责完成微服务架构中的服务治理功能. 一.服务治理 ...

  3. Unity3D Shader 模型流光效果

    Shader "Custom/FlowColor" { Properties { _MainTex ("Base (RGB)", 2D) = "whi ...

  4. 使用 vm 加载文件中的数据到变量里面

    .json 不能写注释, 还需要严格的双引号 或者使用 .json5 // test.db [ // name {name: 1} ] // test.js const fs = require('f ...

  5. .net core 支持apk下载

    在 app.UseStaticFiles(); 后面加上 app.UseStaticFiles(new StaticFileOptions { //FileProvider = new Physica ...

  6. Saltstack之通过grains在配置文件中赋值

    案例,使用salt给客户端安装zabbix agent时需要在配置文件中自动生成主机名信息 zabbix agent安装sls zabbix-agent-install: file.managed: ...

  7. 如何将MP3录音转文字

    相信很多人都有电话录音的习惯,因为这样可以记录下很多重要的信息.那么当我们通过录音将一些重要的信息记录下来后,我们应该怎样将这些录音文件转换成文字进行记录呢?下面我们就一起来看一下吧. 操作步骤: 步 ...

  8. BP

    下面内容抄袭这里的:galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html Principles of training multi-layer neu ...

  9. Steeltoe之Service Discovery篇

    在前文一窥Spring Cloud Eureka中,已经构建了基于Eureka的服务端与客户端,可用于实现服务注册与发现功能.而借助Steeltoe的类库,可以在.NET生态系统中使用Spring C ...

  10. [No0000E8]C# 方法 参数传递

    参数传递 当调用带有参数的方法时,您需要向方法传递参数.在 C# 中,有三种向方法传递参数的方式: 方式 描述 值参数 这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值. ...