SElinux管理
SElinux: 是Linux的一个强制访问控制的安全模块
SElinux的相关概念:
对象:文件、目录、进程、端口等
主体:进程称为主体
SElinux将所有的文件都赋予一个type类型的标签,所有的进程也赋予一个domain类型的标签。domain标签能够执行的操作由安全策略里定义
#ubuntu没有使用selinux
安全策略:定义主体读取对象的规则数据库,定义那些行为是允许的,那些行为是拒绝的。
SElinux的四种工作类型
Strict:CentOS 5,每个进程都受到selinux的控制
targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程
minimum:CentOS 7,修改的targeted,只对选择的网络服务
mls:提供MLS(多级安全)机制的安全性
targeted为默认类型,其他三种都不再使用了
SElinux的安全上下文
安全上下文:就是一个标签。规定只有特定标志的进程才能访问特定标识的文件或目录
在linux中,一切皆文件
在selinux中,一切皆对象。
安全上下文有五个元素组成:
user:role:type:sensitivity:category
(1)User:指示登录系统的用户类型,进程:如system_u为系统服务进程,是受到管制的,unconfined_u为不管制的进程,用户自己开启的,如 bash,文件:system_u系统进程创建的文件, unconfined_u为用户自已创建的文件
(2)Role:定义文件,进程和用户的用途:进程:system_r为系统服务进程,受到管制。unconfined_r 为不管制进程,通常都是用户自己开启的,如 bash,文件:object_r
(3)Type:指定数据类型,规则中定义何种进程类型访问何种文件Target策略基于type实现,多服务共用:public_content_t
(4)Sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,secret, 一个对象有且只有一个sensitivity,分0-15级,s0最低,Target策略默认使用s0
(5)Category:对于特定组织划分不分层的分类,如FBI Secret,NSA secret, 一个对象可以有多个categroy, c0-c1023共1024个分类, Target 策略不使用category
启用和禁用selinux
selinux的状态
enforcing:启用selinux,强制,每个受限的进程都必然受限
permissive:启用selinux,但是违反了策略只会报警,不会阻止
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}
文件安全标签的管理
给文件重新打标签:chcon工具
chcon -R -t 上下文 目录或者文件
#-R, --recursive:递归处理所有的文件及子目录
恢复文件的默认标签:restorecon
restorecon [-R] /path/to/somewhere #目录文件就加R参数
修改默认的标签:semanage工具
#查看默认的安全上下文
semanage fcontext -l
#添加安全上下文
semanage fcontext -a -t httpd_sys_content_t ‘/testdir(/.*)?’ #-a表示添加
restorecon -Rv /testdir
#删除安全上下文
semanage fcontext -d -t httpd_sys_content_t ‘/testdir(/.*)?’
管理端口标签
#查看端口标签
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布尔值
对指定服务的功能进行设置,服务能否正常启用和服务是否正常启动和selinux对应的bool值是否开启共同决定。
#布尔型规则:
getsebool
setsebool
#临时生效,重启就不生效了 永久生效: 加上一个大写的P
#查看指定的服务是否开启了
getsebool -a | grep 服务名
#查看bool命令:
getsebool [-a] [boolean]
semanage boolean -l
semanage boolean -l -C 查看修改过的布尔值
#设置bool值命令:
setsebool [-P] boolean value(on,off)
setsebool [-P] Boolean=value(1,0)
SElinux管理的更多相关文章
- 0060 Linux SELinux 管理命令
1. SELinux 的起源 SELinux 是一个面向政府和行业的产品,由 NSA.Network Associates.Tresys 以及其他组织设计和开发.尽管 NSA 将其作为一个补丁集引入, ...
- [转]SELinux管理与配置
原文链接:http://blog.csdn.net/huangbiao86/article/details/6641893 1.1 SElinux概述 SELinux(Security-Enhance ...
- setsebool命令详解与SELinux管理
setsebool命令是用来修改SElinux策略内各项规则的布尔值.setsebool命令和getsebool命令是SELinux修改和查询布尔值的一套工具组.SELinux的策略与规则管理相关命令 ...
- Linux命令应用大词典-第29章 SELinux管理
29.1 sestaus:显示SElinux的状态 29.2 getenforce:显示当前SELinux的应用模式 29.3 setenforce:修改SELinux的应用模式 29.4 getfa ...
- 第17章 程序管理与SELinux初探
什么是进程 触发任何一个事件时,系统都会将它定义为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个进程一组有效的权限设置. 进程与程序 进程:执行一个 ...
- SELinux 入门
几乎可以肯定每个人都听说过 SELinux (更准确的说,尝试关闭过),甚至某些过往的经验让您对 SELinux 产生了偏见.不过随着日益增长的 0-day 安全漏洞,或许现在是时候去了解下这个在 L ...
- Centos7.5中的SElinux操作命令说明
设置Selinux模式 setenforce 0 0表示警告模式 1表示强制模式 关闭要设置/etc/sysconfig/selinux下将"SELINUX=enforcing"改 ...
- SElinux(转)
转自:http://www.361way.com/rh134-selinux/4653.html RH134小结(四)初识SElinux 2015年8月2日admin发表评论阅读评论 一.SEli ...
- Linux下MySQL/MariaDB Galera集群搭建过程
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...
随机推荐
- 200 行代码实现基于 Paxos 的 KV 存储
前言 写完[paxos 的直观解释]之后,网友都说疗效甚好,但是也会对这篇教程中一些环节提出疑问(有疑问说明真的看懂了 ),例如怎么把只能确定一个值的 paxos 应用到实际场景中. 既然 Talk ...
- Fail2ban 配置详解 配置说明
fail2ban的配置主要由基础配置(fail2ban.conf)和监禁配置(jail.conf)两部分组成. fail2ban的配置采用标签块"[块名]"和键值"key ...
- STM32 CubeMx使用教程
一.STM32CubeMX 简介 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以 ...
- Go到底能不能实现安全的双检锁?
不安全的双检锁 从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例? 有些同学可能会把其它语言中的双检锁模式移植过来,双检锁模式也称为懒汉模式,首次用到的时候才创建实例.大部分人首次用G ...
- 理“ Druid 元数据”之乱
vivo 互联网大数据团队-Zheng Xiaofeng 一.背景 Druid 是一个专为大型数据集上的高性能切片和 OLAP 分析而设计的数据存储系统. 由于Druid 能够同时提供离线和实时数据的 ...
- nginx 部署前端资源的最佳方案
前言 最近刚来一个运维小伙伴,做线上环境的部署的时候,前端更新资源后,总是需要清缓存才能看到个更新后的结果.客户那边也反馈更新了功能,看不到. 方案 前端小伙伴应该都知道浏览器的缓存策略,协商缓存和强 ...
- C#取消正在运行的Task
更新记录 本文迁移自Panda666原博客,原发布时间:2021年6月29日. 一.说明 Task默认就依托于底层线程池中的线程,使用.NET为我们定义好的CancellationTokenSourc ...
- 13.LAMP架构介绍及配置
LAMP架构介绍及配置 LAMP简介与概述 LAMP概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境. LAMP是一 ...
- 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》
论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...
- 常见的git命令和git->github错误
相关命令 git remote git remote add origin xxx (xxx为仓库链接) 给这个链接取一个名字,为origin git pull git pull <远程主机名& ...