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. [原]OpenGL基础教程(一)多边形绘制

    1.opengl开发环境搭建 参考http://brothergrup.iteye.com/blog/1602471 2.为三角形填充颜色: 填充颜色函数为glColor(3/4)*(r,g,b)  ...

  2. [Linux] 硬盘构造与分区

    首先让我们从物理结构上了解一下硬盘的存储原理. 硬盘构造示意图: 1. head:磁头,磁盘盘面上的磁头,有几个磁头,就有几个盘面.从0开始编号,最大255,表示总共256个磁头. 2. cylind ...

  3. HandlerSocket介绍

    HandlerSocket的原理 HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产 ...

  4. python-Levenshtein几个计算字串相似度的函数解析

    linux环境下,没有首先安装python_Levenshtein,用法如下: 重点介绍几个该包中的几个计算字串相似度的几个函数实现. 1. Levenshtein.hamming(str1, str ...

  5. day_6.21web框架编写

    web框架都是相同,只需把某些东西改写!就可以为自己所用! 直接实现改写,补充东西!然后,就是输入一个路径,然后执行方法!!!! 更改路由,然后调用方法就好!

  6. jquery-1.11.2.min.js

    /*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ !function(a,b){& ...

  7. Google、微软、Linkedln、Uber、亚马逊等15+海外技术专家聚首2018TOP100Summit

    11月30日-12月3日,由msup主办的第七届全球软件案例研究峰会(以下简称为TOP100Summit)将在北京国家会议中心举办.本届峰会以“释放AI生产力,让组织向智能化演进”作为开幕式主题, 4 ...

  8. Echarts 的Formatter的回调函数

    option = { tooltip: { trigger: 'axis', formatter: function (params,ticket,callback) { let res = para ...

  9. 实际体验 .NET Standard 2.0 的魅力

    在我们的 .net core 大迁移工程中,有些项目完成了迁移,有些还未迁移,这就带来了一个烦恼——我们自己开发的公用类库如何在 .net core 与 .net framework 项目中共享?如果 ...

  10. 在moveit编译时找不到manipulation_msgsConfig.cmake manipulation_msgs-config.cmake文件

    这是由于少了manipulation_msgs这个包 我们在这里安装这个包就好了 在终端中输入 sudo apt-get install ros-kinetic-manipulation-msgs