snort 入侵检测

  • Post author:
  • Post category:其他


掌握Snort命令后,用户可以根据自己的需要来选择使用不同的工作模式。Snort拥有3种工作模式,分别为:嗅探器模式、分组日志模式与网络入侵检测模式。

1. 嗅探器模式

Snort使用Libpcap包捕获库,即TCP DUMP使用的库。在这种模式下,Snort使用网络接口的混杂模式读取并解析共享信道中的网络分组。

该模式的命令如下所示:

1. ./snort -v

说明: 显示TCP/IP等的网络数据包头信息在屏幕上。举例如下:

1. ./snort -vd

说明:显示较详细的包括应用层的数据传输信息。

1. ./snort -vde

说明:显示更详细的包括数据链路层的数据信息。

2. 分组日志模式

上面介绍的嗅探器模式的几个命令都只把信息显示在屏幕上,而如果要把这些数据信息记录到硬盘上并指定到一个目录中,那就需要使用Packet Logger模式。

该模式的命令如下所示:

1. ./snort -vde -l ./log

说明:把snort 抓到的数据链路层、TCP/IP报头、应用层的所有信息存入当前文件夹的”log”目录中(如果”log”目录存在的话),这里的”log”目录用户可以根据自己的需要的位置而更换。

1. ./snort -vde -l ./log -h 192.168.1.0/24

说明:记录192.168.1.0/24这个C类网络的所有进站数据包信息到”log”目录中去,其”log”目录中的子目录名按计算机的IP地址为名以相互区别。

1. ./snort -l ./log -b

说明:记录snort 抓到的数据包并以TCPDUMP二进制的格式存放到”log”目录中去,而snort一般默认的日志形式是ASCII文本格式。ASCII文本格式便于阅 读,二进制的格式转化为ASCII文本格式无疑会加重工作量,所以在高速的网络中,由于数据流量太大,应该采用二进制的格式。

1. ./snort -dvr packet.log

说明:此命令不再是存储日志了,而是读取”packet.log”日志中的信息到屏幕上。

3. 网络入侵检测模式(NIDS)

网络入侵检测模式是用户最常用到的模式,是用户需要掌握的重点。这种模式其实混合了嗅探器模式和分组日志模式,并且需要载入规则库才能工作,

该模式的命令如下所示:

1. ./snort -vde -l ./log -h 192.168.1.0/24 -c snort.conf

说明:载入”snort.conf”配置文件,并将192.168.1.0/24此网络的报警信息记录到./log中去。这里 的”snort.conf”文件可以换成用户自己的配置文件,载入snort.conf配置文件后snort将会应用设置在snort.conf中的规则 去判断每一个数据包以及性质。如果没有用参数-l指定日志存放目录,系统默认将报警信息放入/var/log/snort目录下。还有如果用户没有记录链 路层数据的需要或要保持Snort的快速运行,可以把-v和-e关掉。

关于网络入侵检测模式还有一个地方要注意的是它的警报的输出选项,在前面我们已经介绍了snort有多种警报的输出选项,这里再具体讲讲如何使用。命令:

1. ./snort -A fast -l ./log -h 192.168.1.0/24 -c snort.conf

说明:载入”snort.conf”配置文件,启用fast警报模式,以默认ASCII格式将192.168.1.0/24此网络的报警信息记录到./log中去。这里的fast可以换成full、none等,但在大规模高速网络中最好用fast模式。

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

说明:以二进制格式将警报发送给syslog,其余的与上面的命令一样。需要注意的是,警报的输出模式虽然有6种,但用参数-A设置的只有4种,其余的syslog用参数s,smb模式使用参数M。

一.snort数据包嗅探

1.启动snort

(3)

snort命令 snort -i eth0 -dev icmp and src 同组主机IP -l /var/log/snort

根据snort捕获信息填写表22-1-1。

数据帧源MAC 同组主机MAC

数据帧目的MAC 本机MAC

IP上层协议类型 ICMP

数据包源IP 同组主机IP

数据包目的IP 本机IP

数据包总长度 0x62

IP报文头长度 20

ICMP报文头长度 8

ICMP负载长度 56

ICMP类型/代码 8/0

表22-1-1

二.snort数据包记录

(1)

snort命令 snort -i eth0 -b tcp and src 同组主机IP and dst port 23

(3)

snort命令 snort -r /var/log/snort/snort.log.XXXX

三.简单报警规则

(1)

snort命令 alert tcp any any -> 本机IP 80 (msg: “XXX”;) 。

根据规则完成表22-1-2的填写。

snort规则动作 报警

规则头协议 tcp

规则头源信息 任意IP 任意端口

规则头目的信息 当前主机IP 80

方向操作 当前主机为接收端

报警消息 XXX

表22-1-2

(2)

添加包含new.rules规则集文件语句 include $RULE_PATH/new.rules(规则集文件路径) 。

(3)

启动snort的命令 snort -c snort.conf 。

根据报警日志完成表22-1-3的填写。

报警名称 XXX

数据包源IP 同组主机IP

数据包目的IP 本机IP

数据包源端口号 随机

数据包目的端口号 80

表22-1-3

四.字符串匹配

(2)

snort规则 activate tcp any 21 -> any any (activates: 81; content: “vsFTPd”; msg: “FTP User Login”; )

dynamic tcp any any -> any 21 (activated_by: 81; count: 10; msg: “User Name and PASSWORD”; )

(4)

启动snort的命令 snort -d -c snort.conf 。

五.端口扫描攻击检测

(1)

预处理描述:

preprocessor portscan: 172.16.0.0/24 4 3 /var/log/snort/portscan.log

(2)

portscan.log日志记录格式描述: 日期 时间 攻击源IP:源端口 -> 目标主机IP:扫描端口 SYN ******S* 。

默认情况下,nmap在进行目标主机TCP端口扫描时,扫描顺序: 无序 。

六.IP分片重组检测

2.主机A监听检测

(2)

snort规则 alert icmp any any -> any any (content: “|0D 0E 0F 10 11 12|”; msg: “Fragment Test”; )

(3)

预处理描述: preprocessor frag2: timeout 60, memcap 4194304



版权声明:本文为yanheng0130原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。