iptables(7)扩展模块state

2024-06-24 13:12
文章标签 iptables state 模块 扩展

本文主要是介绍iptables(7)扩展模块state,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

        前面文章我们已经介绍了一些扩展模块,如iprange、string、time、connlimit、limit,还有扩展匹配条件如--tcp-flags、icmp。这篇文章我们介绍state扩展模块

 state

         在 iptables 的上下文中,--state 选项并不是直接关联于一个扩展模块,而是与 iptables 的 state 匹配机制相关,特别是在处理 ICMP(Internet Control Message Protocol)或 TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)流量的时候。    

        state模块的报文可以分为5种状态,报文状态可以为NEW、ESTABLISHED、RELATED、INVALID、UNTRACKED。

NEW:连接中的第一个包,状态就是NEW,我们可以理解为新连接的第一个包的状态为NEW。The NEW state tells us that the packet is the first packet that we see. This means 
that the first packet that the conntrack module sees, within a specific connection, will 
be matched. For example, if we see a SYN packet and it is the first packet in a 
connection that we see, it will match. However, the packet may as well not be a SYN 
packet and still be considered NEW. This may lead to certain problems in some instances,but it may also be extremely helpful when we need to pick up lost connections from other 
firewalls, or when a connection has already timed out, but in reality is not closed. NEW 状态告诉我们这个数据包是我们看到的第一个数据包。这意味着在特定的连接中,conntrack 模
块看到的第一个数据包将被匹配。例如,如果我们看到一个 SYN 数据包,并且它是我们在连接中看到的第一
个数据包,它就会被匹配。但是,数据包也可能不是 SYN 数据包而仍然被认为是 NEW。这在某些情况下可
能会导致某些问题,但在我们需要从其他防火墙恢复丢失的连接,或者连接已经超时但实际上并未关闭时,
这也可能非常有用。ESTABLISHED:一个已建立的连接(已接收其开始和结束的数据包)表示连接已建立。The ESTABLISHED state has seen traffic in both directions and will then 
continuously match those packets. ESTABLISHED connections are fairly easy to understand. 
The only requirement to get into an ESTABLISHED state is that one host sends a packet, 
and that it later on gets a reply from the other host. The NEW state will upon receipt of 
the reply packet to or through the firewall change to the ESTABLISHED state. ICMP replymessages can also be considered as ESTABLISHED, if we created a packet that in turn 
generated the reply ICMP message. ESTABLISHED 状态表示已经在两个方向上看到了流量,并且之后将持续匹配这些数据包。
ESTABLISHED 连接相对容易理解。进入

这篇关于iptables(7)扩展模块state的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090242

相关文章

python 在pycharm下能导入外面的模块,到terminal下就不能导入

项目结构如下,在ic2ctw.py 中导入util,在pycharm下不报错,但是到terminal下运行报错  File "deal_data/ic2ctw.py", line 3, in <module>     import util 解决方案: 暂时方案:在终端下:export PYTHONPATH=/Users/fujingling/PycharmProjects/PSENe

[FPGA][基础模块]跨时钟域传播脉冲信号

clk_a 周期为10ns clk_b 周期为34ns 代码: module pulse(input clk_a,input clk_b,input signal_a,output reg signal_b);reg [4:0] signal_a_widen_maker = 0;reg signal_a_widen;always @(posedge clk_a)if(signal_a)

spring-boot-maven-plugin多模块install问题

一、问题描述:   项目分多个模块,open-eureka注册中心、open-provider服务提供者、open-common公共部分,provider依赖common。父pom使用spring-boot-maver-plugin插件,项目直接运行Main主类没问题,但是install报common中的类找不到符号. 二、查找问题:   spring-boot-maven-plugin 打

工程师 - status和state的区别

"Status"和 "state"是相关的概念,但有不同的含义,尤其是在计算、系统和编程方面: 1. Status:     * 定义: 状态是指系统、进程或实体在某一特定时间点的当前状态或情况。     * 使用方法: 它通常描述一项操作的状态,如是否正在进行、是否已成功完成、是否遇到错误或是否正在等待输入。     * 举例说明: 在编程中,函数可能会返回一个状态代码,

上位机图像处理和嵌入式模块部署(mcu和swd接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         最近学习mcu的时候,接触了不少调试器,这里面有daplink、st-link v2、j-link v9。虽然模块的形状可能不太一样,但是硬件的连线都差不多,都是mcu上的3.3v、clk、dio和gnd四根连线。出于好奇,今天花了点时间了解了一下debug port、sw

使用import和exec运行模块文件的异同

使用import和exec运行模块文件的异同 实例代码 #script1.pyimport sysprint(sys.platform)x = 'span'print(x*8) 在cmd中 >>> import script1win32spanspanspanspanspanspanspanspan >>> exec(open('script1.py').read())win

常用上网增强类Chrome扩展

Chrome是个非常好用的浏览器,拥有丰富的扩展资源库,能够满足网民各种各样的需求,对于网民来说,通过Chrome扩展来增强上网体验是一个基本需求,但是安装过多的扩展有容易耗费大量系统资源,今天就给大量挑选一些常用的上网增强类Chrome扩展,供大家参考。   LastPass:用于管理大量网站的密码,给不同网站设置不同的密码,支持自动登录,支持手机两步验证。建议在普通和隐身模式下都启用这个扩展

ESP32通过I2C驱动PCA9557IO扩展芯片

前言 ESP32自带的IO管脚比较有限,这个时候我们就需要使用一些IO扩展芯片扩展我们的IO,今天就介绍一款使用I2C接口扩展8个IO的芯片 PCA9557 PCA 9557芯片介绍 PCA9557是一款硅CMOS电路,为SMBus和I²C总线应用提供并行输入/输出扩展。PCA9557由8位输入端口寄存器、8位输出端口寄存器和I²C总线/SMBus接口组成。具有低电流消耗和高阻抗开漏输出引脚

ansible setup模块

用于收集有关目标主机的系统和网络信息,并将这些信息存储为一个facts变量,可以在Playbook的后续任务中使用。setup模块可以用来获取主机的操作系统、软件包、IP地址、内存、磁盘和其他硬件信息。这些信息对编写Playbook和进行条件判断非常有用。当你在Playbook或者直接通过Ansible命令行使用setup模块时,它会返回一个包含目标主机详细信息的JSON结构,这些信息包括但不限于

ansibie yum模块

用于在远程主机上使用yum软件包管理器来安装、更新、删除和查询软件包的。它使得在大规模主机环境中进行软件包管理变得更加简单和自动化。 name: 必需参数,指定需要管理的软件包名称,例如 nginx、httpd 等。 state: 指定软件包应处于的状态,可选值包括: present 或 installed: 确保软件包被安装,这是默认值。latest: 确保软件包被安装,并且是最新版本。