当前位置: 首页 > news >正文

Selinux及防火墙

一,selinux简介:

SELinux(Security-Enhanced Linux)是一个Linux内核安全模块,旨在提供强制访问控制(MAC)机制,以增强系统的安全性。由美国国家安全局(NSA)开发,SELinux通过实施细粒度的安全策略,控制用户和进程对系统资源的访问。

主要功能:

  1. 强制访问控制:不同于传统的自愿访问控制,SELinux通过政策强制实施安全规则,限制程序和用户的行为。
  2. 安全策略:SELinux使用复杂的策略定义哪些操作是被允许的,支持细致到每个进程和文件的访问控制。
  3. 标签和类型强制:每个进程和对象(如文件)都有一个安全标签,SELinux根据这些标签来决定访问权限。
  4. 审计与监控:SELinux能够记录所有的访问尝试,帮助系统管理员检测和分析潜在的安全问题。

应用场景:

保护网络服务(如Web服务器)免受攻击。

实现多用户环境下的安全隔离。

满足合规性和安全审计要求。se

二,selinux的原理:

在红帽Linux(Red Hat Enterprise Linux)中,SELinux的工作原理基于强制访问控制(MAC),其主要机制包括以下几个方面:

1. 安全策略

SELinux通过定义一组安全策略来控制对系统资源的访问。这些策略规定了哪些用户和进程可以访问哪些文件、设备和其他资源。这些策略通常在系统启动时加载,并且可以根据需要进行修改。

2. 类型标签

每个进程和对象(如文件、目录、端口)都有一个与之相关的安全上下文标签(即安全属性)。标签通常包括以下几个部分:

  • 用户:表示进程的拥有者。
  • 角色:用于定义用户在系统中的身份。
  • 类型:决定了进程和对象之间的访问权限。

3. 决策机制

当进程尝试访问资源时,SELinux会根据当前的安全策略和标签,决定是否允许该操作。这个过程涉及以下步骤:

  • 访问请求:进程发起对某个对象的访问请求。
  • 策略匹配:SELinux检查当前安全上下文和策略,判断是否有匹配的规则。
  • 允许或拒绝:如果有匹配的规则且操作被允许,访问将被执行;否则,访问请求将被拒绝,系统将记录拒绝事件。

4. 审计与日志

SELinux能够记录所有的访问尝试,包括被拒绝的操作。这些日志信息对于安全审计和问题排查非常有用,管理员可以通过审计日志了解哪些操作被拒绝,以及拒绝的原因。

5. 模式

SELinux可以在不同的模式下运行:

  • 强制模式(Enforcing):强制实施策略,拒绝不符合策略的访问。
  • 许可模式(Permissive):不强制实施策略,但记录所有不符合策略的访问尝试。
  • 禁用模式(Disabled):完全关闭SELinux。

通过这些机制,SELinux在红帽Linux中提供了强大的安全防护,保护系统免受恶意攻击和未经授权的访问。

#查看文件的安全上下文
[root@localhost ~]# ls -Z-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfgdrwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 home

三,selinux的用法:

#查看selinux的状态
sestatus#切换的许可模式
setenforce 0#切换到强制模式
setenforce 1#查看当前selinux的策略
getenforce#查看安全上下文
ls -Z /path/to/file#更改安全上下文
chcon -t httpd_sys_content_t /var/www/html/example.html#查看审计日志:该命令将显示所有被拒绝的访问尝试的记录
cat /var/log/audit/audit.log | grep denied#生成SELinux策略建议: 使用audit2allow工具可以将审计日志中的拒绝信息转换为策略建议
cat /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp
第一个命令将生成策略模块,第二个命令将其安装。

四,防火墙的简介:

防火墙是一种网络安全设备或软件,用于监控和控制进入和离开计算机网络的网络流量。它通过设定的安全规则来阻止或允许数据包,从而保护网络和设备免受未授权访问、网络攻击和恶意软件的威胁。

主要功能:

  1. 流量过滤:防火墙根据预设的规则过滤网络流量,允许合法流量通过,同时阻止潜在的恶意流量。
  2. 访问控制:防火墙可以限制某些用户或设备对网络资源的访问,确保只有授权用户可以访问敏感数据或服务。
  3. 网络地址转换(NAT):一些防火墙可以隐藏内部网络的IP地址,防止外部用户直接访问内部设备。
  4. 日志记录与监控:防火墙记录所有通过的流量,并提供日志以供分析,帮助管理员检测潜在的安全事件。

类型:

  1. 包过滤防火墙:根据数据包的源地址、目标地址和端口号等信息进行简单的过滤。
  2. 状态检测防火墙:跟踪连接的状态,能够理解数据包之间的上下文关系,提供更强的安全性。
  3. 代理防火墙:通过代理服务器进行流量转发,能够深入检查数据包内容,增加安全性。
  4. 下一代防火墙(NGFW):集成了多种功能,包括应用层过滤、入侵防御系统(IPS)和深度包检查(DPI)。

应用场景:

  • 企业网络安全:保护公司内部网络免受外部攻击。
  • 家庭网络安全:保护家庭设备和个人信息免受网络威胁。
  • 数据中心安全:保护关键应用和数据免受攻击。

防火墙是网络安全策略的重要组成部分,能够有效地帮助防止网络入侵和数据泄露

五,红帽中的防火墙:

简介

  • firewalld:红帽Linux中的默认防火墙管理工具,使用iptables作为底层实现。它提供了一个用户友好的界面,支持命令行和图形界面(如firewall-config)。
  • 区域和服务firewalld使用区域来定义不同的信任级别,每个区域可以指定允许的服务和端口。

原理

  1. 区域概念firewalld将网络接口分配到不同的区域中,每个区域定义了不同的安全级别。例如,public区域用于不信任的网络,而trusted区域则用于完全信任的网络。
  2. 服务与端口:用户可以通过服务名称(如HTTP、SSH等)来允许或拒绝特定流量,而不需要手动指定端口号。
  3. 动态管理firewalld支持动态添加或移除规则,而无需重启服务。这使得配置更为灵活,适合于快速变化的网络环境。
  4. 持久化与临时配置:规则可以设置为临时生效或持久化保存,以便在重启后依然生效。

应用

保护服务器:通过配置适当的区域和服务,保护Web服务器、数据库服务器等不受外部攻击。

隔离网络流量:在多租户环境中,可以通过不同的区域来隔离不同客户的流量。

VPN与远程访问:配置防火墙规则以允许VPN流量,通过安全隧道保护远程访问。

日志记录与审计:通过配置日志规则,监控网络流量和攻击尝试,帮助进行安全审计。

六,防火墙的一些常见配置命令:

#查看防火墙状态:
firewall-cmd --state#查看当前区域和活动接口:该命令将显示当前活动的区域及其相关联的网络接口。
firewall-cmd --get-active-zones#查看特定区域的规则:该命令将列出public区域的所有规则,包括允许的服务、端口和接口。
firewall-cmd --zone=public --list-all#添加服务到某个区域:该命令将HTTP服务添加到public区域,并将其设置为持久化配置。
firewall-cmd --zone=public --add-service=http --permanent#添加特定端口:该命令将TCP端口8080添加到public区域,并持久化
firewall-cmd --zone=public --add-port=8080/tcp --permanent#删除服务或端口:该命令将从public区域中删除HTTP服务。
firewall-cmd --zone=public --remove-service=http --permanent#重新加载配置:该命令将应用所有未持久化的更改,并重新加载防火墙配置。
firewall-cmd --reload#查看日志: 如果启用了日志记录,可以使用以下命令查看日志:
journalctl -f -u firewalld

七,实验案例:

案例 1:允许SSH和HTTP流量

# 允许SSH流量
firewall-cmd --zone=public --add-service=ssh --permanent# 允许HTTP流量
firewall-cmd --zone=public --add-service=http --permanent# 重新加载配置以使更改生效
firewall-cmd --reload

案例 2:限制特定IP地址的访问

# 添加拒绝规则
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent# 重新加载配置
firewall-cmd --reload

案例 3:启用HTTPS流量

# 添加HTTPS服务
firewall-cmd --zone=public --add-service=https --permanent# 重新加载配置
firewall-cmd --reload

案例 4:临时允许某个服务

# 临时允许FTP服务
firewall-cmd --zone=public --add-service=ftp# 重新加载配置以使更改生效
firewall-cmd --reload

相关文章:

Selinux及防火墙

一,selinux简介: SELinux(Security-Enhanced Linux)是一个Linux内核安全模块,旨在提供强制访问控制(MAC)机制,以增强系统的安全性。由美国国家安全局(NSA)开…...

业绩代码查询实战——php

一、一级代码显示职员 foreach($data_职员信息 as $key > $value){//$where_查询分类$where_查询通用;//$dat分类one $业绩提成->where($where_查询分类)->order("CreateDate desc")->select();if($value[haschildname]0 && $value[key] !"…...

内网穿透技术选型PPTP(点对点隧道协议)和 FRP(Fast Reverse Proxy)

PPTP(点对点隧道协议)和 FRP(Fast Reverse Proxy)是两种实现内网穿透的技术,但它们的工作原理、使用场景和特点有很大区别。以下是它们的详细比较: PPTP(Point-to-Point Tunneling Protocol&am…...

信号与噪声分析——第三节:随机过程的统计特征

随机过程的定义: 随机过程是一种数学模型,用来描述系统或现象在时间或者空间上随之变化的不确定性。 一个随机过程的数字特征 1.数学期望(统计平均值): 表示为 数学期望是随机过程在时间 t 上的平均值,通常…...

nginx(四):如何在 Nginx 中配置以保留真实 IP 地址

如何在 Nginx 中配置以保留真实 IP 地址 1、概述2、nginx配置示例2.1、配置说明2.2、客户端获取真实IP2.2.1、代码说明 3、插曲4、总结 大家好,我是欧阳方超,可以我的公众号“欧阳方超”,后续内容将在公众号首发。 1、概述 当使用nginx作为…...

docker对nginx.conf进行修改后页面无变化或页面报错

可能是因为没有重启nginx容器 可以执行 docker restart nginx 重启nginx试试 引入了其他的配置文件 本人安装的是docker默认的nginx,自带了一个default.conf的配置文件,并且在nginx.conf中还引入了这个文件,后面我还对nginx.conf添加了一个…...

SpringCloudGateway — 网关路由

Spring Cloud Gateway 是 Spring 提供的一个高效、灵活的 API 网关解决方案,基于 Spring 5、Spring Boot 2 和 Project Reactor,具有高并发和低延迟的特点。它用于在微服务架构中对外提供统一的入口,处理请求的路由、过滤、负载均衡等功能。 …...

docker pull 拉取镜像失败,使用Docker离线包

1、登录并注册Github,然后在Github中搜索并打开“wukongdaily/DockerTarBuilder” 项目,在该项目主页点击“Fork”。 然后点 “Create Fork”,将项目创建到自己的Github主页。 2、接着在自己创建过来的这个项目中点击“Actions” 3、然后…...

轻松理解操作系统 - 轻松了解 inode 是如何管理文件的

Linux 由于其开源、比较稳定等特点统治了服务端领域。也因此,学习Linux 系统相关知识在后端开发等岗位中变得越来越重要,甚至可以说是必不可少的。 因为它的广泛应用,所以在程序员的日常工作和面试中,它都是经常出现的。它的开源特…...

go中Println和Printf的区别

Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 go中Println和Printf的区别 package mainimport ( "fmt" )//TIP To run your code, right-click the c…...

C++现代教程七之模块

优点 编译时间减少:模块消除了重复解析和编译头文件的需要,从而显著减少了编译时间。特别是在大型项目中,这一点尤为重要。更好的封装性:模块允许更严格的封装,可以明确地控制哪些符号对外可见。这有助于减少命名冲突和…...

AVLTree

1.AVL树的概念 二叉搜索树虽然可以提高查找的效率,但是如果数据有序或者接近有序,二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。为了解决该问题,于是就有了AVLTree。即当向二叉搜索树中插入…...

Java面向对象 C语言字符串常量

1. (1). package liujiawei;public class Phone {String brand;double price;public void call(){System.out.println("手机打电话");}public void play(){System.out.println("手机打游戏");} } public class phonetest {public…...

SpringBoot+Thymeleaf电商系统

> 这是一个基于SpringBootThymeleafBootstrap实现的简单电商系统。 > 实现了用户浏览、添加购物车、商品管理等功能,并支持响应式布局。 > 本项目适合JAVA初学者作为入门学习项目 一、部分界面演示 二、技术栈 技术栈中文描述Spring Boot快速开发框架…...

了解数据库并发产生的问题

在数据库管理系统中,并发控制是一个至关重要的方面。随着多个用户或进程同时访问和修改数据库中的数据,如果没有适当的并发控制机制,就可能导致数据不一致、丢失更新、脏读、不可重复读和幻读等问题。在单用户系统中,数据库操作是…...

openstack之guardian介绍与实例创建过程

运行特征 采集模块:扩展Ceilometer,采集存储网、业务网连通性、nova目录是否可读写; 收集模块:将采集到的数据存储到数据库中; 分析模块:根据采集的结果,分析各节点状态,并进行反向检…...

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大 时间:2023年 机构:北京邮电大学 发表在:IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 25, 2023 代码源码地址: pytorch版本:https://github.com/dyh…...

SAP ABAP开发学习——RFC

目录 RFC接口 定义 调用过程 RFC的通信 RFC通信情况 RFC接口系统 RFC的通信模式 RFC版本 RFC调用方式 Web Service接口 SAP创建Web Service示例 远程目标的维护 创建远程目标 外部系统访问设置 RFC的调用 RFC接口 定义 调用过程 RFC的通信 RFC通信情况 RFC接…...

Elasticsearch里的索引index是什么概念?(ChatGPT回答)

在 Elasticsearch(ES)中,索引(Index) 是一种数据结构,用来存储、组织和管理文档数据。它可以理解为数据库中的一张表,但有一些关键的不同之处。索引是 Elasticsearch 全文搜索引擎的核心概念之一…...

安全性测试

安全性测试评估系统在面对各种安全威胁时的防护能力和安全性的过程。以下是安全性测试的一些主要方面和方法: 1. 身份验证和授权测试 测试目标 确保系统能够正确验证用户的身份,并根据用户的权限授予相应的访问权限。测试方法 弱密码测试:尝…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞!!! 1 摘要 我们提出了STARFlow,一种基于归一化流的可扩展生成模型,它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流(TARFlow&am…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...