SELinux 概述
SELinux 概述
概念
SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。它确保服务进程仅能访问它们应有的资源。
例如,当你在使用照片软件时,软件应该仅操作图片文件,而不能监听浏览器中的密码信息。
作用
- SELinux 域限制:对服务程序的功能进行限制,确保服务程序不能做出越权行为。
- SELinux 安全上下文:对文件资源的访问进行限制,确保只有相关的服务进程可以访问相应的文件。
SELinux 与传统权限的区别
- 传统权限:属于自主访问控制(DAC,Discretionary Access Control),基于用户/用户组设置的权限来控制文件的访问权限。
- SELinux:属于强制访问控制(MAC,Mandatory Access Control),它通过策略规则来制定访问控制,进程和文件的访问权限基于安全上下文,而不完全依赖于文件的所有者或进程的用户身份。
SELinux 工作原理
关键概念
- 主体(subject):指向访问资源(文件或目录)的进程。
- 目标(object):指被访问的资源(文件或目录)。
- 策略(policy):一组规则,用于定义主体访问目标的权限。
- 安全上下文(security context):用于标识进程、文件或目录的安全属性,决定了它们是否能够互相访问。
安全上下文的结构
安全上下文通常由以下四个字段组成:
身份标识(identity): 角色(role): 类型(type): 灵敏度(sensitivity)
- 身份标识(identity):标识进程或文件的所有者。
- 角色(role):区分进程与文件的角色,例如
system_r代表进程,object_r代表文件。 - 类型(type):用于决定进程和文件是否能互相访问,基于策略规则匹配。
- 灵敏度(sensitivity):定义安全级别,
s0,s1,s2等,数字越大,权限越高,管控越严格。
SELinux 默认策略
- targeted:默认策略,限制网络服务(如 dhcpd, httpd, named 等),对本机系统限制较少。
- mls:多级安全保护策略,限制更为严格。
SELinux 工作流程
当主体(进程)访问目标(文件或目录)时:
- SELinux 检查主体和目标的安全上下文是否匹配。
- 若安全上下文匹配并且符合策略规则,允许访问。
- 若不匹配,访问被拒绝并生成拒绝信息。
SELinux 模式
- enforcing:强制模式,启用 SELinux 且拦截所有非法请求。
- permissive:宽容模式,启用 SELinux,发出警告但不拦截。
- disabled:关闭 SELinux。
SELinux 状态与配置
查看 SELinux 状态
- 查看当前 SELinux 模式:
getenforce - 查看详细状态:
sestatus - 查看 SELinux 配置文件:
/etc/selinux/config
修改 SELinux 配置文件
bash# 编辑配置文件
vim /etc/selinux/config
# 修改 SELINUX 变量
SELINUX=enforcing # 启用 SELinux
SELINUX=disabled # 禁用 SELinux
临时修改 SELinux 模式
bash# 临时开启
setenforce 1
# 临时关闭
setenforce 0
恢复 SELinux 默认安全上下文
- restorecon:恢复文件的默认安全上下文
restorecon -Rv /web1 # 对目录和子目录恢复安全上下文
修改 SELinux 安全上下文
- chcon:手动修改目标的安全上下文
chcon -v -t httpd_sys_content_t /web1 # 设置类型为 httpd_sys_content_t
查看 SELinux 端口配置
# 查看 SELinux 允许的端口
semanage port -l
semanage 命令
semanage 用于管理 SELinux 策略,添加/修改/删除文件的默认安全上下文,管理网络端口等。
常用命令:
- 查询默认安全上下文:
semanage fcontext -l | grep /etc/passwd
- 查询允许的端口:
semanage port -l | grep http
SELinux 配置示例
使用 httpd 服务的 SELinux 设置
- 安装 httpd:
yum install httpd -y
- 设置默认网页目录:
mkdir /web1
- 修改目录安全上下文:
chcon -Rv -t httpd_sys_content_t /web1
- 修改 httpd 配置:
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/web1"
<Directory "/web1">
- 重启 httpd 服务:
systemctl restart httpd
相关文章:
SELinux 概述
SELinux 概述 概念 SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。它确保服务进程仅能访问它们应有的资源。 例…...
【十三】Golang 通道
💢欢迎来到张胤尘的开源技术站 💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 通道通道声明初始化缓冲机制无缓冲通道代码示例 带…...
DeepSeek专题:DeepSeek-V2核心知识点速览
AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台,涉及AI绘画、AI视频、大模型、AI多模态、数字人以及全行业AIGC赋能等100应用方向。星球内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等…...
Oracle19c进入EM Express(Oracle企业管理器)详细步骤
以下是使用Oracle 19c进入Oracle Enterprise Manager Database Express(EM Express)的详细步骤: ### **步骤 1:确认EM Express配置状态** 1. **登录数据库服务器** 使用Oracle用户或管理员权限账户登录操作系统。 2. **查看EM…...
游戏引擎学习第140天
回顾并为今天的内容做准备 目前代码的进展到了声音混音的部分。昨天我详细解释了声音的处理方式,声音在技术上是一个非常特别的存在,但在游戏中进行声音混音的需求其实相对简单明了,所以今天的任务应该不会太具挑战性。 今天我们会编写一个…...
C++--迭代器(iterator)介绍---主要介绍vector和string中的迭代器
目录 一、迭代器(iterator)的定义 二、迭代器的类别 三、使用迭代器 3.1 迭代器运算符 3.2 迭代器的简单应用:使用迭代器将string对象的第一个字母改为大写 3.3 将迭代器从一个元素移动到另外一个元素 3.4 迭代器运算 3.5 迭代器的复…...
RuleOS:区块链开发的“新引擎”,点燃Web3创新之火
RuleOS:区块链开发的“新引擎”,点燃Web3创新之火 在区块链技术的浪潮中,RuleOS宛如一台强劲的“新引擎”,为个人和企业开发去中心化应用(DApp)注入了前所未有的动力。它以独特的设计理念和强大的功能特性&…...
机器学习之强化学习
引言 在人工智能的众多分支中,强化学习(Reinforcement Learning, RL) 因其独特的学习范式而备受关注。与依赖标注数据的监督学习或探索数据结构的无监督学习不同,强化学习的核心是智能体(Agent)通过与环境…...
基于 uni-app 和 Vue3 开发的汉字书写练习应用
基于 uni-app 和 Vue3 开发的汉字书写练习应用 前言 本文介绍了如何使用 uni-app Vue3 uview-plus 开发一个汉字书写练习应用。该应用支持笔画演示、书写练习、进度保存等功能,可以帮助用户学习汉字书写。 在线演示 演示地址: http://demo.xiyueta.com/case/w…...
每天五分钟深度学习PyTorch:向更深的卷积神经网络挑战的ResNet
本文重点 ResNet大名鼎鼎,它是由何恺明团队设计的,它获取了2015年ImageNet冠军,它很好的解决了当神经网络层数过多出现的难以训练的问题,它创造性的设计了跳跃连接的方式,使得卷积神经网络的层数出现了大幅度提升,设置可以达到上千层,可以说resnet对于网络模型的设计具…...
electron + vue3 + vite 主进程到渲染进程的单向通信
用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目:https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程(单向) 以Electron官方文档给出的”主进程主动触发动作,发送内容给渲…...
《白帽子讲 Web 安全》之身份认证
目录 引言 一、概述 二、密码安全性 三、认证方式 (一)HTTP 认证 (二)表单登录 (三)客户端证书 (四)一次性密码(OTP) (五)多因…...
postgrel
首先按照惯例,肯定是需要对PostgreSQL数据库进行一系列信息收集的,常用的命令有以下这些:-- 版本信息select version();show server_version;select pg_read_file(PG_VERSION, 0, 200);-- 数字版本信息包括小版号SHOW server_version_num;SEL…...
Java基础——java8+新特性——方法引用(::)
1. 什么是方法引用? 定义:Java 8 引入的语法糖,用于 简化 Lambda 表达式,直接引用已有的方法。 符号:使用 :: 双冒号操作符。 本质:将方法作为函数式接口的实例传。 2. 方法引用的四种类型 类型 语法 …...
基于SpringBoot的商城管理系统(源码+部署教程)
运行环境 数据库:MySql 编译器:Intellij IDEA 前端运行环境:node.js v12.13.0 JAVA版本:JDK 1.8 主要功能 基于Springboot的商城管理系统包含管理端和用户端两个部分,主要功能有: 管理端 首页商品列…...
uniapp实现的个人中心页面(仿小红书)
采用 uniapp 实现的一款仿小红书个人中心页面模板,支持vue2、vue3, 同时适配H5、小程序等多端多应用。 简约美观大方 可到插件市场下载尝试: https://ext.dcloud.net.cn/plugin?id22516 示例...
K8s面试题总结(十一)
1.如何优化docker镜像的大小? 使用多阶段构建(multi-stage build)选择更小的基础镜像(如alpine)减少镜像层数,合并RUN命令 2.请解释Docker中的网络模式(如bridge,host,none) Bridgeÿ…...
用CMake编译glfw进行OpenGL配置,在Visual Studio上运行
Visual Studio的下载 Visual Studio 2022 C 编程环境 GLFW库安装 GLFW官网地址 GLFW官网地址:https://www.glfw.org下载相应版本,如下图: CMake软件进行编译安装 下载CMake 下载的如果是源码包,需要下载CMake软件进行编译安装…...
仿12306项目(4)
基本预定车票功能的开发 对于乘客购票来说,需要有每一个车次的余票信息,展示给乘客,供乘客选择,因此首个功能是余票的初始化,之后是余票查询,这两个都是控台端。对于会员端的购票,需要有余票查询…...
【GPT入门】第9课 思维树概念与原理
【GPT入门】第9课 思维树概念与原理 1.思维树概念与原理2. 算24游戏的方法 1.思维树概念与原理 思维树(Tree of Thought,ToT )是一种大模型推理框架,旨在解决更加复杂的多步骤推理任务,让大模型能够探索多种可能的解决…...
船载AIS的Class A、Class B和接收器到底怎么选?一篇讲清休闲帆船、渔船和小货船的设备配置指南
船载AIS设备选购全指南:从合规到实战的智能决策 清晨的港口,一艘30英尺的休闲帆船正在做最后的出海准备。船长盯着仪表盘上闪烁的AIS接收器信号,思考着是否该升级为收发一体的Class B设备——这个决定可能关系到未来航行中能否被大型商船及时…...
如何快速配置便携版:零基础制作可移植AI图像处理工具waifu2x-caffe
如何快速配置便携版:零基础制作可移植AI图像处理工具waifu2x-caffe 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe waifu2x-caffe是一款基于Caffe深度学习框架的AI图像放大和降噪工具…...
AMD Carrizo架构解析:SoC集成与HSA异构计算如何重塑移动处理器
1. 从“胶水粘合”到“原生融合”:Carrizo与Carrizo-L的架构革命2014年底,当AMD在新加坡的“计算的未来”活动上拿出Carrizo和Carrizo-L这两颗芯片时,现场的反应可能比预想的要平静一些。毕竟,对于习惯了每年“挤牙膏”式升级的行…...
跨设备游戏串流终极方案:Sunshine开源服务器高效解决游戏共享难题
跨设备游戏串流终极方案:Sunshine开源服务器高效解决游戏共享难题 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine作为一款自托管的开源游戏串流服务器&#x…...
Linux系统下Filezilla FTP客户端的两种高效部署方案
1. 为什么选择Filezilla作为Linux平台的FTP客户端? 作为Linux用户,我们经常需要在服务器之间传输文件。虽然命令行工具如scp、sftp也能完成工作,但图形化客户端在批量文件操作和可视化管理方面优势明显。Filezilla作为老牌开源FTP解决方案&am…...
如何利用The Incredible PyTorch离线文档:深度学习者的终极学习宝典
如何利用The Incredible PyTorch离线文档:深度学习者的终极学习宝典 【免费下载链接】the-incredible-pytorch The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch. 项目地址: https://gitcode.…...
Python 爬虫进阶技巧:本地 Cookies 导入实现免登录爬取
前言 在 Python 爬虫实际开发场景中,大量资讯平台、社交站点、电商后台、个人中心类页面均设置了登录权限校验,未携带有效登录身份标识的请求会直接跳转登录页、返回权限不足提示或拒绝数据响应。常规账号密码模拟登录存在诸多弊端,接口加密、验证码拦截、账号风控封禁、参…...
【Prometheus】如何排查一个 Target 显示为 “DOWN” 的问题?常见的原因有哪些(网络、端口、路径、认证)?
Prometheus Target “DOWN” 问题深度排查指南:从网络到认证的全链路诊断 用户问题原文:“如何排查一个 Target 显示为 ‘DOWN’ 的问题?常见的原因有哪些(网络、端口、路径、认证)?” 在超大规模生产环境中,Prometheus 监控着成千上万的目标实例。当某个关键业务的监控…...
诛仙手游多开最多几开?用什么云手机比较好?
很多喜欢玩诛仙手游的朋友们都喜欢多开,但是今天小编告诉你们多开也不能开太多哦,要选择合适的云手机多开才行,不然同一个ip多开很容易封号,今天小宝就来给大家分析诛仙多开几个比较合适,以及用什么云手机多开不容易封…...
Confluence数据迁移踩坑实录:从物理机到K8s集群,我是如何无损迁移200G知识库的?
Confluence企业级数据迁移实战:从物理架构到Kubernetes的无缝过渡 当企业知识库规模突破200GB时,迁移不再是简单的备份还原操作。去年我们团队将一个运行7年的Confluence实例从老旧物理服务器迁移到Kubernetes集群,期间经历了数据库崩溃、文件…...
