Snort入门(一)

Snort用户手册

1 OverView

Snort有三种模式

  • Sniffer mode (从网络上读取数据包并显示)
  • Packet Logger mode (将数据包记录到磁盘)
  • NIDS mode(对网络流量进行检测和分析,最复杂且可配置的模式

简单介绍一下三种模式:

1.2 Sniffer Mode

如果只想将TCP / IP数据包标题打印到屏幕上(即嗅探器模式),

snort -v

在这里插入图片描述
在这里插入图片描述
如果要查看传输中的应用程序数据(现在真看不出来有啥区别),

snort -vd

在这里插入图片描述
如果要显示更具描述性的显示,以显示数据链接层标题

snort -vde
or
snort -d -v -e

1.3 Packet Logger Mode

如果想把数据记录到disk,那需要建一个存放日志的地方,在/etc/snort/新建一个目录mkdir log
进入数据包日志模式:
在这里插入图片描述
为了相对于家庭网络进行日志记录,需要告诉Snort哪个网络是家庭网络(由于主机ping不通虚拟机,搞了老半天也设置不好,于是再装一个虚拟机来玩,正在装Kali…一上午later…晕终于好了,干饭时间到了886

用Kali去ping了snort主机之后,查看log目录,里面会生成文件,里面记录了相对192.168.1.0的C类网络数据包,目录名称是基于远程主机地址(非192.168.1)生成的(如果两个同时在本地网络上,那目录名是基于两个端口中高的那个生成的):

snort -dev -l ./log -h 192.168.1.0/24

在这里插入图片描述
如果使用的是高速网络,或者想将数据包记录为更紧凑的形式以供以后分析,则应考虑以二进制模式记录。 二进制模式以tcpdump格式将数据包记录到日志目录中的单个二进制文件中;
二进制模式不需要指定输出目录结构,或者其他参数,因为它会自动记录所有数据包,

./snort -l ./log -b

以后可以用任何支持tcpdump二进制格式的嗅探器去读取该日志,snort当然也支持可以在任何模式下赌气二进制日志文件到屏幕上,
./snort -dv -r packet.log
如果只想看ICMP数据包,也可以指定,
./snort -dvr packet.log icmp

1.4 NIDS Mode

要启用网络入侵检测系统(NIDS)模式,不去记录有线发送的每个数据包,

./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf

其中snort.conf是snort配置文件的名称。 这会将snort.conf文件中配置的规则应用于每个数据包,以决定是否应基于文件中的规则类型执行操作。输出目录默认为/var/log/snort
如果要长时间使用snort,为了提高速度,最好省略-v -e

./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf

这样就会以最基本的形式去运行了。

1.4.1 NIDS Mode的输出选项

7种警报模式:full, fast, socket, syslog, console, cmg, and none,使用-A + option就可以使用了:
在这里插入图片描述

使用以下命令行登录到默认(解码的ASCII)功能并将警报发送(-s)到syslog:

./snort -c snort.conf -l ./log -h 192.168.1.0/24 -s

使用以下命令行登录到/var/log/snort中的默认工具,并将警报发送到快速警报文件:

./snort -c snort.conf -A fast -h 192.168.1.0/24
1.4.2 理解标准警报输出

Snort产生警报的时候大概是这个样子的:

[**] [116:56:1] (snort_decoder): T/TCP Detected [**]

第一个数字是生成器ID,它告诉用户Snort的哪个组件生成了此警报。 有关GID的列表,请阅读Snort源中的etc / generators。 在这种情况下,我们知道此事件来自Snort的“解码”(116)组件。
第二个数字是Snort ID(有时称为签名ID)。有关预处理器SID的列表,请参见etc/gen-msg.map。 使用sid选项将基于规则的SID直接写入规则。 在这种情况下,56表示T/TCP事件
第三个数字是修订ID。 此数字主要在编写签名时使用,因为规则的每个表示形式都应使用rev选项将该数字递增。

1.4.3 更高性能配置

使用barnyard2可以让snort运行更快,还可以加fast选项,这将以tcpdump格式记录数据包并产生最少的警报。 例如:

./snort -b -A fast -c snort.conf
1.4.4 改变警报顺序

Snort将其规则应用于数据包的默认方式可能不适用于所有安装。 首先应用Pass规则,然后应用Drop规则,然后应用Alert规则,最后应用Log规则。
以下为更改顺序的操作:

  • --alert-before-pass 会在pass之前先生成警报
  • --treat-drop-as-alert 把丢弃和拒绝也当做警报记录
  • --process-all-events 处理与数据包关联的每个事件,并根据规则排序采取措施

1.5 Packet acquisition 数据包获取

Snort 2.9引入了用于数据包I/O的DAQ(数据采集库)。调用Snort进行pcap回读或内联操作时,可以选择DAQ类型和模式。
”Large Receive Offload” (lro) and ”Generic Receive Offload” (gro)可能会影响snort的功能,建议关掉:

$ ethtool -K eth1 gro off
$ ethtool -K eth1 lro off
$ ethtool -k eth1 #查看开关情况

ok,都关掉了:
在这里插入图片描述

1.5.1 配置

可以在调用Snort时选择和配置DAQ,在指定的目录中搜索DAQ模块以及每个模块的打印类型,版本和属性:

./snort --daq-list[=<dir>]
./snort --daq-dir=<dir> --daq-list  #多个目录的情况
1.5.2 pcap

这个是默认的DAQ,没有任何DAQ参数的情况下运行的,上下是等效的:

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

可以使用以下命令指定pcap使用的缓冲区大小

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

(注意:pcaq DAQ不计算过滤的数据包)

1.5.3 AFPACKET

afpacket函数类似于内存映射的pcap DAQ,但不需要外部库:

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

如果要以串联模式运行afpacket,则必须将设备设置为一个或多个接口对,其中一对接口中的每个成员都由一个冒号分隔,而每个对之间则由一个双冒号分隔,如下所示:

eth0:eth1
eth0:eth1::eth2:eth3

afpacket DAQ默认分配了128MB数据包内存,你也可以修改:

--daq-var buffer_size_mb=<#MB>
1.5.4 NFQ

NFQ是处理iptables数据包的新方法和改进的方法:

./snort --daq nfq \
[--daq-var device=<dev>] \
[--daq-var proto=<proto>] \
[--daq-var queue=<qid>] \
[--daq-var queue_len=<qlen>]

可以在DAQ发行版README中找到有关iptables的说明。
(wuuuuuuu我没有NFQ的DAQ 后续再装吧,先看看)

1.5.5 IPQ

IPQ是处理iptables数据包的旧方法,它替换了使用此版本构建的2.9之前版本中的内联版本:

./configure --enable-inline / -DGIDS

(这个玩意儿也没有)

1.5.6 IPFW

IPFW适用于BSD系统,开始命令:

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

(IPFW只支持ip4的流量)

1.5.7 Dump

dump DAQ允许测试2.9 Snort中可用的各种串联模式功能,例如注入和归一化

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

默认情况下,将创建一个名为inline-out.pcap的文件,其中包含所有通过snort或由snort生成的数据包。 可以选择指定其他名称:

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

dump使用pcap daq进行数据包获取。 因此,它不计算过滤的数据包

请注意,dump DAQ串联模式不是实际的串联模式。 以其他方式获取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 statistic changes

Snort输出的Packet Wire Totals和Action Stats部分包括其他字段:

  • 过滤出的未过滤数据包计数,不交给Snort进行分析。
  • 生成并发送Snort的已注入数据包,例如 TCP重置。
  • 允许对Snort数据包进行分析,并且不对其采取任何措施。
  • Block Snort未转发的数据包,例如 由于block规则。
  • 替换 Snort修改过的数据包。
  • 白名单数据包 Snort允许通过任何分析程序的检查流。
  • 黑名单数据包 Snort阻止通过的任何流。
  • 忽略 Snort实例允许流通过/不进行检查的数据包。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值