1.snort规则
2.snort环境搭建
3.snort模式
4.snort执行参数
5.snort IDS测试
6.关于snort.conf参考:https://blog.csdn.net/jo_say/article/details/6302367
测试部分参考:https://www.cnblogs.com/lasgalen/p/4512755.html
Snort和suircata是一种网络规则检测引擎(network threat detection engine).,前者兼容后者。
规则头部:
头部从左到右分别为规则行为(drop,pass,alert,log),协议,源地址,源端口,方向,目的地址,目的端口
规则选项:
规则内容用分号分割,每一项都是一个key-value的键值对
prefilter之前的规则属于预过滤规则
content:”root”;nocase //检查内容字符串+检测内容修饰语
content:”root”;offset:5;depth:7; //指定匹配开始位置(默认0字节开始)和结束位置
content:”root”;content:”admin”;distance:1;within:7; //distance指定上一次匹配结束位置后下一次匹配开始位置距离,within限定本次匹配必须出现在上一次匹配结束后的多少个字节内。
请求字段
Keyword |
Means |
Direction |
http_uri |
客户端请求的URL内容 |
Request |
http_method |
Modifier |
Request |
http_request_line |
Sticky Buffer |
Request |
http_client_body |
Modifier |
Request |
http_header |
Modifier |
Both |
http_raw_header |
Modifier |
Both |
http_cookie |
Modifier |
Both |
http_user_agent |
Modifier |
Request |
http_host |
Modifier |
Request |
http_raw_host |
Modifier |
Request |
http_accept |
Sticky Buffer |
Request |
http_accept_lang |
Sticky Buffer |
Request |
http_accept_enc |
Sticky Buffer |
Request |
http_referer |
Sticky Buffer |
Request |
http_connection |
Sticky Buffer |
Request |
http_content_type |
Sticky Buffer |
Both |
http_content_len |
Sticky Buffer |
Both |
http_start |
Sticky Buffer |
Both |
http_protocol |
Sticky Buffer |
Both |
http_header_names |
Sticky Buffer |
Both |
响应字段
Keyword |
Sticky or Modifier |
Direction |
http_stat_msg |
Modifier |
Response |
http_stat_code |
Modifier |
Response |
http_response_line |
Sticky Buffer |
Response |
http_header |
Modifier |
Both |
http_raw_header |
Modifier |
Both |
http_cookie |
Modifier |
Both |
http_server_body |
Modifier |
Response |
file_data |
Sticky Buffer |
Response |
http_content_type |
Sticky Buffer |
Both |
http_content_len |
Sticky Buffer |
Both |
http_start |
Sticky Buffer |
Both |
http_protocol |
Sticky Buffer |
Both |
http_header_names |
Sticky Buffer |
Both |
以上用法
content:"xxxxxx";http_xxxx;
dns_query;content:"域名"
通信流量:根据TCP协议网络流量状态编写规则
三次握手:
1. 客户端向服务器的监听端口发送SYN包来发起连接
2. 此时,服务器需要向客户端回复一个SYN/ACK包
3. 一旦收到该包,客户端会回复给服务器一个ACK包 数据流规则有一些专用选项,分为三类: 1. 状态选项 2. 定向选项 3. 流量模式状态 配置格式:flow:
4. icode:匹配指定的ICMP代码值 5. ip_proto:匹配指定的IP协议,如IGMP、GRE
参考:https://www.cnblogs.com/lsdb/p/8023884.html
-它从网络中读取数据包,并在控制台(屏幕)上以连续流的形式显示它们。
-它将数据包记录到磁盘。
-对网络流量执行检测和分析。这是最复杂和可配置的模式。
短参数
Snort –i ens33 //指定网络接口
-b //用二进制文件保存数据包
-c
-d //显示包的应用层信息
-D //后台运行->默认日志写在/var/log/snort/alert
-e //显示数据链路层信息
-I
-J
-K
-N //关闭保存日志包功能
-n
-o //改变规则顺序。Alert,pass等
-v //从网络上读取数据包然后显示在控制台,只显示头部信息
-vd //可以显示分组数据及标题
-vde //更详细
-V //查看version并退出
-Z
-? //help
长参数选项
--dynamic-engine-lib
指定动态监测引擎文件
--dynamic-detection-lib
指定一个动态规则库文件
--dynamic-detection-lib-dir
指定所有动态规则库路径
--dump-dynamic-rules
为所有加载的规则库创建根规则文件
--dynamic-preprocessor-lib
指定动态预处理库文件
--dynamic-preprocessor-lib-dir
指定动态预处理库路径
--dump-dynamic-preproc-genmsg
为所有加载的预处理库生成gen-msg.map文件到路径
--alert-before-pass
在pass之前处理alert, drop, sdrop, or reject. 默认是pass before alert, drop, etc.
--treat-drop-as-alert
Converts drop, and reject rules into alert rules during startup. sdrop rules are not loaded.将drop处理为alert。
--process-all-events
Process all triggered events in group order, per Rule Ordering configuration. Default stops after first group.
--pid-path
Specify the path for Snort's PID file. 为SnortPID文件指定路径。
--create-pidfile
Create PID file, even when not in Daemon mode. 创建PID文件。
--enable-inline-test
Runs snort in "inline test mode". This option cannot be used with -Q. 在线测试模式
snort -i ens33 -n 5 -dev -l ./log //输出ens33五个数据包到当前log目录下
snort -dv -r snort.log.1552668614 //把二进制文件信息打印在终端
snort -dv -r snort.log.1552668614 udp //只打印udp包
===》规则:local.rules,内容如下:
alert icmp ![192.168.126.130/32] any -> 192.168.126.130/32 any (logto:”log”; msg:”alert icmp !!!!!!”; sid:1000001)
CentOS7的ip:192.168.126.130(ens33为nat)
本机ip:172.24.178.65(vm8:192.168.126.2)
snort -i ens33 -dev -l ./log -c /etc/snort/snort.conf
结果: