我正在寻找可以根据一组规则改变网络数据包的有效内容的

linux实用程序.理想情况下,我会使用iptables和netfilter内核模块,但它们不支持通用的有效负载调整:iptables会改变各种头域(地址,端口,TOS等),并且可以匹配数据包中的任意字节,但是它显然无法改变数据包内的任意数据.

内核模块将是一个很大的优势,因为效率是一个问题,但我很乐意探索任何其他可以完成工作的选项.

谢谢你的想法!

逾期更新:

我们选择使用NFQUEUE模块,这是Robert Gamble建议的QUEUE模块的最新实现.这似乎是相当简单的,有一个安全的奖金,允许我们的代码运行在用户,而不是内核,空间.

如果我们只想改变有效载荷而不改变它的大小,这个实现将是微不足道的.在这种情况下,我们定义一个iptables规则来为我们选择“有趣的”数据包,并向他们发送一个NFQUEUE目标.我们将编写一个回调函数,它将检查来自NFQUEUE的数据包,根据需要修改数据,并重新计算其TCP和IP头中的校验和.

但是,我们的用例涉及将额外的字符注入到数据流中.这具有增加TCP流中对应的SEQ / ACK号码的一些明显的副作用,并且将conntrack模块混淆的不太明显的副作用足以完全破坏NAT.经过大量研究,头痛和实验后,最方便的解决方案是禁用这些特定数据包(原始表中的NOTRACK目标)的连接跟踪,并在我们的回调中处理它.保存你的西红柿和仇恨邮件;我不敢为你提供让人感到自豪的地方,但这是在下一个冰河时代之前为客户提供可靠产品的唯一途径.这是一个很好的故事.但我真的很感激,分享你的衷心情绪.

版本2将通过使用自定义NAT和/或conntrack helper替换我们的回调和几个iptables规则来利用我们的新发现启发.我们相信,目前的练习给了我们足够的经验来创建一个可以有机地适应netfilter架构的内核模块解决我们遇到的问题.

再次感谢您的兴趣和建议!

linux管理外部工具,linux – 除了iptables之外的数据包管理工具?相关推荐

  1. 常见的linux包管理软件,5款最适合新手的包管理器

    导读 在 Linux 中,包管理器非常重要,知道如何使用多种包管理器可以让你像一个高手一样活得很舒适,从在仓库下载软件.安装软件,到更新软件.处理依赖和删除软件是非常重要的,这也是Linux 系统管理 ...

  2. linux如何查看丢弃数据包,如何查看被iptables丢弃的数据包

    在Linux系统中,我们经常用iptables对数据包进行限制,最常见的就比如: [root@s109 ~]#iptables -nvL Chain INPUT (policy DROP 830 pa ...

  3. linux原始套接字抓取网络数据包

    基于linux的抓包 一.获取数据     当我们在做网络安全或者数据探测等工作经常会用到抓包.熟悉的工具有tcpdump.wireshark等,这里我们介绍如何使用C程序原始套接字在linux系统上 ...

  4. ubuntu/linux系统知识(17)图形化的包管理工具Synaptic

    文章目录 Synaptic 软件包管理器是什么? 为什么你要使用像 Synaptic 软件包管理器这样的 "古老的" 软件? Synaptic 软件包管理器的功能 如何在 Ubun ...

  5. 如何在Linux命令行下发送和接收UDP数据包

    众所周知,在传输层有两个常用的协议 TCP 和 UDP,本文介绍在 Linux 命令行下,如何使用 nc 命令发送或接收 UDP 数据包,这些命令的用法对调试 UDP 通信程序将有所帮助. 1. 问题 ...

  6. linux下udp数据包接收工具,linux环境下数据包回放工具--pplayer分享

    pplayer(packet player)是我写的一款小工具,支持主流协议,专门用来测试IPS和防火墙设备,经长时间验证,简单可靠,故发布. 程序的原理很简单,首先加载pcap包中的数据包,保存在内 ...

  7. python包管理机制_Go 1.5之前的多种包管理机制简介(

    在 Go 语言中,我们可以使用go get命令安装远程仓库中托管的代码,不同于 Ruby Gem.pypi 等集中式的包管理机制, Go 语言的包管理系统是去中心化的.简单来讲,go get命令支持任 ...

  8. LWIP的数据包管理

    1.数据包结构-pbuf 1.1.pbuf结构 LWIP是TCP/IP协议栈的一种具体实现,本质就是对数据包的处理,在LWIP中使用一个被称为pbuf的结构管理数据包,LWIP源码中的pbuf.c和p ...

  9. LWIP学习笔记(3)LWIP数据包管理结构pbuf

    pbuf:LWIP是TCP/IP协议栈的一种具体体现,本质就是对数据包的处理,在LWIP中使用一个被称为pbuf的结构体管理数据包,LWIP源码中的pbuf.c和pbuf.h这两个文件就是关于pbuf ...

最新文章

  1. 我国将明确侵犯个人信息定罪及量刑标准
  2. 怎么能方便的进行数据库存储过程的版本管理?
  3. web.py 0.3 新手指南 - 安装
  4. HarmonyOS快速开发入门
  5. java 下载二进制文件_使用Java从Github下载二进制文件
  6. leetcode 795. Number of Subarrays with Bounded Maximum | 795. 区间子数组个数(Java)
  7. 面试必备Linux基础知识
  8. Windows Git客户端搭建
  9. Dubbo源码分析系列之-整体架构设计
  10. searchIndexer.exe占用过高CPU
  11. php栏目树,php生成无限栏目树
  12. 金融网络直播室软件的功能介绍
  13. 计算机组成原理中wr是什么,计算机组成原理第8章习题指导.pdf
  14. 孙鑫视频VC编程 优酷系列
  15. 马云现场演讲:宣布卸任董事局主席——“青山不改,后会有期!”
  16. Qt以文件资源管理器打开文件夹
  17. 工厂模式,从第三方登录说起
  18. 《持续交付》书评与访谈
  19. 教妹学Java(十七):do-while 循环
  20. 【无标题】研究过程中的一些经验感悟

热门文章

  1. python中属性是什么意思啊_python中的“对象属性”和一般属性是什么?
  2. RedisTemplate常用集合使用说明-opsForSet(五)
  3. rowdata java_Java RowDataUtil.addRowData方法代碼示例
  4. c语言中foreach的用法,详解JavaScript中的forEach()方法的使用
  5. php服务器怎么设置cookie,php服务器如何清除浏览器cookie
  6. java中的关键字有哪些_Java关键字有哪些?
  7. Java8————Stream API
  8. 系统如何启动数据库服务器,怎么启动sql数据库服务器
  9. matlab sar 斑马图,星载合成孔径雷达(SAR)斑马图仿真与研究
  10. 地图自定义图标_如何在H5里添加地图导航?这份教程请收藏!