Suricata
文章平均质量分 86
suricata安装、使用、规则编写和源码解析
编程十万问
我是王小智,Linux C 开发工程师,喜欢钻研技术,写文章,交朋友。
展开
-
suricata的flow流会话管理分析1
1)就是当流表内存不够用时,会有一个紧急状态机制FLOW_EMERGENCY,这个时候不同协议以及不同流状态的老化时间会大大的缩短,加速流表老化,以腾出更多的内存空间为新流所用,例如紧急状态下TCP流的初建阶段的老化时长默认值为FLOW_IPPROTO_TCP_EMERG_NEW_TIMEOUT 10秒,而对于TCP握手完成之后的流老化时长默认为FLOW_IPPROTO_TCP_EMERG_EST_TIMEOUT 100秒。创建流表时,先优先从这些节点上获取flow。喜欢文章内容的朋友,加个关注呗~~原创 2023-06-05 22:42:35 · 654 阅读 · 0 评论 -
suricata中的线程管理分析
在runmodes.c中定义了如下的线程命名,从中大概可以看出suricata存在哪些线程,由于我们重点关注的是DPDK的workers模式收包,所以无关的线程,我们暂时不关注(已在下面的线程名后面标识出来)一文中,我们讲到了suricata中如何自定义命令,现在我们来实践一下,加入threads-list和slots-list这两个自定义命令,分别查看suricata的线程列表以及指定线程的slots。有问题或者需要自定义命令源码的朋友,可以进网络技术开发交流群提问(先加我wx,备注加群)。原创 2023-05-23 22:31:24 · 266 阅读 · 0 评论 -
suricata的Decode协议解码流程源码分析
一般报文的解码流程比较简单,先确定报文的起始位置和总长度,这两个值在ReceiveDPDKLoop中PacketSetData函数,将DPDK mbuf的报文起始地址和报文总长度赋值给了suricata报文Pakcet结构体的ext_pkt和pktlen。DPDK解码流程的函数入口是DecodeDPDK,解码流程按照以太网层、网络层、传输层以及负载一层层找到报文中指定的位置,并且记录相关字段,最后在FlowSetupPacket函数中根据建流的需要打上相应的标记以及计算出流表的哈希值。原创 2023-05-22 21:58:02 · 814 阅读 · 0 评论 -
suricata中command的实现分析和自定义命令方法
1)注册命令:在UnixManagerThreadSpawnNonRunmode函数中注册命令"just-test": UnixManagerRegisterCommand("just-test", Justtest, NULL, 0);SCEnter();int i = 0;原创 2023-05-20 12:10:10 · 404 阅读 · 0 评论 -
suricata中DPDK收发包源码分析2
suricata中分析了整体的DPDK收发包框架代码,今天我们继续来深入了解一下一些细节方面的问题。原创 2023-05-16 21:50:31 · 480 阅读 · 0 评论 -
suricata中DPDK收发包源码分析1
2)source-dpdk.c在RegisterAllModules()函数中调用TmModuleReceiveDPDKRegister()和TmModuleDecodeDPDKRegister()来注册DPDK对应的收包和解码两个module,大部分代码是对这两个module提供的API函数的实现,包括收包前的初始化和收取报文,解码前的初始化和报文解码。好了,关于suricata中DPDK收发包的初始化以及框架代码的分析就到这里了。原创 2023-05-14 21:36:19 · 608 阅读 · 0 评论 -
suricata中DPDK收发包线程模型和配置说明
suricata中DPDK的收发包线程模型以及相关的配置。原创 2023-05-11 22:00:51 · 1079 阅读 · 0 评论 -
基于DPDK收包的suricata的安装和运行
先用lshw -C network -businfo命令找到网卡的pcie地址,然后在/usr/local/etc/suricata/suricata.yaml文件中配置suricata DPDK收包,主要修改interface和copy-iface配置。suricata是一个基于规则的入侵检测和防御引擎,功能强大,但性能可能 差强人意,不过目前最新的7版本已经支持DPDK收包了,DPDK是Intel提供的高性能网络收发包开源库,可想而知,suricata支持DPDK收包会带来性能的极大提升。原创 2023-03-30 11:09:03 · 1963 阅读 · 11 评论