snort规则
一、Snort规则分为两个部分
二、规则头的基本格式
动作:
动作描述一个数据包的“谁,在何处,什么”的问题,并指明规则被激发后,在事件中应当做什么。在编写规则时,你可以从下面的关键字中选择:
·alert –用选择的警告方法生成一个警告,然后记录这个数据包。
·log -记录这个数据包。
·pass – 忽略此数据包。
协议:
规则的下一部分是协议。一些比较流行的协议包括TCP、UDP、ICMP等,不过Snort支持许多其它的协议,并继续增加新的协议。
源IP
紧跟着协议的部分是IP地址。它定义了数据包来自何处。你可以用“any”这个关键字来定义所有的IP地址。你甚至可以编写一个能够匹配除你指定的IP地址之外任何地址的规则。这是通过使用“!”这个否定操作符实现的。
源端口
它说的是数据包来自哪个端口。端口号也可以使用“any”关键字。你还可以通过使用“:”定义一个范围内的端口。例如,1:1000定义了从1到1000范围内的所有端口。
方向操作符:
方向操作符“->”用于定义规则所适用的通信方向。换句话说,即指明通信进入或出自你计算机的什么地方。
目标IP
下一部分是目标地址。它定义了数据包要到何方。与源地址类似,你也可以使用“any”关键字或定义一个不会引起规则被激发的地址。
目标端口
紧随目标IP地址的部分是目标端口号,即数据包设法连接的端口号。这儿的选项与源端口相同。
三、规则选项的基本格式
规则选项可以分为四类
General:
msg、reference,gid,sid rev、classtype、priority、metadata;
Payload:
content,protected_content、byte_[test/jump]、isdata Preprocessor,nocase、rawbytes、depth、
offset、distance、within,http_[cookie/header/method/uri];
non-payload:
fragoffset,ttl,tos,id,ipopts,fragbits,dsize,flags,flowbits,seq,ack,windows,
itype,icode,icmpid,icmp-seq,rpc,ip_proto,sameip,stream_reassemable,stream_size。
post-detection:
logto,session,resp,react,tag,activates与activated_by,count,replace,detection_filter。