1.5 Packet Acquisition

Snort 2.9 引入 DAQ 代替直接调用 libpcap .

有两种网卡特性会影响 Snort :

”Large Receive Offload” (LRO) and ”Generic Receive Offload” (GRO)

Snort 建议关闭这两项 ,对于linux系统 执行以下命令行 :

$ ethtool -K eth1 gro off
$ ethtool -K eth1 lro off

1.5.1 Configuration

假设我们没有禁用 static modules 或者改变默认的 DAQ 类型, 我们可以像以前一样使用 interface 运行Snort 中 readback 或者 sniffing. 当然, 也可以通过以下设置选择和配置 DAQ :

必须通过配置文件或者命令行指定好所需要的参数, 否则 -Q 会强制执行 inline, -r 会强制执行 read-file, mode默认为passive.

-省略-

1.5.2 pcap

pcap 是默认的 DAQ. snort 运行任何 w/o DAQ 命令, 都是通过操作 pcap.以下命令是等价的 :

./snort -i <device>
./snort -r <file>
./snort --daq pcap --daq-mode passive -i <device>
./snort --daq pcap --daq-mode read-file -r <file>

可以指定pcap buffer_size :

./snort --daq pcap --daq-var buffer_size=<#bytes>

pcap DAQ 不记录过滤的数据包.

1.5.3 AFPACKET

afpacket 函数类似与 memory mapped pacp DAQ 但是不需要外部依赖库 :

./snort --daq afpacket -i <device>
[--daq-var buffer_size_mb=<#MB>]
[--daq-var debug]

如果在 inline mode 中运行 afpacket, 必须设置一个或多个接口对(interface pairs), 格式如下 :

eth0:eth1

或者:

eth0:eth1::eth2:eth3

afpacket DAQ 默认分配128MB的包内存(packet memory), 可以通过以下配置修改 :

--daq-var buffer_size_mb=<#MB>

注意, 总的内存分配量比这个高, 约165.5MB(较128MB)

1.5.4 NFQ

NFQ 是新的改良的抓包(iptables packets)方式 :

关于 iptables

https://wiki.archlinux.org/index.php/Iptables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

1.5.5 IPQ

IPQ 是旧的抓包(iptables packets)方式. pre-2.9 可以通过以下命令在build时启用 :

./configure --enable-inline / -DGIDS

通过一下设置启用 :

1.5.6 IPFW

BSD系统可以用IPFW. pre-2.9 可以通过以下命令在build时启用 :

./configure --enable-ipfw / -DGIDS -DIPFW

以下这条命令作废 :

./snort -J <port#>

改为以下命令 :

./snort --daq ipfw [--daq-var port=<port>]
<port> ::= 1..65535; default is 8000

IPFW 只支持ip4 流量

1.5.7 Dump

在 snort 2.9 版本中 dump DAQ 允许尝试多种inline模式特性, 例如 injection 和 normalization.

./snort -i <device> --daq dump
./snort -r <pcap> --daq dump

默认会生成一个文件名为inline-out.pcap的文件, 包括所有snort捕获和生成的包. 也可以自定义名字 :

./snort --daq dump --daq-var file=<name>

因为dump是通过调用pcap daq. 因此也没有计数过滤的包.

注意 dump DAQ 的inline mode 不是真正的 inline mode.此外, 在其他模式中需要用到 pcap DAQ :

./snort -r <pcap> -Q --daq dump --daq-var load-mode=read-file
./snort -i <device> -Q --daq dump --daq-var load-mode=passive

1.5.8 Statistics Changes

The Packet Wire Totals and Action Stats sections of Snort’s output include additional fields:

Filtered count of packets filtered out and not handed to Snort for analysis.

Injected packets Snort generated and sent, e.g. TCP resets.

Allow packets Snort analyzed and did not take action on.

Block packets Snort did not forward, e.g. due to a block rule.

Replace packets Snort modified.

Whitelist packets that caused Snort to allow a flow to pass w/o inspection by any analysis program.

Blacklist packets that caused Snort to block a flow from passing.

Ignore packets that caused Snort to allow a flow to pass w/o inspection by this instance of Snort.

The action stats show ”blocked” packets instead of ”dropped” packets to avoid confusion between dropped packets (those Snort didn’t actually see) and blocked packets (those Snort did not allow to pass).




Snort - manual 笔记(二)的更多相关文章

  1. Snort - manual 笔记(一)

    Chapter 1 Snort Overview This manual is based on Writing Snort Rules by Martin Roesch and further wo ...

  2. Snort - manual 笔记(五)

    1.9 Miscellaneous 1.9.1 Running Snort as a Daemon 如果你想让Snort作为守护程序运行,你可以在最后加上 -D 选项.清注意如果你想通过发送一个 SI ...

  3. Snort - manual 笔记(四)

    1.7 Basic Output Snort可以做很多任务, 并且在任务完成后输出很多有用的统计信息. 一些不用说明就可以看懂, 其他的总结在这里, 不过只是一些基本的 1.7.1 Timing St ...

  4. Snort - manual 笔记(三)

    1.6 Reading pcap files Snort 不仅可以监听interface, 还可以读取和分析已经捕获的数据包. 1.6.1 Command line arguments 下面的命令都可 ...

  5. 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  6. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

  7. Mastering Web Application Development with AngularJS 读书笔记(二)

    第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

  8. Python 学习笔记二

    笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...

  9. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

随机推荐

  1. [转]UML八大误解

    潘加宇 本文删节版发表于<程序员>2013年11期 UML(统一建模语言)是软件建模的表示法标准.我从2002年开始专门从事研究和推广UML的工作,在为软件组织提供UML相关需求和设计技能 ...

  2. 认识SuperSocket 1.6.4

    SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,由江振宇先生开发,之所以选用它是因为一下几点恰好复合项目需求: 开源,基于Apache 2.0协议,可以免费使用到商业项目. 高 ...

  3. JS思维之路菜鸟也能有大能量(2)--模拟数组合并concat

    我们有两个这样的数组 var arr1 = [1,2,3]; var arr2 = [4,5,6]; 任务:合并成这样,请至少提供两种思路. var arr1 = [1,2,3,4,5,6]; 思路一 ...

  4. hdu 2014鞍山赛区 5073 Galaxy

    题意:就是给你 n 个数,代表n个星球的位置,每一个星球的重量都为 1 ! 开始的时候每一个星球都绕着质心转动,那么质心的位置就是所有的星球的位置之和 / 星球的个数 现在让你移动 k 个星球到任意位 ...

  5. yousa_team团队项目——兼职平台网站 工作进度

    4月31 初步设计网站界面,功能以及数据库关系图 网站包括登陆注册界面,商家和学生都有个人主页,查看兼职信息界面和反馈界面,管理员有查看反馈界面,查看兼职市场,管理后台界面 登录注册界面实现用户的登陆 ...

  6. 探秘空值位图掩码(NULL bitmap mask)

    这篇文章我想谈下空值位图掩码(NULL bitmap mask) ,并揭开它的神秘面纱.空值位图掩码是在存储引擎层为列是否存储NULL值进行编码.它是一个简单的位图掩码,如果值是1的话,表示这列有NU ...

  7. Mysql中的各种timeout

    在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?本期Out-man,讲述咱们MySQL DBA自己的Ti ...

  8. 第二次sprint团队贡献分

    201406114105       董婷婷           22 201406114157       容杰龙           21 201406114343       卓炜杰       ...

  9. Event事件跨浏览器封装

    var Event = { //注册事件 addEvent: function(element,type,handler){ if(element.addEventListener){ //DOM2级 ...

  10. thread_Semaphore信号量

    Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数,并提供了同步机制.  使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数. 一个计数信 ...