1.简介
本文介绍suricata支持的IP、TCP、ICMP三种协议的数据包头关键字,http协议由于比较常用,关键字也比较多所以后面单独介绍,而其他应用层协议暂无特定的关键字。
2.IP协议关键字
首先需要对IP协议有一定的了解,网际协议-维基百科,RFC 791,IPv4-维基百科。
IPv4协议的格式如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Example Internet Datagram Header
2.1 ttl
ttl关键字用于检测IP数据包头部的TTL(time to live)字段,表示这个数据包能在网络中的最大生存时间,每经过一个路由器便会减1,当这个数值变为0时数据包便会被丢弃,ttl字段是防止数据包在不可达的情况下一直占用网络资源。ttl关键字的格式为:
ttl:number;
2.2 ipopts
ipopts关键字检查的是IP数据包中可选字段中设置的选项,格式如下,每条规则只