Selinux介绍

SELinux:Security-Enhanced Linux, 是美国国家安全局(NSA=The

National Security Agency)和SCC(Secure ComputingCorporation)开发的

Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布, Linux内核版本后集成在内核中

DAC:Discretionary Access Control自由访问控制

MAC:Mandatory Access Control 强制访问控制

DAC环境下进程是无束缚的

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

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

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

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

Selinux策略

对象(object):所有可以读取的对象,包括文件、目录和进程,端口等

主体:进程称为主体(subject)

SELinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain的标签。domain标签能够执行的操作由安全策略里定义

当一个subject试图访问一个object, Kernel中的策略执行服务器将检查AVC(访问矢量缓存Access Vector Cache), 在AVC中, subject和object的权限被缓存

(cached),查找“应用+文件”的安全环境。然后根据查询结果允许或拒绝访问

安全策略:定义主体读取对象的规则数据库,规则中记录了哪个类型的主体使用哪个方法读取哪一个对象是允许还是拒绝的,并且定义了哪种行为是充许或拒绝

Selinux工作过程

Selinux工作类型

SELinux有四种工作类型:

Strict:CentOS 5,每个进程都受到selinux的控制

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

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

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

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

selinux安全上下文

传统Linux,一切皆文件,由用户,组,权限控制访问

在SELinux中,一切皆对象(object),由存放在inode的扩展属性域的安全元素所控制其访问

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

安全上下文有五个元素组成:

user:role:type:sensitivity:category

user_u:object_r:tmp_t:s0:c0

实际上下文:存放在文件系统中, ls –Z;ps –Z

期望(默认)上下文:存放在二进制的SELinux策略库(映射目录和期望安全上下文)中

semanage fcontext –l

五个安全元素

User:指示登录系统的用户类型,进程:如system_u为系统服务进程,是受到管制的, unconfined_u为不管制的进程,用户自己开启的,如 bash,文件:

system_u系统进程创建的文件, unconfined_u为用户自已创建的文件

Role:定义文件,进程和用户的用途:进程:system_r为系统服务进程,受到管制。unconfined_r 为不管制进程,通常都是用户自己开启的,如 bash,文件:object_r

Type:指定数据类型,规则中定义何种进程类型访问何种文件Target策略基于type实现,多服务共用:public_content_t

Sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,secret, 一个对象有且只有一个sensitivity,分0-15级,s0最低,Target策略默认使用s0

Category:对于特定组织划分不分层的分类,如FBI Secret, NSA secret, 一个对象可以有多个categroy, c0-c1023共1024个分类, Target 策略不使用category

设置selinux

配置SELinux:

SELinux是否启用

给文件重新打安全标签

给端口设置安全标签

设定某些操作的布尔型开关

SELinux的日志管理

SELinux的状态:

enforcing:强制,每个受限的进程都必然受限

permissive:允许,每个受限的进程违规操作不会被禁止,但会被记录于

审计日志

disabled:禁用

配置selinux

相关命令:

getenforce: 获取selinux当前状态

sestatus :查看selinux状态

setenforce 0|1

0: 设置为permissive

1: 设置为enforcing

配置文件:

/boot/grub/grub.conf 在kernel行使用selinux=0禁用SELinux

/boot/grub2/grub.cfg 在linux16行使用selinux=0禁用SELinux

/etc/selinux/config

/etc/sysconfig/selinux

SELINUX={disabled|enforcing|permissive}

默认安全上下文查询与修改

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(/.*)?’

selinux端口标签

查看端口标签

semanage port –l

添加端口

semanage port -a -t port_label -p tcp|udpPORT

semanage port -a -t http_port_t -p tcp 9527

删除端口

semanage port -d -t port_label -p tcp|udpPORT

semanage port -d -t http_port_t -p tcp 9527

修改现有端口为新标签

semanage port -m -t port_label -p tcp|udpPORT

semanage port -m -t http_port_t -p tcp 9527

selinux日志管理

yum install setroubleshoot( 重启生效)

将错误的信息写入/var/log/message

grep setroubleshoot /var/log/messages

查看安全事件日志说明

sealert -l UUID

扫描并分析日志

sealert -a /var/log/audit/audit.log

继续关注,后续持续更新......

目前10000+人已关注加入我们

       

       

selinux= 为 disabled_Selinux安全加固相关推荐

  1. linux中根目录下各个目录的作用

    /bin 二进制可执行命令.该目录下存放着普通用户的命令 /dev 系统的设备文件,即设备的驱动程序 /home 用户主目录的基点 /lost-found 这个目录平时是空的,当系统非正常关机而留下的 ...

  2. linux一键优化脚本1.0

    2019独角兽企业重金招聘Python工程师标准>>> #!/bin/bash #Author:Johnny.Feng #fengjihu@chnvideo.com . /etc/i ...

  3. 信息安全-访问控制技术原理与应用

    一.访问控制概述 1.1 访问控制概念 指对资源对象的访问者授权.控制的方法及运行机制 访问者:又称为主体,可以是用户.进程.应用程序等 资源对象:又称为客体,即被访问的对象,可以是文件.应用服务.数 ...

  4. Linux的常用指令学习以及LInux的文件目录的简介

    一:目录的简介(简单了解即可) 目录 简介 / 根目录 bin 系统可执行程序(二进制),如命令. boot 内核和启动程序,所有和启动相关的文件都保存在这里. grub 引导器相关文件 dev 设备 ...

  5. Linux系统的基本操作

    .前言: [文章·末尾给大家留下了大量的福利] 1-Linux基础 Linux 它是一个类似Unix的操作系统,表示是一个可爱的小企鹅.1991有芬兰人林纳斯·托瓦滋发布的一个系统.它是基于无版权的软 ...

  6. 干货分享——Linux常用命令总结

    目录 前言 一.Linux权限的概念 二.Linux下基本命令 三.Linux系统根目录下各个目录的作用 前言 关于linux的一些常用命令总结... 一.Linux权限的概念 Linux下有两种用户 ...

  7. linux文件目录:Linux中各目录(文件夹)作用详解(持续更新)

    进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是"文件系统",文件的存放就是在目录下面,那我们了解下"Linux中各目录(文件夹)作用详解"还 ...

  8. 《最强Android书 架构大剖析》读书笔记

    文章目录 第一章 Android 体系结构的变革之路 1.2 Android系统源码目录 与Linux的异同 Android的框架 原生二进制可执行文件 Android 的原生库 核心(core)库 ...

  9. 浅析不同情况下Docker的逃逸方法

    火线Zone社区(https://zone.huoxian.cn/) 一.Docker逃逸 1.docker daemon api未授权访问 漏洞原理:在使用docker swarm的时候,节点上会开 ...

最新文章

  1. Pandas 数据类型概述与转换实战
  2. 经验 | 详解 Faster R-CNN目标检测的实现过程
  3. 文件夹获取管理员权限脚本
  4. Silverlight 异步单元测试
  5. MYSQL命令行常用命令
  6. windows使用cmd(dos命令)映射网络驱动器
  7. E71使用蓝牙连接PC套件的一些经验
  8. ffmpeg ffprobe查看视频文件编码格式
  9. 【禁用U盘】电脑windows7/10注册表、组策略禁用优盘;
  10. android打包后无法访问http请求
  11. 移动前端自适应适配布局解决方案和比较
  12. 骨传导耳机哪个牌子好?哪些款式最值得入手?
  13. 使用Python获取DNS记录
  14. java计算机毕业设计自动化办公系统源码+mysql数据库+系统+lw文档+部署
  15. ADB将外置TF储存卡融合本机ROM(内部储存)
  16. 不能位虚拟电脑打开一个新任务
  17. 浅谈Wireshark的使用
  18. linux离线安装yum包
  19. 计算机网络怎么知道起始序号,怎么知道自己电脑上操作系统的序列号?
  20. ArcGIS超链接使用方法

热门文章

  1. 【Drools三】打工人学习Drools高级语法
  2. 第1章 编程心理门槛
  3. 很喜欢VS.NET 2003对条件编译的代码提示
  4. 一级域名301重定向到www二级域名
  5. poj 1228 Grandpa's Estate 给定了一个凸包的部分顶点和边上的点,判断是否能唯一确定一个凸包...
  6. Android 报错:Conversion to Dalvik format failed: ...
  7. 在SQL中使用PL/SQL函数存在的问题
  8. 过滤Android工程中多余的资源文件
  9. c++ 字典_再来瞄一眼字典与集合?
  10. 从资深遥控器在家工作的5个技巧