文章目录

  • 1.6 读取pcap文件
    • 1.6.1 命令行参数
    • 1.6.2 Example
  • 1.7 基本输出
    • 1.7.1 Timing statistics 时间统计
    • 1.7.2 Packet I/O Totals 总的流入流出包
    • 1.7.3 Protocol Statistics 协议数据包
    • 1.7.4 snort memory数据
    • 1.7.5 Actions, Limits, Verdicts
  • 1.8 Tunneling 协议支持
    • 1.8.1 多个封装
    • 1.8.2 Logging
  • 1.9 Miscellaneous 杂项
    • 1.9.1 作为后台程序运行snort
    • 1.9.2 在规则存根创建模式下运行
    • 1.9.3 混淆IP地址打印输出
    • 1.9.4 指定多实例标识符
    • 1.9.5 Snort 模式
  • 1.10 控制套接字
  • 1.11 配置信号值
  • 1.12 更多信息

1.6 读取pcap文件

可以让Snort捕获数据包之后去分析,对测试和调试snort很有帮助

1.6.1 命令行参数

可以一次或者多次指定以下命令,--pcap-reset and --pcap-show用一次和多次的效果是一样的

1.6.2 Example

读取单个的pcap

snort -r foo.pcap
snort --pcap-single=foo.pcap

从文件中读取pcaps

cat foo.txt
foo1.pcap
foo2.pcap
/home/foo/pcapssnort --pcap-file=foo.txt

这将读取目录/home/foo/pcaps下的所有文件foo1.pcap foo2.pcap,请注意,Snort不会尝试确定该目录下的文件是否真的是pcap文件。

从命令行列表里读取pcaps

snort --pcap-list="foo1.pcap foo2.pcap f003.pcap"

在目录下读取pcaps

snort --pcap-dir="/home/foo/pcaps"

使用过滤器

cat foo.txt
foo1.pcap
foo2.pcap
/home/foo/pcapssnort --pcap-filter="*.pcap" --pcap-file=foo.txt
snort --pcap-filter="*.pcap" --pcap-dir=/home/foo/pcaps

以上的pcap文件必须要以.pcap结尾

snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-filter="*.cap" --pcap-dir=/home/foo/pcaps

以上,第一个** *.pcap**只对文件foo.txt中的pcaps有效,第二个过滤器*.cap会覆盖第一个,应用在目录/home/foo/pcaps上,里面所有的.cap文件都会被处理。

snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-no-filter --pcap-dir=/home/foo/pcaps

这个梨子中,第一个filter将会应用在foo.txt上,而在目录/home/foo/pcaps下的文件将不会使用任何过滤器,所有在这个目录下的文件都会包含进去

$ snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-no-filter --pcap-dir=/home/foo/pcaps \
> --pcap-filter="*.cap" --pcap-dir=/home/foo/pcaps2

上面梨子中,第一个过滤器将会用在foo.txt上,目录/home/foo/pcaps下将不会使用任何过滤器,目录/foo/pcaps2将找到*.cap的所有文件。

Reseting state 复位状态

snort --pcap-dir=/home/foo/pcaps --pcap-reset

在读取每个pcap之后,Snort将被重置为配置后状态,这意味着将刷新所有缓冲区,重置统计信息,等等

打印pcap

snort --pcap-dir=/home/foo/pcaps --pcap-show

1.7 基本输出

1.7.1 Timing statistics 时间统计

介绍基本的时间统计信息。它包括总秒数和数据包以及数据包处理速率。速率是基于整秒、分等,并且只在非零时显示。梨子:

1.7.2 Packet I/O Totals 总的流入流出包

显示基本的从DAQ获取和注入的数据包,如果你在读取pcap,那总数就是pcap的和,除非你使用了-pcap-reset

  • Outstanding 会显示有多少包被缓冲等待处理
  • pcap DAQs不显示过滤包
  • injected数据包是主动响应的结果,可以配置为inline或者passive模式
Packet I/O Totals:
Received: 3716022
Analyzed: 3716022 (100.000%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 0 ( 0.000%)
Injected: 0

1.7.3 Protocol Statistics 协议数据包

breakdown部分总结了所有协议的通信,如果开启了frag3stream5这样的预处理程序,那么这个流量会有内部的“伪包”,总流量可能会大于I/O部分分析包的数量。

  • 由于基本的编码完整性缺陷,磁盘计数被丢弃,这阻止了Snort解码数据包。
  • Other include包包含Snort无法解码的封装。
  • S5 G 1/2是客户端/服务器会话流5由于缓存限制刷新,会话超时,会话重置。

例子

Breakdown by protocol (includes rebuilt packets):
Eth: 3722347 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 1782394 ( 47.884%)
Frag: 3839 ( 0.103%)
ICMP: 38860 ( 1.044%)
UDP: 137162 ( 3.685%)
TCP: 1619621 ( 43.511%)
IP6: 1781159 ( 47.850%)
IP6 Ext: 1787327 ( 48.016%)
IP6 Opts: 6168 ( 0.166%)
Frag6: 3839 ( 0.103%)
ICMP6: 1650 ( 0.044%)
UDP6: 140446 ( 3.773%)
TCP6: 1619633 ( 43.511%)
Teredo: 18 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 202 ( 0.005%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)
GRE PPTP: 202 ( 0.005%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 104840 ( 2.817%)
IPX: 60 ( 0.002%)
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 1385 ( 0.037%)
ICMP Disc: 0 ( 0.000%)
All Discard: 1385 ( 0.037%)
Other: 57876 ( 1.555%)
Bad Chk Sum: 32135 ( 0.863%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 1494 ( 0.040%)
S5 G 2: 1654 ( 0.044%)
Total: 3722347

1.7.4 snort memory数据

在使用**mallinfo(3)**的系统上,将看到额外的统计信息。有关详细信息,请查看mallinfo的手册页
Example:

Memory usage summary:
Total non-mmapped bytes (arena): 415481856
Bytes in mapped regions (hblkhd): 409612288
Total allocated space (uordblks): 92130384
Total free space (fordblks): 323351472
Topmost releasable block (keepcost): 3200

1.7.5 Actions, Limits, Verdicts

操作(Actions)和判决(Verdict)计数显示了Snort对所分析的包所做的操作。此信息仅在IDS模式下输出(当使用-c <conf>选项运行snort时)。

  • Alerts是由规则操作确定的警报和已处理的块操作的数量。这里的block包括block、drop和reject操作。

Limits是由于现实世界对处理时间和可用内存的限制而产生的。这些指示没有发生的潜在行动:

  • 由于配置检测:最大队列事件设置,规则匹配没有被处理。缺省值是5。
  • 由于配置事件队列:max队列设置,事件无法存储在事件队列中。默认值为8。
  • 由于配置事件队列:日志设置,事件没有被警告。缺省值是3。
  • 事件limit:由于事件过滤器限制而未发出警报的事件。
  • 警告limit:事件没有被警告,因为它们已经在会话中被触发了。

Snort会在每个数据包上做判决:

  • Allow = Snort分析了数据包,但没有对其采取行动。
  • Block = Snort没有转发数据包,因为block规则;需要区别blockDrop,Drop(Snort根本看都没看),Block(看了之后根据规则不让过)
  • Replace = Snort修改过的包
  • Whitelist = 任何分析程序都允许通过的数据包
  • Blacklist = snort阻止通过的数据包
  • Ignore = Snort允许流通过此Snort实例的w/o检查的数据包。
  • Int Blklst = 被阻塞的GTP、Teredo、6in4或4in6封装的数据包。如果对给定协议设置了config tunnel_verdicts,则这些数据包将得到黑名单判决。
  • Int Whtlst = 允许GTP、Teredo、6in4或4in6封装的数据包。如果为给定协议设置了config tunnel_verdicts,这些数据包可以获得白名单裁决。

Example:

Action Stats:
Alerts: 0 ( 0.000%)
Logged: 0 ( 0.000%)
Passed: 0 ( 0.000%)
Limits:
Match: 0
Queue: 0
Log: 0
Event: 0
Alert: 0
Verdicts:
Allow: 3716022 (100.000%)
Block: 0 ( 0.000%)
Replace: 0 ( 0.000%)
Whitelist: 0 ( 0.000%)
Blacklist: 0 ( 0.000%)
Ignore: 0 ( 0.000%)

1.8 Tunneling 协议支持

Snort可以支持很多tunnelling协议解码,比如:GRE,GRE上的PPTP,MPLS,…这些默认都是开启的
如果想关掉,

./configure --disable-gre
./configure --disable--mpls

1.8.1 多个封装

Snort不会解码多个封装。 诸如:
Eth IPv4 GRE IPv4 GRE IPv4 TCP Payload or Eth IPv4 IPv6 IPv4 TCP Payload
这种不会被处理,并将返回一个告警

1.8.2 Logging

当前,仅记录数据包的封装部分
Eth IP1 GRE IP2 TCP Payload
记录成,
Eth IP2 TCP Payload

Eth IP1 IP2 TCP Payload
记录成,
Eth IP2 TCP Payload
(??不大懂)
Note:目前,在需要字对齐的架构(例如SPARC)上不支持利用GRE和PPP的PPTP解码。

1.9 Miscellaneous 杂项

1.9.1 作为后台程序运行snort

如果要将Snort作为后台程序运行,则可以将-D选项添加到前面几节中描述的任何组合。 请注意,如果您希望能够通过将SIGHUP信号发送到后台程序来重启Snort,则在启动时必须指定Snort二进制文件的完整路径,例如:

/usr/local/bin/snort -d -h 192.168.1.0/24 \
-l /var/log/snortlogs -c /usr/local/etc/snort.conf -s -D

(出于安全考虑,不支持相对路径)

Snort PID 文件
当Snort作为后台程序运行时,该后台程序在日志目录中创建一个PID文件。 在Snort 2.6中,-pid-path命令行选项使Snort将PID文件写入指定的目录中。
此外,即使未在后台程序模式下运行,--create-pidfile选项也可用于强制创建PID文件
PID文件将被锁定,以便其他snort进程无法启动。 使用--nolock-pidfile选项将不锁定 PID文件。
如果您不希望在PID文件中包含接口名称,请使用--no-interface-pidfile选项。

1.9.2 在规则存根创建模式下运行

如果需要将共享库规则存根转储到目录中,则必须使用–dump-dynamic-rules命令行选项。 这些规则存根文件与共享对象规则一起使用。 (路径可以是相对的或绝对的)。

/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules=/tmp

也可以使用配置选项dump-dynamic-rules-pathsnort.conf中配置此路径,如下所示:

config dump-dynamic-rules-path: /tmp/sorules

命令行配置的路径优先于使用dump-dynamic-rules-path配置的路径。

/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules
snort.conf:
config dump-dynamic-rules-path: /tmp/sorules

在上述情况下,转储路径设置为/tmp/sorules

1.9.3 混淆IP地址打印输出

如果需要将数据包日志发布到公共邮件列表,则可能需要使用-O选项。 此选项在数据包打印输出中混淆了您的IP地址。 如果您不希望邮件列表中的人知道所涉及的IP地址,这将非常方便。 您也可以将-O选项与-h选项组合使用,仅模糊家庭网络上主机的IP地址。 如果您不在乎谁看到攻击主机的地址,这将很有用。 例如,您可以使用以下命令从日志文件中读取数据包并将其转储到屏幕,仅混淆来自192.168.1.0/24 C类网络的地址:

./snort -d -v -r snort.log -O -h 192.168.1.0/24

1.9.4 指定多实例标识符

在Snort v2.4中,添加了-G命令行选项,该选项指定事件日志的实例标识符。 在不同的CPU上或在同一CPU但接口不同的情况下运行多个snort实例时,可以使用此选项。 每个Snort实例将使用指定的值来生成唯一的事件ID。 用户可以指定十进制值**(-G 1)或十六进制值,后跟0x(-G 0x11)**。 长选项--logid也支持此功能。

1.9.5 Snort 模式

Snort可以在三种不同的模式下运行,即tap(passive),内联和内联测试。 Snort策略也可以在这三种模式下配置。
模式的解释

  • Inline
    Snort充当IPS允许触发丢弃规则。 可以使用命令行参数-Q将Snort配置为以内联模式运行,配置snort config选项policy_mode 如下:
snort -Q
config policy_mode:inline
  • Passive
    当Snort处于Passive模式时,它充当IDS。Drop未加载的规则(没有–treat-drop-as-alert)。 配置为Passive模式:
config policy_mode:tap
  • Inline-Test
    Inline-Test模式模拟snort的内联模式,允许评估内联行为而不影响流量。 Drop规则将被加载,并作为Wdrop(Would Drop)警报触发。 可以使用命令行选项**(–enable-inline-test)**或使用snort config选项将Snort配置为以内联测试模式运行,如下所示:
snort --enable-inline-test
config policy_mode:inline_test

(注意:–enable-inline-test不能和-Q连着用)

Table:不同模式下规则选项的行为
具有规则动作的不同模式的行为

1.10 控制套接字

可以将Snort配置为提供Unix套接字,该套接字可用于向正在运行的进程发出命令。 您必须使用--enable-control-socket选项构建snort。 控制套接字功能仅在Linux上受支持。
可以使用命令行参数--cs-dir <path>和snort config选项cs_dir将Snort配置为使用控制套接字,如下所示:

snort --cs-dir <path>
config cs_dir:<path>

<path>指定用来创建套接字的目录,
使用--enable-control-socket选项配置时,将在同一bin目录中创建并安装命令snort控件,并将其与snort一起安装。

1.11 配置信号值

在某些系统上,snort使用的信号可能会被其他功能使用。 为避免冲突,对于非Windows系统,用户可以通过./configure选项更改默认信号值

- SIGNAL_SNORT_RELOAD
- SIGNAL_SNORT_DUMP_STATS
- SIGNAL_SNORT_ROTATE_STATS
- SIGNAL_SNORT_READ_ATTR_TBL

语法:

./configure SIGNAL_SNORT_RELOAD=<value/name> SIGNAL_SNORT_DUMP_STATS=<value/name>\
SIGNAL_SNORT_READ_ATTR_TBL=<value/name> SIGNAL_SNORT_ROTATE_STATS=<value/name>

您可以将这些信号设置为系统中用户定义的值或已知的信号名称。 以下示例将轮换状态信号更改为31并将重载属性表更改为信号SIGUSR2

./configure SIGNAL_SNORT_ROTATE_STATS=31 SIGNAL_SNORT_READ_ATTR_TBL=SIGUSR2

如果多次分配同一信号,则在snort初始化期间将记录一条警告。 如果无法安装信号处理程序,则会记录一条警告,并且必须予以修复,否则该功能将丢失。

Snort中使用的信号:

1.12 更多信息

第2章包含有关配置文件中可用的许多配置选项的大量信息。 Snort手册页和snort -? 或snort --help包含可帮助您使Snort在几种不同模式下运行的信息。

Snort入门(二)相关推荐

  1. SQL基础使用入门(二): DML语句和DCL语句

    SQL语句第二个类别--DML 语句 DML是数据操作语言的缩写,主要用来对数据表中数据记录实例对象进行操作,包括插入.删除.查找以及修改四大操作,这也是开发人员使用中最为频繁的操作. 1.插入记录 ...

  2. 文本分类入门(二)文本分类的方法

    文本分类入门(二)文本分类的方法 文本分类问题与其它分类问题没有本质上的区别,其方法可以归结为根据待分类数据的某些特征来进行匹配,当然完全的匹配是不太可能的,因此必须(根据某种评价标准)选择最优的匹配 ...

  3. 转 Python爬虫入门二之爬虫基础了解

    静觅 » Python爬虫入门二之爬虫基础了解 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以 ...

  4. java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...

    java入门(二) 标识符 数据类型 类型转换 变量.常量.作用域 本次笔记引用B站:狂神说,虽然早就会了,现在回头来敲下基础,加深印象 1.标识符: java所有的组成部分都需要名字.类名丶变量名丶 ...

  5. MySQL入门 (二) : SELECT 基础查询

    1 查询资料前的基本概念 1.1 表格.纪录与栏位 表格是资料库储存资料的基本元件,它是由一些栏位组合而成的,储存在表格中的每一笔纪录就拥有这些栏位的资料. 以储存城市资料的表格「city」来说,设计 ...

  6. 微信小程序入门二:底部导航tabBar

    小程序底部导航栏组件tabBar,可以参考下官方的API:tabBar 先看代码 //app.json {"pages":["pages/index/index" ...

  7. conan入门(二):conan 服务配置-密码管理及策略

    conan 服务配置 密码管理及策略配置 第一次以管理员身份(admin)使用默认密码(password)WEB登录入JFrog Artifactory后台时,系统就提示要求我修改密码,因为现有密码太 ...

  8. CSS入门二、美化页面元素

    零.文章目录 CSS入门二.美化页面元素 1.字体属性 CSS Fonts (字体)属性用于定义字体系列.大小.粗细.和文字样式(如斜体) (1)字体系列font-family font-family ...

  9. Pascal游戏开发入门(二):渲染图片

    Pascal游戏开发入门(二):渲染图片 渲染静态图片 新增一个Texture,然后Render出来 创建Texture,并获取尺寸 procedure TGame.Init(title: strin ...

  10. OpenGL入门二——变换

    OpenGL入门二--变换 一.预备知识 二.实现 三.控制 四.预览与源码 一.预备知识 齐次坐标:https://blog.csdn.net/zhanxi1992/article/details/ ...

最新文章

  1. 前两天去A公司面试,面试管问的题目一下子闷了。很郁闷。重新答题。在这里分享一下...
  2. CB:南土所梁玉婷组-细菌群落的高稳定性和代谢能力促进了土壤中易分解碳的快速减少...
  3. php排版word文档试卷,word选择题选项排版
  4. slope one 推荐算法python 代码_java和python实现一个加权SlopeOne推荐算法
  5. 数据中心供配电技术巡展南京站成功举办
  6. python爬取mysql_Python如何爬取51cto数据并存入MySQL
  7. linux的各种版本,各种版本Linux系统下载
  8. 更新整理本人所有博文中提供的代码与工具(C++,2013.11)
  9. Android日志[基础篇]二 Android Studio修改LogCat日志的颜色
  10. (dijkstra算法+多权值)最短路径问题
  11. Airbnb搜索:Embedding表示学习
  12. 薪资被倒挂?是怒刷 LeetCode,还是另寻他路?
  13. 程序员如何更好地获取用户信息?
  14. 全国计算机等级考试题photoshop,全国计算机等级考试之一级Photoshop试题
  15. 2022京东年货节红包什么时候开始
  16. 安然数据集分析处理_用自然语言处理分析安然会计丑闻
  17. Android 拦截音量键并屏蔽系统的音量调节
  18. WORD中的项目符号实例详解(多图)
  19. 东莞比较好的java培训学校,先收藏了
  20. C语言基础课第五次作业

热门文章

  1. 对号入座:你的脸型适合哪种发型
  2. json.dumps 中的 ensure_ascii 参数
  3. 好无聊啊~ 来试试用Python采集下载漫画【附原码哟~】
  4. 古代文人诗词化用——检索两字符串的重复子串
  5. Android 中实现上下文菜单(Context menu)详解
  6. Java解析wav文件基本格式信息
  7. CF464D World of Darkraft - 2
  8. 注册icoke帐户换积分免费获得QQ3D秀(转)
  9. 基于52单片机的超声波测距模块(hc-sr04超声波测距模块+1602液晶显示器)
  10. 2011清华北大考博经验(经济和计量)【zz】