网络通信 频道

全面使用Snort

“DIY入侵检测”之二:
     在上期的文章里,我们介绍了Snort的安装和基本配置。本期我们着重介绍Snort的使用方法。下期我们将介绍Snort的工具和规则制定。
与Snort 的配置一样,Snort的使用也并不太容易。Snort自称有三种工作模式:一是嗅探器模式(Sniffer Mode),其作用是从网络中抓取数据包;二是分组日志模式(packet logger Mode),其作用是将数据包记录到硬盘日志中;三是网络入侵检测模式(network intrusion detection system Mode),其作用是分析网络中传输的数据并与入侵规则库相匹配来发现入侵行为。
在具体介绍这些工作模式如何工作前,有必要先介绍一下关于Snort的命令,因为无论哪个工作模式都是用命令完成的,Snort存在比较多的命令选项和参数,用户要熟练使用Snort就必须掌握这些选项。

Snort命令介绍

虽然目前网上已经出现了Windows平台下的基于snort.exe程序的图形界面控制程序idscenter.exe,其界面的操作行虽然好了很多,但还是不能避免的需要使用命令,所以我们还是得来看看Snort的命令及其参数作用的介绍。
Snort的命令行的通用形式为:
snort -[options]
各个参数功能如下:
-A:选择设置警报的模式为full、fast、 unsock和none。full模式是默认进报模式,它记录标准的alert模式到alert文件中;fast模式只记录时间戳、消息、IP地址、端口到文件中;unsock是发送到Unix socket;none模式是关闭报警。
-a:是显示ARP包。
-b:以Tcpdump格式记录LOG的信息包,所有信息包都被记录为二进制形式,用这个选项记录速度相对较快,因为它不需要把信息转化为文本的时间。
-c :使用配置文件,这个规则文件是告诉系统什么样的信息要LOG,或者要报警,或者通过。
-C:只用ASCII码来显示数据报文负载,不用十六进制。
-d:显示应用层数据。
-D:使snort以守护进程的形式运行,默认情况下警报将被发送到/var/log/snort.alert文件中去。
-e:显示并记录第二层信息包头的数据。
-F:从文件中读BPF过滤器(filters)。
-g :snort初始化后使用用户组标志(group ID),这种转换使得Snort放弃了在初始化必须使用root用户权限从而更安全。
-h :设置内网地址到,使用这个选项snort会用箭头的方式表示数据进出的方向。
-i :在网络接口上监听
-I :添加第一个网络接口名字到警报输出
-l :把日志信息记录到目录中去。
-L :设置二进制输出的文件名为
-m :设置所有snort的输出文件的访问掩码为
-M :发送WinPopup信息到包含文件中存在的工作站列表中去,这选项需要Samba的支持。
-n :是指定在处理个数据包后退出。
-N:关闭日志记录,但ALERT功能仍旧正常工作。
-o:改变规则应用到数据包上的顺序,正常情况下采用Alert->Pass->Log order,而采用此选项的顺序是Pass->Alert->Log order,其中Pass是那些允许通过的规则,ALERT是不允许通过的规则,LOG指日志记录。
-O:使用ASCII码输出模式时本地网IP地址被代替成非本地网IP 地址。
-p:关闭混杂(Promiscuous)嗅探方式,一般用来更安全的调试网络。
-P:设置snort的抓包截断长度。
-r :读取tcpdump格式的文件
-s:把日志警报记录到syslog文件,在LINUX中警告信息会记录在/var/log/secure,在其他平台上将出现在/var/log/message中。
-S :设置变量n=v的值,用来在命令行中定义Snort rules文件中的变量,如你要在Snort rules文件中定义变量HOME_NET,你可以在命令行中给它预定义值。
-t:初始化后改变snort的根目录到目录
-T:进入自检模式,snort将检查所有的命令行和规则文件是否正确。
-u:初始化后改变snort的用户ID到
-v:显示TCP/IP数据报头信息。
-V:显示Snort版本并退出。
-y:在记录的数据包信息的时间戳上加上年份。
-?:显示Snort简要的使用说明并退出。

除了少数几个不常用的命令,大部分的命令都在这里了,掌握这些命令后,用户可以根据自己的需要来选择使用不同的工作模式,下面我们来看看这三种工作模式是如何具体工作的。

Snort的工作模式

嗅探器模式
Snort使用Libpcap包捕获库,即TCPDUMP使用的库。在这种模式下,Snort使用网络接口的混杂模式读取并解析共享信道中的网络分组。命令:
./snort -v
说明: 显示TCP/IP等的网络数据包头信息在屏幕上。举例如下:
./snort -vd
说明:显示较详细的包括应用层的数据传输信息。
./snort -vde
说明:显示更详细的包括数据链路层的数据信息。

分组日志模式
上面介绍的嗅探器模式的几个命令都只把信息显示在屏幕上,而如果你要把这些数据信息记录到硬盘上并指定到一个目录中,那就需要使用Packet Logger模式。命令:
./snort -vde -l ./log
说明:把snort 抓到的数据链路层、TCPIP报头、应用层的所有信息存入当前文件夹的“log”目录中,如果“log”目录存在的话,这里的“log”目录用户可以根据自己的需要的位置而更换。
./snort -vde -l ./log -h 192.168.1.0/24
说明:记录192.168.1.0/24这个C类网络的所有进站数据包信息到“log”目录中去,其“log”目录中的了目录名按计算机的IP地址为名以相互区别。
./snort -l ./log -b
说明:记录snort 抓到的数据包并以TCPDUMP二进制的格式存放到“log”目录中去,而snort一般默认的日志形式是ASCII文本格式。ASCII文本格式便于阅读,二进制的格式转化为ASCII文本格式无疑会加重工作量,所以在高速的网络中,由于数据流量太大,应该采用二进制的格式。
./snort -dvr packet.log
说明:此命令不再是存储日志了,而是读取“packet.log”日志中的信息到屏幕上。

网络入侵检测模式(NIDS)
网络入侵检测模式是用户最常用到的模式,是用户需要掌握的重点。这种模式其实混合了嗅探器模式和分组日志模式,并且需要载入规则库才能工作,命令:
./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有多种警报的输出选项,这里再具体讲讲如何使用。命令:
./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”模式。
./snort -s -b -l ./log -h 192.168.1.0/24 -c snort.conf
说明:以二进制格式将警报发送给syslog,其余的与上面的命令一样。要注意的是警报的输出模式虽然有六种,但用参数-A设置的只有4种,其余的syslog用参数s,smb模式使用参数M。

追踪ping命令不同的信息
 02/26-20:11:03.884925  192.168.0.2→    192.168.0.1  ICMP  TTL:64 TOS:0x0  ID:4068
snort -v ID:20507   Seq:0  ECHO
 02/26-20:11:03.885081 192.168.0.1→    192.168.0.2  ICMP  TTL:128  TOS:0x0 ID:15941
 ID:20507   Seq:0  ECHO REPLY

文章转载地址:http://www.365master.com/kt_article_show.php?article_id=490&categ_code=10041003

0
相关文章