1.3 抓包模式
在上节中描述了很多非常酷的命令,但是如果你想把数据包保存在磁盘中,你需要提供一个日志目录,Snort就会自动进入抓包模式:
./snort -dev -l ./log
当然了,你需要在当前目录下创建一个log目录,否则,Snort会退出运行状态。运行在此模式下,Snort会把收到的所有数据包,叠加记录在相应的目录中。
如果你简单地通过-l参数来启动Snort,你就会发现它用来记录数据包的目录命名时,有时候使用远程终端的IP地址,有时候使用本地主机IP地址。为了记录与本地相关的数据,你需要清除地告诉她本地网段。
./snort -dev -l ./log -h 192.168.1.0/24
这条命令告诉Snort,你想要同时记录链路层、TCP/IP头部和应用层数据,并写入log目录下,并且你只想记录一个C类网段192.168.1.0的数据包。这时,所有进入Snort中的数据包都会被记录,同时按远程IP地址建目录来记录相应的数据包。
*注*:如果一个流中源目的地址都在你指定的网络中,则它会以两个IP较大的那一个地址来命名,
如果两个IP相等,则按源IP地址来建立目录。
如果你运行在高速网络环境中,想记录数据包以便将来分析使用,你应该使用二进制把数据包保存成一个tcpdump格式的文件:
./snort -l ./log -b
注意,在这里我们不需要再输一个本地网络了,因为二级模式下,所有数据包都会被记录在一个文件中。同时你也不需要再使用 -d 或 -e选项了,因为在二进制模式下,所有数据包都会被记录,而不仅仅是包的一部分。你只要使用选项-l告诉Snort要记录的目录;-b告诉Snort不要使用模式字符模式来记录数据包。 一旦数据包被保存成二进制文件,你就可以使用任何支持tcpdump格式的嗅探工具来读取这个文件了 (比如:tcpdump、Ethereal)。Snort也可以通过-r选项来回放一个数据包,回放过程中,可以使用Snort的任意模式。例如:如果你想通过嗅探模式回放一个数据包,你就可以运行如下命令:
./snort -dv -r packet.log
在抓包模式和入侵检测模式下,你可以对输入的数文件做更多操作。比如:你可以通过命令行设置一个BPF过滤器来只显示ICMP数据包:
./snort -dvr packet.log icmp
相了解更多关于BPF过滤器的知识,你可以阅读Snort和tcpdump的手册。