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

【Linux】-学习笔记10

第八章、Linux下的火墙管理及优化

1.什么是防火墙

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

从功能实现角度来讲
        火墙是系统内核上的一个模块netfilter(数据包过滤机制)
        通过netfiler来管理kernelspace中的策略

2.netfilter简介

Netfilter是Linux 2.4.x引入的一个子系统

它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪等等netfilter分析OSI七层协议的2、3、4层

netfiler可以直接分析数据包头部数据,包括硬件地址,软件地址、TCP、UDP、ICMP等数据包的信息都可以进行过滤分析

Iinux的netfilter机制可以进行的工作有:

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

防火墙并不能有效阻挡病毒或木马程序,并且防火墙对于内部LAN的攻击无能为力

3.netfilter策略管理工具

netfilter这个内核网络栈过滤框架的使用需要通过iptables或nftables来进行

与netfilter进行交互工具常用种类:

  • oiptables服务使用iptables交互RHEL6之前系统默认使用此服务,管理手段丰富,配置比较复杂。
  • firewalld服务使用nftables交互 RHEL6及之后的版本中默认使用此服务,配置类似windows火墙,功能模块度高,使用简单。

4.netfilter的五类HOOK函数及iptables的默认列表和链

4.1五类hook函数

  • NF_IP_PRE ROUTING:位于路由之前,报文一致性检査之后(报文一致性检查包括: 报文版本、报文长度和checksum
  • NF IP LOCAL_IN:位于报文经过路由之后,并且目的是本机的。
  • NF _IP FORWARD:位于在报文路由之后,目的地非本机的。
  • NF IP_LOCAL_OUT:由本机发出去的报文,并且在路由之前。
  • NF IP POST ROUTING:所有即将离开本机的报文。

5.什么是内核空间的iptables

iptables 是基于Netfilter框架实现的报文选择系统

iptables用于报文的过滤、网络地址转换和报文修改等功能

iptables 本质上是包含了5个规则表,而规则表则包含了一些列的报文的匹配规则以及操作目

  • raw表:第一优先级的表,设置raw表规则后,不会对数据包进行链接跟踪和NAT转换,使用于PREROUTING和OUTPUT链,对应的动作为NOTRACK。
  • mangle表:第二优先级的表,根据规则,修改数据包的TOS(TypeOfService,服务类型)、TTL(TimeToLive,生存周期)以及设置Mark标记,以实现Qos以及策略路由等。
  • nat表:第三优先级的表,网络地址转换表,用于修改源和目的的地址,分SNAT(源目的地址转换)和DNAT(目的地址转换)。
  • filter表:第四优先级的表,用于控制到达链(forward链、input链、output链)上的数据包,是放行(accepte)、丢弃(drop)或者拒绝(reject)。
  • security表:最不常用的表(通常,我们说iptables只有4张表,security表是新加入的特性),用于在数据包上应用SELinux。

6.iptbales服务

6.1iptables简介

iptables服务是用户管理内核空间的iptables的管理工具,通过iptables书写内核空间的iptables策略

iptables的规则是至上而下的读取方式,遇到与数据包信息匹配的规则后直接采用

iptables的规则默认保存在内存中,如果需要永久保存需要把策略以字符的形式保存到/etc/sysconfig/iptables中

为了设置iptables的环境,我们将火墙关闭,并且禁用

systemctl disable --now firewalld
​
systemctl mask firewalld   #mask选项用于将服务单元文件链接到/dev/null,这是一种更严格的禁用方式。

iptables and ip6tables misc utilities   #下载

并且启动,查看状态

iptables -L   #查看状态

iptables  -F    #--flush [chain]清空指定链 chain 上面的所有规则。如果没有指定链,清空该表上所有链的所有规则

刷新后,没有进行永久的保存

cat /etc/sysconfig/iptables

查询后依然可以查看

但是进行永久保存后

 service iptables save

其中的策略已经被更新

6.2iptables命令的语法格式和常用参数

6.2.1添加策略
iptables -A INPUT -p tcp 22 -j ACCEPT  #用于放行 HTTP(Hyper - Text Transfer Protocol)服务相关的网络流量。它允许目的端口为 80 的 TCP 数据包进入系统。
​
iptables -A INPUT -p tcp --dport 22 -j ACCEPT   
​
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
​
iptables -A INPUT -i lo -j ACCEPT    #这条规则是针对本地回环接口(lo)的。本地回环接口的 IP 地址通常是 127.0.0.1。
​
iptables -A INPUT  -s 172.25.254.100 -p tcp --dport 53 -j ACCEPT   #允许来自特定源 IP 地址(172.25.254.100)的、协议为 TCP 且目的端口为 53 的数据包进入系统。端口 53 通常与 DNS(Domain Name System)服务相关,TCP 协议的端口 53 主要用于区域传输等复杂的 DNS 操作。
​
iptables -A INPUT -j REJECT   #对于进入本机的所有网络数据包(因为前面没有添加其他诸如协议、端口、源地址等限定条件),都会直接向发送方发送拒绝响应,告知对方数据包不能进入本机,相当于阻断了所有外来的网络连接请求进入系统。

查看

6.2.2修改策略

修改之前的端口80为8080

iptables -R INPUT 2 -p tcp --dport 8080 -j ACCEPT

6.2.3策略的删除
iptables -D INPUT 6

删除后查看

6.2.4插入策略
iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT

6.2.5修改默认规则
iptables -P FORWARD DROP

修改之前

修改之后

6.2.6添加一个新的策略表
iptables -N lee

新建之前有三张表

添加一个lee表

修改表的名字

iptables -E lee tim

删除表

iptables -X tim

7.firewalld

7.1.firewald服务管理方式与iptables的管理方式区别

iptables是基于Linux内核的Netfilter子系统构建的,直接操作Netfilter;而firewalld则通过libnftables库与Netfilter交互,提供了一个更高的抽象层。

iptables使用基于表的规则集,包括filter、nat、mangle、raw及securty五个表;firewalld采用基于区域的规则集,包括default、public、internal、external和dmz五个区域。

iptables的配置较为复杂,需要用户掌握特定的命令行语法;firewalld提供了更直观和灵活的配置方式,支持命令行和图形界面。

由于firewalld通过libnftables库与Netfilter交互,其性能相对于直接操作Netfilter的iptables来说较低。

由于firewalld通过libnftables库与Netfilter交互,其性能相对于直接操作Netfilter的iptables来说较低。

7.2firewalld域介绍

区域默认规则策略
阻塞区域(block)拒绝流入的流量,除非与流出的流量相关
工作区域(work)拒绝流入的流量,除非与流出的流量相关
家庭区域(home)拒绝流入的流量,除非与流出的流量相关
公共区域(public)不相信网络上的任何计算机,只有选择接受传入的网络连接
隔离区域(DMZ)隔离区域也称为非军事区域,内外网络之间增加的一层网络起到缓冲作用。对 于隔离区域,只有选择接受传入的网络连接。
信任区域(trusted)允许所有的数据包。
丢弃区域(drop)拒绝流入的流量,除非与流出的流量相关
内部区域(internal)等同于home区域
外部区域(external)拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh服务相关则允许流量

firewalld中默认使用的域是pubic
firewalld默认提供的九个zones的调用文件都保存在"/usr/lib/firewalld/zones/"目录下

相关文章:

【Linux】-学习笔记10

第八章、Linux下的火墙管理及优化 1.什么是防火墙 从功能角度来讲 防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出 从功能实现角度来讲 火墙是系统内核上的一个模块netfilter(数据包过滤机制) …...

鸿蒙NEXT开发案例:九宫格随机

【引言】 在鸿蒙NEXT开发中,九宫格抽奖是一个常见且有趣的应用场景。通过九宫格抽奖,用户可以随机获得不同奖品,增加互动性和趣味性。本文将介绍如何使用鸿蒙开发框架实现九宫格抽奖功能,并通过代码解析展示实现细节。 【环境准…...

深度解析:RTC电路上的32.768KHz时钟的频偏及测试

1、什么是RTC RTC是Real-Time Clock(实时时钟)的缩写,通常在电子产品中,是用时钟电路(外部采用时钟芯片,比如AiP8563)或时钟模块(SOC内部包含了时钟模块,只需要外接32.768KHz晶振)来…...

Scala的泛型

需求:定义一个名为getMiddleEle 的方法用它来获取当前的列表的中间位置的值中间位置的下标 长度/2目标:getMiddleEle(List(1,2,3,4,5)) > 5/2 2 > 下标为2的元素是:3 getMiddleEle(List(1,2,3,4)) > 4/2 2 > 下标为2的元素是:3格式如下: 定义一个函数的格式:def…...

OpenGL ES详解——glUniform1i方法是否能用于设置纹理单元

glUniform1i 方法确实可以用于设置纹理单元(texture unit)。在OpenGL中,纹理单元是图形硬件的一部分,它允许你同时绑定多个纹理,并在着色器程序中通过uniform变量来选择使用哪个纹理。 通常,纹理单元通过整…...

探索 Janus-1.3B:一个统一的 Any-to-Any 多模态理解与生成模型

随着多模态技术的不断发展,越来越多的模型被提出以解决跨文本与图像等多种数据类型的任务。Janus-1.3B 是由 DeepSeek 推出的一个革命性的模型,它通过解耦视觉编码并采用统一的 Transformer 架构,带来了一个高度灵活的 any-to-any 多模态框架…...

论文信息搜集

系列博客目录 文章目录 系列博客目录1.秩典型相关分析及其在视觉搜索重排序中的应用《Rank canonical correlation analysis and its application in visual search reranking》2.利用边信息的规范秩估计在多维谐波恢复中的应用《Canonical Rank Estimation Using Side Informa…...

实操给自助触摸一体机接入大模型语音交互

本文以CSK6 大模型开发板串口触摸屏为例,实操讲解触摸一体机怎样快速增加大模型语音交互功能,使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音,将语音数据传输…...

图表的放大和刷新功能

正常图表渲染显示: // 漏斗ading动画 let myChartone; // 获取配置项 let optionone; // 获取漏斗的数据 let order; let pay_order; let pay_order_num; let pay_order_num_num; let optiones; // 漏斗渲染 function polt(data) {// 从名为data的对象中获取ordata属…...

SQLServer利用QQ邮箱做SMTP服务器发邮件

环境 Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) SQL Server Management Studio 15.0.18384.0 SQL Server 管理对象 (SMO) 16.100.46367.54 Microsoft .NET Framework 4.0.30319.42000 操作系统 Windows Server2019 ———————————————— 前言&#xf…...

flutter 多文本,其中文本下划线往下移动

变态需求 flutter中再满足多行文本,文本内有多个样式,并且多个样式可触发事件的情况,将其中的一部分文本的下划线往下移 方式一: 实现 使用RichText组件,主要是看中里面的WidgetSpan可以穿child为一个widget 实现源…...

7.OPEN SQL

总学习目录请点击下面连接 SAP ABAP开发从0到入职,冷冬备战-CSDN博客 目录 ​编辑 1.OPEN-SQL 简单回顾 R3体系 OEPN-SQL 2.OPEN-SQL 读取数据 2.1Select 语句 select 1条数据 多条数据与into AS别名 2.2INTO 结构体 内表 例子 2.3FROM 选择动态表…...

Python轻松获取抖音视频播放量

现在在gpt的加持下写一些简单的代码还是很容易的,效率高,但是要有一点基础,不然有时候发现不了问题,这些都需要经验积累和实战,最好能和工作结合起来,不然很快一段时间就忘的干干净净了,下面就是…...

YOLOv8目标检测(三*)_最佳超参数训练

YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训…...

SpringBoot SPI

参考 https://blog.csdn.net/Peelarmy/article/details/106872570 https://javaguide.cn/java/basis/spi.html#%E4%BD%95%E8%B0%93-spi SPI SPI(service provider interface)是JDK提供的服务发现机制。以JDBC为例,JDK提供JDBC接口,在包java.sql.*。MY…...

uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)

1.引入iconfont的图标,只保留这两个文件 2.App.vue引入到全局中 import "./static/fonts/iconfont.css"3.pages.json中配置text为图标对应的unicode {"path": "pages/invite/invite","style": {"h5": {"…...

【Apache paimon】-- 集成 hive3.1.3 异常

目录 1、场景再现 Step1:在 hive cli beeline 执行创建 hive paimon 表 Step2:使用 insert into 写入数据 Step3:抛出异常 2、原因分析 Step1:在 yarn resource manager 作业界面查询 hive sql mr job 的 yarn log Step2:搜索job 使用的 zstd jar 版本 Step3:定…...

基于docker部署Nacos最新版本-国内稳定镜像

介绍 当前微服务架构常用的配置中心,本文推荐的是阿里云开源的nacos,截止发布本文为止,最新的nacos稳定版本为2.4.3 拉取镜像 //这个是国内目前可以下载的成熟的nacos镜像仓库,默认的docker hub需要不断的翻墙才可以下载 docke…...

云计算中的Hive操作详解

文章目录 云计算中的Hive操作详解一、引言二、Hive的基本操作1、创建表2、导入数据3、数据查询4、分区表操作 三、使用示例1、字符串处理函数2、数据类型转换 四、总结 云计算中的Hive操作详解 一、引言 Hive是云计算中一个非常重要的组件,它是基于Hadoop的一个数…...

UE4_控件蓝图_制作3D生命血条

一:效果图如下: 二、实现步骤: 1、新建敌人 右键蓝图类 选择角色, 重命名为BP_Enemytest。 双击打开,配置敌人网格体 修改位置及朝向 效果如下: 选择合适的动画蓝图类: 人物就有了动作&#x…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...