Linux防火墙基础
一、Linux防火墙的状态机制
1.iptables是可以配置有状态的防火墙,其有状态的特点是能够指定并记住发送或者接收信息包所建立的连接状态,其一共有四种状态,分别为established invalid new related。
established:该信息包已建立连接,该连接一直用于发送和接收信息包完全有效
invalid:该信息包和其他都无关联,可能包含错误的信息
new:该信息包已经或即将启动新的连接,或者还未与用于发送和接收信息包相关联
related:表示该信息包已经或正在启动新的连接并和已建立的连接相关联
二、Linux防火墙语法
1.数据包流向:
prerouting -> forward -> postrouting
prerouting -> input -> 本机output -> postrouting
2.iptables根据不同的数据包处理功能使用不同的规则表,其包括三个表:filter nat mangle
filter:默认的表,包含真正的的防火墙过滤规则,其中的规则链包括:input output forward
nat:包含源地址、目标地址及端口转换使用规则,其中的规则链包括:prerouting output和postrouting
mangle:包含用于设置特殊的数据包路由标志的规则,这些标志随后被filter表中的规则检查,其中的规则链包括:prerouting input forward postrouting output
3.表对应的相关规则链的功能:
input链:当一个数据包由内核中的路由计算确定为本地的linux系统后,会通过input链检查
output链:保留给系统自身生成的数据包
froward链:经过linux系统路由的数据包
prerouting链:用于修改目的地址(DNAT)
postrouting链:用于修改源地址(SNAT)
4.定义默认策略
默认策略定义格式:iptables -t(表名) -P(链名) (动作)
-t:表示指定默认策略应用于哪个表,可以使用filter nat mangle,如果没有指定使用哪个,默认使用filter表
链名:指定默认策略应用于哪个链,可以使用input ouput等
动作:处理数据包的动作,可以使用accept(接收数据包)和 drop(丢弃数据包)
5.查看iptables规则:
命令格式:
iptables -t(表名) -L(链名)
-L:查看指定表和指定链的规则列表

6.增加、插入、删除、替换iptables规则
参数说明:
-t 表名:定义默认策略将应用于哪个表
-A:新增一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号
-I:插入一条规则,原本该位置上的规则会往后顺序移动,如果指定规则编号,则在第一条规则前插入
-D:从规则列表中删除一条规则,可以输入完整规则或直接指定规则编号来删除
-R:替换某条规则,规则被替换并不会改变顺序,必须指定要替换的规则编号
规则编号:规则编号在插入、删除和替换规则时使用,编号按照规则列表的顺序排列,第一条规则编号为1
-i | o 网卡名称:i用于指定数据包从哪块网卡进入,o用于指定数据包从那快网卡输出
-p 协议类型:指定规则应用的协议,包含tcp udp和icmp等
-s 源IP地址 | 源子网:后面接源主机IP地址或子网地址
--sport 源端口号:数据包的ip源端口号
-d 目标ip地址 | 目标子网:后面接目标主机的ip地址或子网地址
--dport 目标端口号:数据包的ip目标的端口号
-j 动作:
accept:接收数据包
drop:丢弃数据包
redirect:将数据包重新转向本机本机或另一台主机的某一个端口
reject:拦截该数据包并发回包通知对方
snat:源地址切换,改变数据包的源地址
dnat:目标地址切换,改变数据包的目的地址
masquerade:ip伪装。主机的ip地址由isp分配动态
log:日志功能,将符合规则的数据包相关信息记录在日志中
7.清除规则和计数器
在新建规则时往往需要清除原有的旧规则以免影响新设定的规则
iptables -t表名 -F | Z
-F:删除指定表中的所有规则
-Z:将指定规则中的数据包计数器和流量计数器归零
三、iptables基础知识
1.iptables的状态 state
new:本机向远程机器发送一个连接请求,这个数据包的状态时new
established:在连接建立之后,远程主机和本机通信数据的状态
related:和现有联机相关的新联机封包,类似于ftp这样的服务,用21号端口传送命令,用20号端口传送数据
invalid:无效的数据包,不能识别属于哪个连接状态或没有任何连接状态,一般会被丢弃
相关文章:
Linux防火墙基础
一、Linux防火墙的状态机制 1.iptables是可以配置有状态的防火墙,其有状态的特点是能够指定并记住发送或者接收信息包所建立的连接状态,其一共有四种状态,分别为established invalid new related。 established:该信息包已建立连接&#x…...
Qt u盘自动升级软件
Qt u盘自动升级软件 Chapter1 Qt u盘自动升级软件u盘自动升级软件思路:step1. 获取U盘 判断U盘名字是否正确, 升级文件是否存在。step2. 升级step3. 升级界面 Chapter2 Qt 嵌入式设备应用程序,通过U盘升级的一种思路Chapter3 在开发板上运行的…...
【Conda 和 虚拟环境详细指南】
Conda 和 虚拟环境的详细指南 什么是 Conda? Conda 是一个开源的包管理和环境管理系统,支持多种编程语言(如Python、R等),最初由Continuum Analytics开发。 主要功能: 包管理:安装、更新、删…...
Python递归函数深度解析:从原理到实战
Python递归函数深度解析:从原理到实战 递归是计算机科学中重要的编程范式,也是算法设计的核心思想之一。本文将通过20实战案例,带你深入理解Python递归函数的精髓,掌握递归算法的实现技巧。 一、递归函数核心原理 1.1 递归三要…...
OpenGL学习笔记(五):Textures 纹理
文章目录 纹理坐标纹理环绕方式纹理过滤——处理纹理分辨率低的情况多级渐远纹理Mipmap——处理纹理分辨率高的情况加载与创建纹理 ( <stb_image.h> )生成纹理应用纹理纹理单元练习1练习2练习3练习4 通过上一篇着色部分的学习,我们可以…...
【TypeScript】基础:数据类型
文章目录 TypeScript一、简介二、类型声明三、数据类型anyunknownnervervoidobjecttupleenumType一些特殊情况 TypeScript 是JavaScript的超集,代码量比JavaScript复杂、繁多;但是结构更清晰 一、简介 为什么需要TypeScript? JavaScript的…...
Notepad++消除生成bak文件
设置(T) ⇒ 首选项... ⇒ 备份 ⇒ 勾选 "禁用" 勾选禁用 就不会再生成bak文件了 notepad怎么修改字符集编码格式为gbk 如图所示...
Android NDK
Android NDK环境 D:\Android SDK\ndk\25.2.9519653 使用clang而不用gcc D:\Android SDK\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang --version 查看是否安装成功clang ptrace 在 C 语言中,ptrace 已经被 Linux 内核实现࿰…...
内部知识库助力组织智力激发与信息共享实现业绩增长
内容概要 内部知识库是企业知识管理的核心组件,具有不可估量的重要性。通过构建有效的知识库,组织能够将孤立的知识和信息整合成为一个系统性的体,极大提高员工访问和利用这些信息的能力。这不仅简化了决策过程,还通过减少重复劳…...
通过F12收集的信息
按 F12 键打开浏览器的开发者工具(DevTools)可以获取部分操作系统和中间件信息,但能力有限。以下是具体说明: 一、通过 F12 收集的信息 1. 客户端操作系统信息 - Console 控制台 通过 JavaScript 直接获取客户端操作系统信息&am…...
用Python替代OpenMV IDE显示openmv USB 图像
原理是利用openmv的usb模仿串口,然后用Python代码打开串口接收 能替代openmv ide 跑48帧图像 Python端需要的依赖: 需要的是: from ultralytics import YOLO import cv2 import numpy as np from serial import Serial import time from co…...
c语言:编译和链接(详解)
前言 要将编译和链接,就不得不提及编译器是如何运作的,虽然这部分知识是针对于要创造编译器和创作语言的人所需要清楚的,但作为c语言的学习者也需要了解一下,修炼内功,尤其是对于想学习c的人而言。 编译器的运作过程…...
数据结构【单链表操作大全详解】【c语言版】(只有输入输出为了方便用的c++)
单链表操作的C/C实现详解 在数据结构中,单链表是一种非常基础且重要的数据结构。它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。今天我们就来深入探讨用C/C实现的单链表及其各种操作。 一、单链表的定义 const int N 1e5; //单链表 t…...
leetcode27.删除有序数组中的重复项
目录 问题描述判题标准示例提示 具体思路思路一思路二 代码实现 问题描述 给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致 。然后返回nums中唯一元…...
[c语言日寄]越界访问:意外的死循环
【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...
【c++11】包装器
🔥个人主页:Quitecoder 🔥专栏:c笔记仓 包装器(Wrapper) 是一个常见的编程设计模式,通常用于封装或“包装”某个现有的对象、函数、数据结构或者操作,以提供额外的功能或简化接口。…...
信息学奥赛一本通 1422:【例题1】活动安排
【题目链接】 ybt 1422:【例题1】活动安排 【题目考点】 1. 贪心 【解题思路】 该题属于区间选点问题,ybt 1324:【例6.6】整数区间 是给定一些区间,选择一些点使得每个区间范围内至少有1个点。 本题为:给定一些区…...
数据库、数据仓库、数据湖有什么不同
数据库、数据仓库和数据湖是三种不同的数据存储和管理技术,它们在用途、设计目标、数据处理方式以及适用场景上存在显著差异。以下将从多个角度详细说明它们之间的区别: 1. 数据结构与存储方式 数据库: 数据库主要用于存储结构化的数据&…...
llama.cpp LLM_CHAT_TEMPLATE_DEEPSEEK_3
llama.cpp LLM_CHAT_TEMPLATE_DEEPSEEK_3 1. LLAMA_VOCAB_PRE_TYPE_DEEPSEEK3_LLM2. static const std::map<std::string, llm_chat_template> LLM_CHAT_TEMPLATES3. LLM_CHAT_TEMPLATE_DEEPSEEK_3References 不宜吹捧中国大语言模型的同时,又去贬低美国大语言…...
深度学习的应用场景及常用技术
深度学习作为机器学习的一个重要分支,在众多领域都有广泛的应用,以下是一些主要的应用场景及常用技术。 1.应用场景 1. 计算机视觉 图像分类 描述:对图像中的内容进行分类,识别出图像中物体所属的类别。例如,在安防领…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
