实验环境:
主机win10 ip地址:192.168.121.1
虚拟机使用vm ubuntu20.04 ip地址:192.168.121.128
实验目标:
从主机 给虚拟机 发送ping 命令 虚拟机中Suricata接收到ping后发出告警信息。
正文
在前面 编译好Suricata后(只需要make)在/home/daxian/Desktop/zs/suricata-6.0.8/src下多出了.libs/suricata ,如下图:
首先编写一条规则:
放到/home/daxian/Desktop/zs/rules/test.rules中
alert icmp any any -> 192.168.121.128 any (msg:"警告:检测到来自192.168.121.128的IP消息 这是IPonly"; sid:3;)
关于Suricata 规则(signatures)含义网上的含义很多,不多介绍。
这条规则的意思是: 收到 从 任何ip 任何端口 ->192.168.121.128(虚拟机的ip )的任何端口的 icmp消息时候,发出警告(alert),警告的内容是:警告:检测到来自192.168.121.128的IP消息 这是IPonly,这个规则的编号是(sid):3
然后在可执行文件的目录下运行命令:
sudo ./suricata -c /home/daxian/Desktop/zs/suricata-6.0.8/suricata.yaml -i ens33 -vvv -S /home/daxian/Desktop/zs/rules/test.rules -l /home/daxian/Desktop/zs/suricata-log-dir -k none
- 以sudo 运行suricata,
- 指定配置yaml文件为(-c):/home/daxian/Desktop/zs/suricata-6.0.8/suricata.yaml
- 指定监听的网卡端口为(-i):ens33 (就是ifconfig中前面那个标识符,如下图)
- 指定日志等级-vvv: 每多一个v就代表上升一个等级
- 指定采用的规则文件(-S):/home/daxian/Desktop/zs/rules/test.rules(注意:小写s是附加规则,-S是指定唯一的规则)
- 指定输出日志目录(-l):/home/daxian/Desktop/zs/suricata-log-dir (这个目录要提前创建好)
- 指定不启用校验码检查(-k): 因为有的http流量保存成pcap文件后重新读出会发现校验码错误,从而导致suricata检查不出来http,。。。不懂没关系加上就好 不影响正常的功能。
针对上面的规则不理解建议百度或者看文档:5. Command Line Options — Suricata 6.0.8 documentation
这里我不使用默认的配置(比如默认规则文件的位置 默认日志位置,是为了避免有些文件夹安装的位置会涉及到管理员权限 操作起来不方便 也不适合自己管理,手动指定省心,虽然每次敲命令有点麻烦)
运行命令后的结果如下图:
有点警告不影响
。。。。。
说明运行成功。
同时发现指定的日志目录下多了几个文件:
使用sudo tail -f eve.json|jq 'select(.event_type=="alert")' 命令查看文件,没有jq工具的话sudo apt get install 就好
接着主机发送ping 命令给虚拟机 (当然你要保证原本就能ping通)
你就发现Suricata 发送了告警信息: