最近看了一下suricata-1.2.1的源代码,加之之前在网上没有搜到关于suricata的分析资料, 所以就把看源码时的一些笔记整理了一 下,发到网上,供其他对suricata感兴趣的网友参考。由于是第一次在csdn上写技术博客,不足之处还望看到此文章的网友见谅!

先还是进行简要的介绍一下,Suricata 是一个网络入侵检测和阻止引擎,由开放信息安全基金会以及它说支持的提供商说开发。该引擎是多线程的,内置 IPv6 的支持,可加载预设规则,支持 Barnyard 和 Barnyard2 工具。

由于我只对Suricata的IPS模式感兴趣,所以就只看了IpsNFQ的源代码部分,但个人觉得,只要把一种模式看懂了,其它的模式理解起来就是顺其自然的事情了,各模式之间最主要的不同就是数据包的来源不同。下面就开始对suricata的IpsNFQ模式进行分析。

1. IpsNFQ三种模式图

IpsNFQ模式下还有三种模式,先来看看这三种模式的分析图。

a) Auto模式

b) AutoFP模式

c) Worker模式

对上图中的一些值说明一下。Queue数量是指NFQ的Queue数量;CPU数是指CPU的核心数;ratio是一个比率值,在suricata.yaml配置文件中设定,一般设置成0.5、1或1.5。

Surciata源码分析之IpsNFQ模式(1)相关推荐

  1. android doze模式源码分析,Android Doze模式启用和恢复详解

    从Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户.用户管理可以在没有充电的情况下管理app的行为.当用户一段时间没有使用手机的时候,D ...

  2. Java设计模式学习以及底层源码分析

    源码在分支master 工厂模式 把具体创建产品的细节封装起来,你要什么产品,我给你什么产品即可. 简单工厂模式 工厂方法模式 缓存层:抽象类 抽象工厂模式 缓存层是:接口 原型模式 问题: 原型模式 ...

  3. 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

  4. Mongodb源码分析--Replication之主从模式--Master

    mongodb中提供了复制(Replication)机制,通过该机制可以帮助我们很容易实现读写分离方案,并支持灾难恢复(服务器断电)等意外情况下的数据安全. 在老版本(1.6)中,Mongo提供了两种 ...

  5. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...

  6. 深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析

    第五.第六.第七篇博文,我们讲解了Standalone模式集群是如何启动的,一个App起来了后,集群是如何分配资源,Worker启动Executor的,Task来是如何执行它,执行得到的结果如何处理, ...

  7. 深入理解Spark 2.1 Core (六):Standalone模式运行的原理与源码分析

    我们讲到了如何启动Master和Worker,还讲到了如何回收资源.但是,我们没有将AppClient是如何启动的,其实它们的启动也涉及到了资源是如何调度的.这篇博文,我们就来讲一下AppClient ...

  8. 深入理解Spark 2.1 Core (五):Standalone模式运行的原理与源码分析

    概述 前几篇博文都在介绍Spark的调度,这篇博文我们从更加宏观的调度看Spark,讲讲Spark的部署模式.Spark部署模式分以下几种: local 模式 local-cluster 模式 Sta ...

  9. Java的三种代理模式完整源码分析

    Java的三种代理模式&完整源码分析 Java的三种代理模式&完整源码分析 参考资料: 博客园-Java的三种代理模式 简书-JDK动态代理-超详细源码分析 [博客园-WeakCach ...

最新文章

  1. 用零知识证明解决投票安全
  2. C语言实现易语言变量框,c语言实现简单的易语言
  3. 第二阶段团队项目冲刺第七天
  4. Web API系列(三)统一异常处理
  5. 集成ffmpeg/x264:ERROR: libx264 not found的问题
  6. 分布式存储系统设计 - Gossip
  7. [hihoCoder] 第五十周: 欧拉路·二
  8. jboss7 java版本_jboss-as-7.1.1.Final与jdk1.8不兼容解决方案
  9. oracle 多路径 SAN,前言 - Oracle Solaris 管理:SAN 配置和多路径
  10. 浏览器调试动态js脚本
  11. Maven下载和安装
  12. 代理记账公司如何寻找客户群体,客户群体有那些
  13. SAP R3 功能详解 - 固定资产会计
  14. 交换机的初始化配置(思科模拟器)
  15. PS 2020一些使用技巧
  16. [ 大数据分析 ] 大数据分析与处理方法介绍
  17. 前端CSS3--字体样式
  18. Pytorch 正则化方法(权重衰减和Dropout)
  19. 关于电脑打开多个微信的方法
  20. 嵌入式audio基础(八)主动降噪

热门文章

  1. ubuntu和windows双系统默认启动顺序
  2. 产品经理常用词汇汇总
  3. 无法显示页面,因为发生内部服务器错误。
  4. python 日期格式只取年月_python如何只获取日期
  5. windows7修改(缩小)快捷方式箭头
  6. Spark Shell 的使用
  7. 1789: 高精度A+B
  8. Oracle 报错 28000原因和解决方法
  9. 用BibTeX 写 Reference
  10. VSCode+latex引用bibtex参考文献