iptables(6)扩展匹配条件--tcp-flags、icmp

简介

        前面我们已经介绍了不少的扩展模块,例如multiport、iprange、string、time、connlimit模块,但是在tcp扩展模块中只介绍了tcp扩展模块中的”--sport”与--dport”选项,并没有介绍”--tcp-flags”选项,那么这篇文章,我们就来认识一下tcp扩展模块中的”--tcp-flags”和icmp。

--tcp-flags

TCP报文介绍

”--tcp-flags”指的就是tcp头中的标志位,在使用iptables时,我们可以通过此扩展匹配条件,去匹配tcp报文的头部的标识位,然后根据标识位的实际情况实现访问控制的功能。

那我们来看下tcp的报头结构

标志符(9比特长)
NS—ECN-nonce。ECN显式拥塞通知(Explicit Congestion Notification)是对TCP的扩展,定义于 RFC 3540 (2003)。ECN允许拥塞控制的端对端通知而避免丢包。ECN为一项可选功能,如果底层网络设施支持,则可能被启用ECN的两个端点使用。在ECN成功协商的情况下,ECN感知路由器可以在IP头中设置一个标记来代替丢弃数据包,以标明阻塞即将发生。数据包的接收端回应发送端的表示,降低其传输速率,就如同在往常中检测到包丢失那样。
CWR—Congestion Window Reduced,定义于 RFC 3168(2001)。
ECE—ECN-Echo有两种意思,取决于SYN标志的值,定义于 RFC 3168(2001)。
URG—为1表示高优先级数据包,紧急指针字段有效。
ACK—为1表示确认号字段有效
PSH—为1表示是带有PUSH标志的数据,指示接收方应该尽快将这个报文段交给应用层而不用等待缓冲区装满。
RST—为1表示出现严重差错。可能需要重新建立TCP连接。还可以用于拒绝非法的报文段和拒绝连接请求。
SYN—为1表示这是连接请求或是连接接受请求,用于建立连接和使顺序号同步
FIN—为1表示发送方没有数据要传输了,要求释放连接。

 在使用iptables时,使用tcp扩展模块的”–tcp-flags”选项,即可对上图中的标志位进行匹配,判断指定的标志位的值是否为”1″,在tcp协议建立连接的过程中,需要先进行三次握手,而三次握手就要依靠tcp头中的标志位进行。

TCP三次握手过程

  1. 客户端(通过执行connect函数)向服务器端发送一个SYN包,请求一个主动打开。该包携带客户端为这个连接请求而设定的随机数A作为消息序列号。
  2. 服务器端收到一个合法的SYN包后,把该包放入SYN队列中;回送一个SYN/ACK。ACK的确认码应为A+1,SYN/ACK包本身携带一个随机产生的序号B
  3. 客户端收到SYN/ACK包后,发送一个ACK包,该包的序号被设定为A+1,而ACK的确认码则为B+1。然后客户端的connect函数成功返回。当服务器端收到这个ACK包的时候,把请求帧从S

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/740571.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【linux kernel】一文总结linux输入子系统

文章目录 一、导读二、重要数据数据结构(2-1)struct input_dev(2-2)input_dev_list和input_handler_list(2-3)struct input_handler 三、input核心的初始化四、常用API五、输入设备驱动开发总结(1)查看输入…

Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

上次介绍了基础IO(二):Linux:基础IO(二.缓冲区、模拟一下缓冲区、详细讲解文件系统) 文章目录 1.软硬链接1.1硬链接1.2软链接使用场景 2.动态库和静态库1.1回顾1.2静态库的制作和使用为什么要有库制作者角度…

搜维尔科技:「案例」NBA新科冠军与Xsens运动捕捉的缘分

北京时间昨日,凯尔特人在主场106比88击败独行侠,以总比分4比1获胜,夺得队史第18冠,超越湖人队(17冠)成为历史上夺冠次数最多的球队。凯尔特人队上一次夺冠还是在2007-2008赛季。 凯尔特人队主力Jayson Tat…

Kotlin明明很优秀,为啥没像Java那样火?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!因为 kotlin 优化一件事&…

太全了吧?CISP全类别详细介绍,看完不迷惑

今天聊聊CISP,注册信息安全专业人员证。 很多人以为说CISP就是个证书,没这么简单,这里面区别可大了。 CISP根据工作领域和实际岗位需要,分为综合型、攻防领域、IT审计、软件开发、数据治理、电子取证和云安全领域等17项证书。 这么…

基于Openmv的追小球的云台

介绍 在这篇文章,我会先介绍需要用到且需要注意的函数,之后再给出整体代码 在追小球的云台中,比较重要的部分就是云台(实质上就是舵机)的控制以及对识别的色块位置进行处理得到相应信息后控制云台进行运动 1、舵机模…

LeetCode.32最长有效括号详解

问题描述 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 解题思路1 有效的括号字符串意味着每一个左括号 ( 都可以找到一个相匹配的右括号 )。栈可以帮助我们追踪尚未匹配的括号,并有效地处理…

推荐一款AI修图工具,支持AI去水印,AI重绘,AI抠图...

不知道大家有没有这样的一个痛点,发现了一张不错的“素材”, 但是有水印,因此不能采用,但找来找去,还是觉得初见的那个素材不错,怎么办? 自己先办法呗。 二师兄发现了一款功能强大的AI修图工具…

猫头虎 AI 前沿科技探索之路(持续更新):ChatGPT/GPT-4 科研应用、论文写作、数据分析与 AI 绘图及文生视频实战全攻略

猫头虎 AI 前沿科技探索之路(持续更新):ChatGPT/GPT-4 科研应用、论文写作、数据分析与 AI 绘图及文生视频实战全攻略 背景介绍 随着人工智能技术的飞速发展,AI 的应用已经渗透到各个领域,从商业决策到医疗健康,再到日常生活中的…

win10改远程桌面端口,Windows 10 修改远程桌面端口号的专业指南

在Windows 10系统中,远程桌面(Remote Desktop)功能允许用户从一台计算机远程访问和控制另一台计算机。为了增加远程连接的安全性,减少潜在的安全风险,修改默认的远程桌面端口号是一个常见的安全措施。以下是在Windows …

postman教程-22-Newman结合Jenkins执行自动化测试

上一小节我们学习了Postman Newman运行集合生成测试报告的方法,本小节我们讲解一下Postman Newman结合Jenkins执行自动化测试的方法。 在软件开发过程中,持续集成(CI)是一种实践,旨在通过自动化的测试和构建过程来频繁…

离散数学-再次复习

1.先找到e,这里是0 2.对每个元素求它的阶 3.根据拉格朗日定理,子群的阶必须是群 G 的阶的因数。群 G 的阶为 10,它的因数有 1、2、5 和 10。这意味着子群的阶可能是 1、2、5 或者 10。 4.相同阶的就放为一组,也就是它的一个子群…

华为开发者大会闪耀东莞,康佳电视携手海思惊艳亮相

近日,华为开发者大会(HDC2024)在东莞松山湖举行。 作为电视领域唯一受邀参展的品牌,康佳电视以其优秀的创新实力,携手华为海思共同展示了基于OpenHarmony Standard层级的鸿鹄媒体创新方案。该方案不仅能够为用户带来更…

uni-starter:云端一体应用快速开发的新选择

一、引言 随着移动互联网的快速发展,应用开发面临着日益增长的效率挑战。如何在保证应用功能丰富性的同时,快速迭代和上线,成为了众多开发者关注的焦点。在这样的背景下,uni-starter作为一款集成商用项目常见功能的云端一体应用快…

大型语言模型(LLM)和多模态大型语言模型(MLLM)的越狱攻击

随着大型语言模型(LLMs)的快速发展,它们在各种任务上表现出了卓越的性能,有效地遵循指令以满足多样化的用户需求。然而,随着这些模型遵循指令的能力不断提升,它们也越来越成为对抗性攻击的目标,…

ONLYOFFICE 桌面编辑器 8.1:全新升级,助您轻松高效处理办公文档

ONLYOFFICE 桌面编辑器 一、前言二、轻松编辑器 PDF 文件三、用幻灯片版式快速修改幻灯片四、无缝切换文档编辑、审阅和查看模式五、改进从右至左语言的支持 & 新的本地化选项六、版本 8.1:其他新功能七、ONLYOFFICE 官网:https://www.onlyoffice.co…

msvcp120.dll丢失的解决方法,总结几种有效的解决方法

最近,我在使用计算机时遇到了一个问题,系统提示我丢失了msvcp120.dll文件。这让我感到非常困扰,因为这个问题导致我无法正常运行一些程序。经过一番搜索和尝试,我找到了几种修复这个问题的方法,并成功解决了这个问题。…

Unity面试题 UGUI调整UI与粒子特效的显示层级

首先,必须保证Canvas画布的渲染模式为了相机渲染 方法:一:将需要控制UI显示层级的Image换成Sprite 1.创建一个粒子系统,和两张Sprite. 2.设置Sprite1的Order in Layer为 -1,设置Sprite2的Order in Layer为 1,粒子的Ord…

QT拖放事件之一:初识拖放4大事件处理函数

1、拖放的前提 // 为了产生拖放事件,必须同时具备以下两个条件: // [1.] 必须开启用来接受拖放的窗口,否则无法产生拖放事件,鼠标形状显示为禁用标志; // [2.] 必须重写重新实现dragEnterEvent() {event->accept(); 或 event->acceptProposedAction();}; // 否则,…

VoxEdit 竞赛|为 The Sandbox 土地持有者设计专属奖励资产

邀请大家参与这场精彩的 VoxEdit 竞赛,在元宇宙中发挥你的创造力,并将你的体素技能提升到新的水平! 按此下载 VoxEdit ! https://www.sandbox.game/en/create/vox-edit/ 比赛主题:建筑与古迹 一起潜入建筑和古迹的世…