snort模式
snort包含三种模式:嗅探器、数据包记录器以及网络入侵检测系统。
Snort作为网络入侵检测系统
1、利用snort命令启动入侵检测系统:
sudo snort -d -h 192.168.202.134/24 -l ./log -c snort.conf -i en33
解释如下:
(1)-d:显示应用层数据
(2)-h:指定snort.conf中HOME_NET的值,如下所示:
此条命令指明HOME_NET=192.168.202.134/24
(此地址需要更换为自己的虚拟机地址)。
(3)-l:指定日志存储目录。指明为snort根目录下的log文件夹中。
(4)-c:指定snort配置文件所在路径。所以此条命令需要在snort.conf所在目录下运行。
(5)-i:指明网卡为ens33
运行结果如下:
出现Commencing packet processing
证明成功开启snort。
2、编写snort规则
snort规则分为两个部分分别为规则头和规则体,其中规则偷包含规则的动作、字所使用的协议、源和标的IP地址、网络源码以及端口号。规则体在规则头的后方括号内,规则头和规则体一般不分行。
简单规则如下:
alert tcp any any -> 192.168.202.134 any (msg:"test that snort is successful! ";sid:1000000900)
告警从任何地址下的任何端口发送到192.168.202.134
任何端口的TCP连接,并打印"test that snort is successful!
"。
此时利用telent进行TCP连接,在物理机(测试采用Windows10)输入:
telnet 192.168.202.143 9999
物理机会显示正在连接192.168.202.143...
此时可以关闭物理机的连接,进入虚拟机log文件夹查看alert文件如下:
可以看到其打印了我们刚才设置的语句:test that snort is successful!
,并且表明其源地址以及源端口号,除此之外还打印了一些应用层数据信息(是由于我们之前启动snort的时候输入了-d,就会在文件中存储应用层数据信息。)。
3、高级snort规则编写
如果遇到某一个数据频繁使用时,可以通过定义变量的方式并利用$调用变量。
例如:
var NET_IP 192.168.202.143
alert tcp any any -> $NET_IP any (msg:"test";sid=1000000901)