selinux firewalld

一、selinux

1.说明

SELinux 是 Security-Enhanced Linux 的缩写,意思是安全强化的 linux;

SELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用

DAC(Discretionary Access Control)自主访问控制系统
MAC(Mandatory Access Control)强制访问控制系统

2.工作原理

        SELinux 是通过 MAC 的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源

主体(subject):就是进程;
目标(object):被主体访问的资源,可以是文件、目录、端口等;

策略(policy):由于进程与文件数量庞大,因此 SELinux 会依据某些服务来制定基本的访问安全策略。这些策略内还会有详细的规则(rule)来指定不同的服务开放某些资源的访问与否。目前主要的策略有:

  • targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;

  • strict:完整的 SELinux 限制,限制方面较为严格;

安全上下文(security context):主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须一致才能够顺利访问。 最终文件的成功访问还是与文件系统的 rwx 权限设置有关 

大部分网络服务程序的进程访问目标对象(目录、文件、端口)进行标签匹配。如果目标对象使用户自定义的必须要更改标签

查看文件的安全上下文:

[root@localhost ~]# ls -Z

安全上下文用冒号分为四个字段:

① unconfined_u    ② object_r    ③ admin_home_t    ④ s0

① 身份标识(Identify):相当于账号方面的身份标识,主要有以下三种常见的类型:

root:表示root的账号身份;

system_u:表示程序方面的标识,通常就是进程;

unconfined_u:代表的是一般用户账号相关的身份;

② 角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色有:

object_r:代表的是文件或目录等文件资源;

system_r:代表的是进程;

③ 类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于这个类型字段。而类型字段在文件与进程的定义不太相同,分别是:   content标签

type:在文件资源上面称为类型;

domain:在主体程序中则称为域;xxxx_xxx_xxx_t

domain需要与type搭配,则该程序才能够顺利读取文件资源;

④ 最后一个字段是和MLS和MCS相关的东西,代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏度的分级。数值越大、灵敏度越高

s0:不开启级别控制;

s1:开启级别并严格执行;

s2:相对 s1 而言较为宽松,不是很严格

3.启动、关闭与查看

① selinux 的三种模式:

enforcing:强制模式,代表SELinux正在运行中,开始限制 domain/type;
permissive:宽容模式,代表 SELinux 正在运行中,不过仅会有警告信息并不会实际限制 domain/type 的访问;
disabled:关闭,SELinux 并没有实际运行
①
# 查看目前的selinux模式
[root@localhost ~]# getenforce 
Enforcing   # 强制模式②
# 查看目前selinux使用的策略
[root@localhost ~]# sestatus
SELinux status:                 enabled           # SELinux已加载并运行,若为disabled,则完全关闭
SELinuxfs mount:                /sys/fs/selinux   # SELinux的虚拟文件系统挂载点
SELinux root directory:         /etc/selinux      # SELinux主配置目录
Loaded policy name:             targeted          # 当前加载的策略名称
Current mode:                   enforcing         # 当前运行模式
Mode from config file:          enforcing         # 配置文件中设置的模式
Policy MLS status:              enabled           # 是否启用多级安全(Multi-Level Security)
Policy deny_unknown status:     allowed           # 未知类型的操作默认处理方式
Memory protection checking:     actual (secure)   # 内存保护检查级别
Max kernel policy version:      33                # 内核支持的最高策略版本③
# 查看selinux的策略
[root@localhost ~]# vim /etc/selinux/config
SELINUX=enforcing   # 没有启动selinux模块再次启动selinux模块时,系统每个文件都会设置selinux标签
SELINUXTYPE=targeted改变策略之后需要重新启动;如果由enforcing或permissive改成disabled,或由disabled改为其它两个,也必须要重新启动;将selinux模式在enforcing和permissive之间切换的方法为:setenforce 0 转换成permissive宽容模式setenforce 1转换成enforcing强制模式

② 实验一:使用 httpd 服务演示安全上下文值的设定

临时生效 (chcon = change context)chcon [-R] [-t type] [-u user] [-r role] 文件
-R:连同该目录下的子目录也同时修改;
-t:后面接安全上下文的类型字段;
-u:后面接身份识别;
-r:后面接角色
chcon [-R] --reference=范例文件 文件 将文件的安全上下文按照范例文件修改
# 原index.html安全上下文
[root@localhost ~]# ll -Z /www/index.html 
-rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 12  5月 26 16:19 /www/index.html# 经过代码更改:
[root@localhost ~]# ll -Z /usr/share/nginx/html/index.html 
lrwxrwxrwx. 1 root root system_u:object_r:httpd_sys_content_t:s0 25  7月 16  20sr/share/nginx/html/index.html -> ../../testpage/index.html[root@localhost ~]# chcon -t httpd_sys_content_t /www/ -R  # 修改后index.html安全上下文
[root@localhost ~]# ll -Z /www/index.html 
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 12  5月 269 /www/index.html# chcon [-R] --reference=范例文件 文件 将文件的安全上下文按照范例文件修改
[root@localhost ~]# chcon --reference /usr/share/nginx/html/ /test[root@localhost ~]# ll -Zd /test
drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0 6  5月 26 17:00 /test

③ 重置指定文件或目录的安全上下文

restorecon [-Rv] 文件或目录
-R:连同子目录一起修改;
-v:将过程显示到屏幕上
restorecon怎么会知道每个目录记载的默认selinux type类型呢?因为系统将每个目录的默认selinux type类型记录在/etc/selinux/targeted/contexts/目录内。但是该目录内有很多不同的数据,所以我们可以用semanage这个命令的功能来查询与修改。
semanage {login|user|port|interface|fcontext|translation} -l    # 永久更改
semanage fcontext -{a|d|m} [-frst] file_spec
-l为查询;
-a:增加一些目录的默认安全上下文的设置;
-m:修改;
-d:删除;
-t:类型

restorecon  [-Rv]  文件或目录

# 原index.html安全上下文
[root@localhost ~]# ll -Z /www 
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 12  5月 269 /www# 经过代码更改:
[root@localhost ~]# restorecon /www # 修改后index.html安全上下文
[root@localhost ~]# ll -Zd /www
drwxr-xr-x. 3 root root unconfined_u:object_r:default_t:s0 33  5月 26 16:33 /www

semanage {login|user|port|interface|fcontext|translation} -l    # 永久更改

# 为SELinux添加一条持久化的文件上下文规则,确保/www目录及其内容被标记为httpd可访问的内容
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /www# 标签未立刻改变是因为只是基于内核层做了更改,属性依旧是原来的default
[root@localhost ~]# ll -Zd /www
drwxr-xr-x. 3 root root unconfined_u:object_r:default_t:s0 33  5月 26 16:33 /www# 进行回滚操作加载内核层信息
[root@localhost ~]# restorecon /www   # 标签永久生效
[root@localhost ~]# ll -Zd /www
drwxr-xr-x. 3 root root unconfined_u:object_r:httpd_sys_content_t:s0 33  5月 26 16:33 /www

semanage  fcontext  -{a|d|m}  [-frst]  file_spec(更改端口标签)

[root@localhost ~]# semanage port -l | grep -w 80    # 查看80端口的SELinux规则
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 900[root@localhost ~]# semanage port -a -t http_port_t -p tcp 8909    # 添加新的HTTP端口规则[root@localhost ~]# semanage port -l | grep -w 80
http_port_t                    tcp      8909, 80, 81, 443, 488, 8008, 8009, 84400

总结:

selinux 访问控制
1.服务配置时如果对服务程序的数据文件自定义路径时,selinux开启必须对数据文件的标签进行修改;
2.服务配置时自定义端口,需要更改端口的标签

二、firewalld

1.什么是防火墙

① 防火墙:防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出

② 防火墙又可以分为硬件防火墙与软件防火墙

硬件防火墙:

由厂商设计好的主机硬件,这台硬件防火墙的操作系统主要以提供数据包数据的过滤机制为主,并将其他不必要的功能拿掉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…

企业数字化转型实战:某行业研究院如何通过SD-WAN技术优化网络架构?

一、引言 随着企业数字化转型的深入推进,传统网络架构在灵活性、可靠性和管理效率方面逐渐暴露不足。SD-WAN(软件定义广域网)技术凭借其智能化、自动化和高效的特点,逐渐成为企业网络架构优化的首选方案。本文以某研究院数字化基…

数字证书_CA_详解

目录 一、数字证书简介 二、 CA(证书颁发机构) (一) 证书链(信任链) 1. 根证书 2. 中间证书 3. 网站证书 (二) 抓包软件的证书链与信任机制 1. 抓包通信流程 2. 证书链伪造与信任验证流程 (三) 关于移动设备的CA 一、数…

Android协程学习

目录 Android上的Kotlin协程介绍基本概念与简单使用示例协程的高级用法 结构化并发线程调度器(Dispatchers)自定义调度器并发:同步 vs 异步 异步并发(async 并行执行)同步顺序执行协程取消与超时 取消机制超时控制异步数据流 Flow协程间通信 使用 Channel使用 StateFlow /…

统计学(第8版)——假设检验学习笔记(考试用)

一、假设检验核心框架 (一)解决的核心问题 判断样本与总体 / 样本与样本的差异是由抽样误差还是本质差异引起 典型场景: 产品合格率是否达标(比例检验)工艺改进后均值是否显著变化(均值检验&#xff09…

Java求职者面试:微服务技术与源码原理深度解析

Java求职者面试:微服务技术与源码原理深度解析 第一轮:基础概念问题 1. 请解释什么是微服务架构,并说明其优势和挑战。 微服务架构是一种将单体应用拆分为多个小型、独立的服务的软件开发方法。每个服务都运行在自己的进程中,并…

c# 局部函数 定义、功能与示例

C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…

ava多线程实现HTTP断点续传:原理、设计与代码实现

一、引言 在当今互联网环境下,大文件下载需求日益增长。传统单线程下载方式效率低下,且一旦下载中断,需要重新开始。断点续传技术通过将文件分块并利用多线程并行下载,显著提升了下载效率,同时支持中断后继续下载。本…

vla学习 富

# 基于diffusion # π0 ## 架构 其核心思想是在预训练好的视觉语言模型(VLM)基础上添加一个“动作专家”(action expert),通过流匹配(flow matching)的方式生成连续的高频控制指令。整个架构可以…

降雨预测系统(机器学习)

这是一个基于Python开发的降雨预测系统,使用机器学习算法对指定月份的降雨概率进行预测。该系统提供了友好的图形用户界面(GUI),支持数据可视化和交互式操作。 ## 功能特点 - 📊 生成历史降雨数据(2015-2024年) - 🤖 使用逻辑回归模型进行降雨预测 - 📈 可视化…

逻辑回归与Softmax

Softmax函数是一种将一个含任意实数的K维向量转化为另一个K维向量的函数,这个输出向量的每个元素都在(0, 1)区间内,并且所有元素之和等于1。 因此,它可以被看作是某种概率分布,常用于多分类问题中作为输出层的激活函数。这里我们以拓展逻辑回归解决多分类的角度对Softmax函…

基于PSO与BP神经网络分类模型的特征选择实战(Python实现)

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在机器学习建模过程中,特征选择是提升模型性能、降低计算复杂度的重要环节。尤其在高维数据场景下&…

深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(1)

一、背景:为什么需要模型剪枝? 随着深度学习的发展,模型参数量和计算量呈指数级增长。以ResNet18为例,其在ImageNet上的参数量约为1100万,虽然在服务器端运行流畅,但在移动端或嵌入式设备上部署时&#xf…

uni-app学习笔记二十四--showLoading和showModal的用法

showLoading(OBJECT) 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的文字内容,显示在loading的下方maskBoolean否是否显示透明蒙层,防止触摸穿透,默…

【大模型RAG】六大 LangChain 支持向量库详细对比

摘要 向量数据库已经成为检索增强生成(RAG)、推荐系统和多模态检索的核心基础设施。本文从 Chroma、Elasticsearch、Milvus、Redis、FAISS、Pinecone 六款 LangChain 官方支持的 VectorStore 出发,梳理它们的特性、典型应用场景与性能边界&a…

【MySQL】数据库三大范式

目录 一. 什么是范式 二. 第一范式 三. 第二范式 不满足第二范式时可能出现的问题 四. 第三范式 一. 什么是范式 在数据库中范式其实就是一组规则,在我们设计数据库的时候,需要遵守不同的规则要求,设计出合理的关系型数据库,…

Coze工作流-语音故事创作-文本转语音的应用

教程简介 本教程将带着大家去了解怎么样把文本转换成语音,例如说我们要做一些有声故事,我们可能会用上一些语音的技术,来把你创作的故事朗读出来 首先我们创建一个工作流 对各个模块进行编辑,如果觉得系统提示词写的不好&#xf…

5.子网划分及分片相关计算

某公司网络使用 IP 地址空间 192.168.2.0/24,现需将其均分给 市场部 和 研发部 两个子网。已知: 🏢 市场部子网 🖥️ 已分配 IP 地址范围:192.168.2.1 ~ 192.168.2.30🌐 路由器接口 IP:192.16…

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…