第七章selinux----第八章防火墙

embedded/2024/12/2 23:14:16/

1、selinux的说明

SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux。 SELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用。 系统资源都是通过程序进行访问的,如果将 /var/www/html/ 权限设置为777,代表所有程序均可对该 目录访问,如果已经启动www服务器软件,那么该软件触发的进程将可以写入该目录,而该进程是对整 个internet提供服务的。NSA为了控制这方面的权限与进程的问题,就使用linux来作为研究目标,最后 将研究的成果整合到linux内核里面去,也就是SELinux。 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也 是能够控制网络服务能否访问系统资源的一道关卡。 传统的文件权限与账号的关系:自主访问控制,DAC(Discretionary Access Control)。当某个进程想 要对文件进行访问时,系统就会根据该进程的所有者/用户组,并比较文件的权限,若通过权限检查,就 可以访问该文件了。各种权限设置对root用户是无效的。 以策略规则制定特定程序读取特定文件:强制访问控制,MAC(Mandatory Access Control)。MAC可 以针对特定的进程与特定的文件资源来进行权限的控制。也就是说,即使你是root,在使用不同的进程 时,你所能取得的权限并不一定是root,而得要看当时该进程的设置而定。如此一来,就可以针对进程 而不是用户对文件来进行访问控制。此外,这个进程也不能任意使用系统文件资源,因为每个文件资源 也有针对进程设置可取用的权限。由于,整个系统进程那么多,文件那么多,所以SELinux也提供一些 默认的策略(policy),并在该策略内提供多个规则,让你可以选择是否启用该控制规则。

2、selinux的工作原理

主体(subject):就是进程

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

策略(policy):由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全策略。

这些策略内还会有详细的规则(rule)来指定不同的服务开放某些资源的访问与否。目前主要的策略 有:

  • targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;
  • strict:完整的SELinux限制,限制方面较为严格。

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

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

Identify:role:type:

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

  • root:表示root的账号身份; system_u:表示程序方面的标识,通常就是进程; unconfined_u:代表的是一般用户账号相关的身份。
  • 角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色 有: object_r:代表的是文件或目录等文件资源; system_r:代表的是进程。
  • 类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于这 个类型字段。而类型字段在文件与进程的定义不太相同,分别是: type:在文件资源上面称为类型。 domain:在主体程序中则称为域。 domain需要与type搭配,则该程序才能够顺利读取文件资源。
  • 最后一个字段是和MLS和MCS相关的东西,代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏 度的分级。数值越大、灵敏度越高。

访问过程:

  • (1)首先,触发具有httpd_exec_t这个类型的/usr/sbin/httpd这个可执行文件;
  • (2)该文件的类型会让这个文件所造成的主体进程具有httpd这个域,我们的策略已经针对这个域制定 了许多规则,其中包括这个域可以读取的目标资源类型;
  • (3)由于httpd domain被设置为可读取httpd_sys_content_t这个类型的目标文件,因此httpd进程就 能够读取在/var/www/html/目录下面的文件了;
  • (4)最终能否读到/var/www/html/目录下面的数据,还要看rwx是否符合linux权限的规范。

3、selinux的启动、关闭与查看

(1)SELinux三种模式

  • enforcing:强制模式,代表SELinux正在运行中,开始限制domain/type。
  • permissive:宽容模式,代表SELinux正在运行中,不过仅会有警告信息并不会实际限制 domain/type的访问。
  • disabled:关闭,SELinux并没有实际运行。

(2)修改安全上下文

4、selinuxlinux服务的影响

--------------------------------------------------------------------------------------

1、什么是防火墙

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

防火墙又可以分为硬件防火墙与软件防火墙。硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙 的操作系统主要以提供数据包数据的过滤机制为主,并将其他不必要的功能拿掉。软件防火墙就是保护 系统网络安全的一套软件(或称为机制),例如Netfilter与TCP Wrappers都可以称为软件防火墙。这儿主要介绍linux系统本身提供的软件防火墙的功能,那就是Netfilter,即数据包过滤机制。 数据包过滤,也就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决定该连 接为放行或抵挡的机制。由于这种方式可以直接分析数据包头部数据,包括硬件地址,软件地址, TCP、UDP、ICMP等数据包的信息都可以进行过滤分析,因此用途非常广泛(主要分析OSI七层协议的 2、3、4层)。由此可知,linux的Netfilter机制可以进行的分析工作有:

  • 拒绝让Internet的数据包进入主机的某些端口;
  • 拒绝让某些来源ip的数据包进入;
  • 拒绝让带有某些特殊标志(flag)的数据包进入,最常拒绝的就是带有SYN的主动连接的标志了;
  • 分析硬件地址(MAC)来决定连接与否。

虽然Netfilter防火墙可以做到这么多事情,不过,某些情况下,它并不能保证我们的网络一定就很安 全。例如:

  • 防火墙并不能有效阻挡病毒或木马程序。(假设主机开放了www服务,防火墙的设置是一定要将 www服务的port开放给client端的。假设www服务器软件有漏洞,或者请求www服务的数据包本 身就是病毒的一部分时,防火墙是阻止不了的)
  • 防火墙对于内部LAN的攻击无能为力(防火墙对于内部的规则设置通常比较少,所以就很容易造成 内部员工对于网络无用或滥用的情况)

netfilter这个数据包过滤机制是由linux内核内建的,不同的内核版本使用的设置防火墙策略的软件不一 样,在红帽7系统中firewalld服务取代了iptables服务,但其实iptables服务与firewalld服务它们都只是 用来定义防火墙策略的“防火墙管理工具”而已,他们的作用都是用于维护规则,而真正使用规则干活的 是内核的netfilter。

2、iptables

防火墙会从以上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配 项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策 略。一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火 墙的默认策略为拒绝时(堵),就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为 允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用。

iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链 则依据数据包处理位置的不同进行分类,具体如下:

  • 在进行路由选择前处理数据包,用于目标地址转换(PREROUTING);
  • 处理流入的数据包(INPUT);
  • 处理流出的数据包(OUTPUT);
  • 处理转发的数据包(FORWARD);
  • 在进行路由选择后处理数据包,用于源地址转换(POSTROUTING)。

3、firewalld

firewall-cmd命令的参数说明如下


http://www.ppmy.cn/embedded/142444.html

相关文章

Vue.js 深入探索:自定义指令与插件开发

Vue.js 是一个轻量级、易于上手的前端框架,但它的灵活性和强大功能远不止于此。Vue 提供了丰富的内置指令(如 v-bind、v-if、v-for 等)和组件系统,然而,Vue 的真正魅力在于其高度可扩展的设计。你可以通过创建 自定义指…

九、Spring Boot集成Spring Security之授权概述

文章目录 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口前言一、授权概述二、用户权限三、用户授权流程三、Spring Security授权方式1、请求级别授权2、方法级别授权 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口 Spr…

MySQL —— 配置文件

前一篇文章:MySQL —— MySQL 程序-CSDN博客 目录 前言 一、使用方法 二、配置文件位置及加载顺序 1.在 Windows 系统中读取配置文件 2.在 Linux 系统中读取配置文件 三、配置文件语法 四、案例:设置客户端全局编码格式 总结 前言 本篇文章要介…

大模型开发和微调工具Llama-Factory-->数据处理

数据处理 dataset_info.json 包含了所有经过处理的 本地数据集 和 在线数据集。如果使用本地数据集, 务必在 dataset_info.json 中添加对应数据集及其内容的定义 目前支持 Alpaca 格式 和 ShareGPT 的格式 1.Alpaca 针对不同任务,数据集格式要求如下…

数据资产管理是什么?为什么重要?核心组成部分(分类分级、登记追踪、质量管理、安全合规)、实施方法、未来趋势、战略意义

文章目录 一、引言:数据的新时代二、什么是数据资产管理?2.1 定义2.2 核心功能 三、为什么数据资产管理至关重要?3.1 面对的数据管理挑战 四、数据资产管理的核心组成部分4.1 数据分类与分级4.2 数据资产登记与追踪4.3 数据质量管理4.4 数据安…

kafka数据在服务端时怎么写入的

学习背景 接着上篇,我们来聊聊kafka数据在服务端怎么写入的 服务端写入 在介绍服务端的写流程之前,我们先要理解服务端的几个角色之间的关系。 假设我们有一个由3个broker组成的kafka集群,我们在这个集群上创建一个topic叫做shitu-topic&…

jvm-45-jvm dump 文件内存介绍+获取+堆内存可视分析化

拓展阅读 JVM FULL GC 生产问题 I-多线程通用实现 JVM FULL GC 生产问题 II-如何定位内存泄露? 线程通用实现 JVM FULL GC 生产问题 III-多线程执行队列的封装实现,进一步抽象 jvm-44-jvm 内存性能分析工具 Eclipse Memory Analyzer Tool (MAT) / 内…

基于STM32的传感器数据采集系统设计:Qt、RS485、Modbus Rtu协议(代码示例)

一、项目概述 项目目标与用途 本项目旨在设计并实现一个基于STM32F103RCT6微控制器的传感器数据采集系统。该系统通过多个传感器实时监测环境参数,并将采集到的数据传输至上位机进行处理和分析。系统的主要应用领域包括环境监测、工业控制、智能家居等。通过该系统…