符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
snort是一个强大的轻量级的网络入侵检测系统。它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort具有很好的扩展性和可移植性。本文将讲述如何开发snort规则。
安塞ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
1.基础
snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。下面是一些最基本的东西:
snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。注意:由于排版的原因本文的例子有的分为两行。
snort的每条规则都可以分成逻辑上的两个部分:规则头和规则选项。规则头包括:规则行为(rule's action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含报警信息和异常包的信息(特征码,signature),使用这些特征码来决定是否采取规则规定的行动。
这是一个例子:
alert tcp any any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"mountd access";)
表1.一条简单的snort规则
从开头到最左边的括号属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词(option keywords)。注意对于每条规则来说规则选项不是必需的,它们是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,snort才会执行其规则行为。如果许多选项组合在一起,它们之间是逻辑与的关系。让我们从规则头开始。
1.1 include
snort使用的规则文件在命令行中指定,include关键词使这个规则文件可以包含其它规则文件中的规则,非常类似与C语言中的#include。snort会从被包含的文件读出其内容,取代include关键词。
格式:
include 文件路径/文件名
注意:行尾没有分号。
1.2 varriables
在snort规则文件中可以定义变量。
格式:
var
例子:
var MY_NET 192.168.1.0/24,10.1.1.0/24] $MY_NET any (flags:S;msg:'SYNMETA packet";)
表2.变量的定义和使用
规则变量名可以使用多种方式来修改,你可以使用$操作符来定义元变量(meta-variables)。这些修改方式可以结合变量修改操作符:?和-来使用。
$var:定义元变量
$(var):以变量var的内容作为变量名
$(var:-default):以变量var的内容作为变量名,如果var没有定义就使用default作为变量名
$(var:?message):使用变量var的内容作为变量名,如果不成功就打印错误信息message并退出。
例如:
var MY_NET $(MYU_NET:-192.168.1.0/24) tcp any any - $(MY_NET:?MY_NET is undefined!) 23
表3.高级变量应用
2.规则头(Rule Headers)
2.1 Rule Action
规则头包含一些信息,这些信息包括:哪些数据包、数据包的来源、什么类型的数据包,以及对匹配的数据包如何处理。每条规则的第一项就是规则行为(rule action)。规则行为告诉snort当发现匹配的数据包时,应该如何处理。在snort中,有五种默认的处理方式:alert、log、pass、activate和dynamic。
alert:使用选定的报警方法产生报警信息,并且记录数据包
log:记录数据包
pass:忽略数据包
activate:报警,接着打开其它的dynamic规则
dynamic:保持空闲状态,直到被activete规则激活,作为一条log规则
你也可以定义自己的规则类型,把它们和一个或者几个输出插件联系在一起。然后你就可以在snort规则中使用这些规则类型了。
这个例子将建立一个类型,它将只以tcpdump格式输出日志:
ruletype suspicious
{
type log
output log_tcpdump: suspocious.log
}
下面这个例子将建立一个类型,把日志发送到syslog和MySql数据库:
ruletype redalert
{
type alert
output alert_syslog:LOG_AUTH LOG_ALERT
output database:log,user=snort dbname=snort host=localhost
}
2.2 协议
每条规则的第二项就是协议项。当前,snort能够分析的协议是:TCP、UDP和ICMP。将来,可能提供对ARP、ICRP、GRE、OSPF、RIP、IPX等协议的支持。
2.3 IP地址
规则头下面的部分就是IP地址和端口信息。关键词any可以用来定义任意的IP地址。snort不支持对主机名的解析。所以地址只能使用数字/CIDR的形式。/24表示一个C类网络;/16表示一个B类网络;而/32表示一台特定的主机地址。例如:192.168.1.0/24表示从192.168.1.1到192.168.1.255的地址。
在规则中,可以使用使用否定操作符(negation operator)对IP地址进行操作。它告诉snort除了列出的IP地址外,匹配所有的IP地址。否定操作符使用!表示。例如,使用否定操作符可以很轻松地对表1的规则进行改写,使其对从外部网络向内的数据报警。
alert tcp !192.168.1.0/24 any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"external mountd access";)
表4.使用IP地址否定操作符的规则
上面这条规则中的IP地址表示:所有IP源地址不是内部网络的地址,而目的地址是内部网络地址。
你也可以定义一个IP地址列表(IP list)。IP地址列表的格式如下:
[IP地址1/CIDR,IP地址/CIDR,....]
注意每个IP地址之间不能有空格。例如:
alert tcp ![192.168.1.0/24,10.1.1.1.0/24] any -[192.168.1.0/24,10.1.1.0/24] 111 (content:"|00 01 86 a5|";msg:"external mountd access";)
2.4 端口号
在规则中,可以有几种方式来指定端口号,包括:any、静态端口号(static port)定义、端口范围,以及使用非操作定义。any表示任意合法的端口号;静态端口号表示单个的端口号,例如:111(portmapper)、23(telnet)、80(http)等。使用范围操作符:可以指定端口号范围。有几种方式来使用范围操作符:达到不同的目的,例如:
log udp any any - 192.168.1.0/24 1:1024
记录来自任何端口,其目的端口号在1到1024之间的UDP数据包
log tcp any any - 192.168.1.0/24 :600
记录来自任何端口,其目的端口号小于或者等于6000的TCP数据包
log tcp any :1024 - 192.168.1.0/24 500:
记录源端口号小于等于1024,目的端口号大于等于500的TCP数据包
表5.端口范围示例
你还可以使用逻辑非操作符!对端口进行非逻辑操作(port negation)。逻辑非操作符可以用于其它的规则类型(除了any类型,道理很简单)。例如,你如果要日志除了X-window系统端口之外的所有端口,可以使用下面的规则:
log tcp any any - 192.168.1.0/24 !6000:60 10
表6.对端口进行逻辑非操作
2.5 方向操作符(direction operator)
方向操作符-表示数据包的流向。它左边是数据包的源地址和源端口,右边是目的地址和端口。此外,还有一个双向操作符,它使snort对这条规则中,两个IP地址/端口之间双向的数据传输进行记录/分析,例如telnet或者POP3对话。下面的规则表示对一个telnet对话的双向数据传输进行记录:
log !192.168.1.0/24 any 192.168.1.0/24 23
表7.使用双向操作符的snort规则
activate/dynamic规则
activate/dynamic规则对扩展了snort功能。使用activate/dynamic规则对,你能够使用一条规则激活另一条规则。当一条特定的规则启动,如果你想要snort接着对符合条件的数据包进行记录时,使用activate/dynamic规则对非常方便。除了一个必需的选项activates外,激活规则(activate rule)非常类似于报警规则(alert rule)。动态规则(dynamic rule)和日志规则(log rule)也很相似,不过它需要一个选项:activated_by。动态规则还需要另一个选项:count。当一个激活规则启动,它就打开由activate/activated_by选项之后的数字指示的动态规则,记录count个数据包。
下面是一条activate/dynamic规则对的规则:
activate tcp !$HOME_NET any - $HOME_NET 143 (flags:PA;content:"|E8C0FFFFFF|in|;activates:1;
表8.activate/dynamic规则对
这个规则使snort在检测到IMAP缓冲区溢出时发出报警,并且记录后续的50个从$HOME_NET之外,发往$HOME_NET的143号端口的数据包。如果缓冲区溢出成功,那么接下来50个发送到这个网络同一个服务端口(这个例子中是143号端口)的数据包中,会有很重要的数据,这些数据对以后的分析很有用处。
3.规则选项
规则选项构成了snort入侵检测引擎的核心,它们非常容易使用,同时又很强大和容易扩展。在每条snort规则中,选项之间使用分号进行分割。规则选项关键词和其参数之间使用冒号分割。截止到写本文为止(snort 1.7版),snort有23个规则选项关键词:
msg:在报警和日志中打印的消息
logto:把日志记录到一个用户指定的文件,而不是输出到标准的输出文件
ttl:测试IP包头的TTL域的值
tos:测试IP包头的TOS域的值
id:测试IP分组标志符(fragment ID)域是否是一个特定的值
ipoption:查看IP选项(IP option)域
fragbits:测试IP包头的分片位(fragmentation bit)
dsize:测试数据包包数据段的大小
flags:测试TCP标志(flag)是否是某个值
seq:测试TCP包的序列号是否是某个值
ack:测试TCP包的确认(acknowledgement)域是否为某个值
itype:测试ICMP数据包的类型(type)域
icode:测试ICMP数据包的编码(code)域
icmp_id:测试ICMP回送包的标志符(ICMP ECHO ID)是否为某个值
content:在数据包的数据段中搜索模式(pattern)
content-list:在数据包的数据段中搜索模式清单
offset:设置开始搜索的偏移量
depth:设置搜索最大深度
nocase:大小写不敏感匹配内容字符串
session:剥离一个对话的应用层信息
rpc:观察RPC服务对特定应用程序的调用
resp:激活反应措施(断开连接等)
react:激活反应措施(阻塞WEB站点)
3.1 msg
msg规则选项告诉日志引擎在复制包时同时打印的信息,以及让报警引擎输出的警告消息。它只是一个简单的文本字符串,使用作为转义符。
格式:
msg:"";
3.2 logto
logto选项告诉snort把触发某条规则所有的数据包都记录到指定的文件。使用这个选项,对处理来自nmap扫描、HTTP CGI扫描的数据非常方便。注意如果使用二进制日志模式,这个选项会失效。
格式:
logto:"文件名";
3.3 ttl
这个选项设置要测试的生命周期(time-to-live)值。只有数据包的TTL和这个选项设置的值精确匹配,测试才会成功。这个选项主要用来检测路由企图。
格式:
ttl:"";
3.4 tos
你可以使用tos关键词检查IP包头的TOS(type of service)域是否是一个特定的值。也是只有在被检测包TOS域的值和给定的值精确匹配时,这个测试才会成功。
格式:
tos:"";
3.5 ID
这个选项关键词用来测试IP分片包头的ID域。一些黑客工具为了不同的目的把这个域设置为特殊的值,例如:31337是在一些黑客中比较流行的值。使用这个选项就可以阻止这种攻击。
格式:
id: "";
3.6 lpoption
如果IP包中有选项域,可以使用这个规则选项搜索IP包头的特定选项,例如源路由。这个规则选项可以使用的参数如下:
rr:路由记录
eof:End of list
nop:无操作
ts:时间戳
sec:IP安全选项
lsrr:宽松源路由(loose source routing)
ssrr:严格源路由(strict source roution)
satid:流标识符
最常被注意的IP选项是loosestrict source routing,不过在Internet上广泛使用的任何应用程序中都没使用这两个选项。每条规则中只能设定一个IP规则。
格式:
ipopts: ;
3.7 fragbits
使用这个规则选项可以观察IP包头的分片位和保留位。它们在IP包头的标识域,共有3位,分别是:保留为(reserved bit,RB)、还有分组片位(more fragments,MF)、不可分片(dont fragment,DF)。这些位可以以各种方式组合检查,使用下面的值指定:
R:保留位
D:DF位
M:MF位
你也可以使用修饰符号对特定的位进行逻辑组合:
+--ALL标志,指定的位加上任何其它的位为真
*--ANY标志,指定的任何位为真
!--NOT标志,指定的位不为真
格式:
fragbits: ;
例子:
alert tcp !$HOME_NET any - $HOME_NET any (fragbits:R+;msg:"Reserverd IP bit set!";)
要先预审(材料+面试),后参加全国联考的。
流程比较复杂。以去年考试的流程为例:
详见
一、关注清华MBA微信平台,自测
关注清华MBA官方微信订阅号可以获得最及时的招生消息和通知。请务必先行关注。微信号中有清华MBA项目网站手机版链接,建议访问所有页面以获得全面的项目信息。微信号中也有清华MBA申请自测系统的链接,建议考生先行进行自测,了解自己适合程度。
二、申请和面试(2016年5月初至11月)
①注册清华MBA报考服务系统。
MBA报考服务系统全年开放,网址为:。填写申请表时请注意查看系统内的申请指导和每页的填写说明。
②填写和上传申请材料。网上提交的申请材料包括:申请书、成绩单、个人简历、单位组织结构图、推荐信(非必需)。申请材料的具体内容和要求见系统内说明。考生提交申请材料时需要选择申请面试批次,并在所选批次申请材料提交截止日期前提交。各批次的申请截止时间和面试时间见下页"面试批次"表。
③申请材料评审。清华经管学院将组织材料评委评审考生申请材料,选出进入面试的考生。不同批次的面试人数视当批申请考生数目和质量决定。在某批面试名额有限时,考生也有可能在后续批次获得面试机会。
④查询面试资格和时间安排。申请清华MBA项目(在职)MBA项目的考生的面试资格名单最晚将在每批面试日的周初通过MBA报考服务系统公布。全球MBA项目申请考生的面试资格一般在申请后一个月内通知。
⑤参加面试。清华MBA项目(在职)面试内容为综合素质面试(中文),清华—MIT全球MBA项目为综合素质面试(中文)+英文语言能力测试。考生在面试报到时进行报考资格查验。
⑥查询面试结果。面试结果将在面试后10个工作日内通过MBA报考服务系统进行公布。不同批次的条件录取资格人数视当批申请考生的数目和质量决定。
注:
◆考生申请任意项目获得条件录取资格后不能随意更改录取项目。
◆考生不可以同时申请清华—MIT全球MBA项目和清华MBA项目(在职),但在申请一个项目没有成功的情况下可以申请另外一个项目。每个项目只有一次申请机会。
三、MBA联考报名和参加笔试(2016年10月至12月)
通过面试获得条件录取资格的考生都需要报名和参加全国管理类专业硕士联考(MBA联考)。
注:因为没有联考后的面试,没有通过提前面试获得条件录取资格的考生请不要在联考报名时报考清华MBA项目。
①
MBA联考报名。全国MBA联考报名一般为10月10日至31日,报名具体时间和步骤以教育部和清华大学研究生院当年通知为准。中国研究生招生信息网网址: ,清华大学研究生招生系统网址:。
②参加全国MBA联考。全国MBA联考考试科目为管理类综合能力和英语二,考试的内容和具体要求请参考由教育部指定的考试大纲。考试时间以教育部和清华大学研究生院通知为准。
③参加政治考试、英语听力测试。考生在参加MBA联考后还需参加清华经管学院组织的MBA入学政治考试和英语听力测试(清华—MIT全球MBA项目考生免试英语听力测试)。
四、预录取(2017年3月底至4月初)
① MBA联考成绩一般于2月公布,国家线于3月底至4月初公布。MBA联考成绩达到国家A线且通过政治考试和英语听力测试的条件录取资格考生可获得预录取资格。如果考生当年在清华参加了联考,但成绩未达到国家线,条件录取资格可以保留至第二年。未在清华参加联考的条件录取考生的资格不予保留。
② 通过面试获得条件录取递补资格的考生可以在条件录取资格考生放弃或者没有达到国家线的情况下按照联考成绩排序获得预录取资格。最终没能递补成功的考生可在第二年直接获得原项目的面试资格。
五、正式录取(2017年4月至7月)
预录取考生在档案审查和申请材料真实性审查通过后获得正式录取资格,与清华大学签署培养协议后,将于2017年7月份收到录取通知书。
六、入学(2017年8月底至9月初)
2017级新生将于2017年4月开始在线课程学习和班级活动,8月底或9月初正式入学。
原著:Martin Roesch
翻译:Ni-ZhiQiang
前言
snort是一个强大的轻量级的网络入侵检测系统。它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort具有很好的扩展性和可移植性。本文将讲述如何开发snort规则。
1.基础
snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。下面是一些最基本的东西:
1).snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。注意:由于排版的原因本文的例子有的分为两行。
2).snort的每条规则都可以分成逻辑上的两个部分:规则头和规则选项。规则头包括:规则行为(rule's action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含报警信息和异常包的信息(特征码,signature),使用这些特征码来决定是否采取规则规定的行动。
这是一个例子:
alert tcp any any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"mountd access"
表1.一条简单的snort规则
从开头到最左边的括号属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词(option keywords)。注意对于每条规则来说规则选项不是必需的,它们是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,snort才会执行其规则行为。如果许多选项组合在一起,它们之间是逻辑与的关系。让我们从规则头开始。
1.1.include
snort使用的规则文件在命令行中指定,include关键词使这个规则文件可以包含其它规则文件中的规则,非常类似与C语言中的#include。snort会从被包含的文件读出其内容,取代include关键词。
格式:
include 文件路径/文件名
注意:行尾没有分号。
1.2.varriables
在snort规则文件中可以定义变量。
格式:
var namevalue
例子:
var MY_NET192.168.1.0/24,10.1.1.0/24]alert tcp any any - $MY_NET any (flags:S;msg:'SYNMETA packet"
表2.变量的定义和使用
规则变量名可以使用多种方式来修改,你可以使用$操作符来定义元变量(meta-variables)。这些修改方式可以结合变量修改操作符:?和-来使用。
1).$var:定义元变量
2).$(var):以变量var的内容作为变量名
3).$(var:-default):以变量var的内容作为变量名,如果var没有定义就使用default作为变量名
4).$(var:?message):使用变量var的内容作为变量名,如果不成功就打印错误信息message并退出。
例如:
var MY_NET $(MYU_NET:-192.168.1.0/24) tcp any any - $(MY_NET:?MY_NET is undefined!) 23
表3.高级变量应用
2.规则头(Rule Headers)
2.1.Rule Action
规则头包含一些信息,这些信息包括:哪些数据包、数据包的来源、什么类型的数据包,以及对匹配的数据包如何处理。每条规则的第一项就是规则行为(rule action)。规则行为告诉snort当发现匹配的数据包时,应该如何处理。在snort中,有五种默认的处理方式:alert、log、pass、activate和dynamic。
1).alert:使用选定的报警方法产生报警信息,并且记录数据包
2).log:记录数据包
3).pass:忽略数据包
4).activate:报警,接着打开其它的dynamic规则
5).dynamic:保持空闲状态,直到被activete规则激活,作为一条log规则
你也可以定义自己的规则类型,把它们和一个或者几个输出插件联系在一起。然后你就可以在snort规则中使用这些规则类型了。
这个例子将建立一个类型,它将只以tcpdump格式输出日志:
ruletype suspicious
{
type log
output log_tcpdump: suspocious.log
}
下面这个例子将建立一个类型,把日志发送到syslog和MySql数据库:
ruletype redalert
{
type alert
output alert_syslog:LOG_AUTH LOG_ALERT
output database:log,user=snort dbname=snort host=localhost
}
2.2.协议
每条规则的第二项就是协议项。当前,snort能够分析的协议是:TCP、UDP和ICMP。将来,可能提供对ARP、ICRP、GRE、OSPF、RIP、IPX等协议的支持。
2.3.IP地址
规则头下面的部分就是IP地址和端口信息。关键词any可以用来定义任意的IP地址。snort不支持对主机名的解析。所以地址只能使用数字/CIDR的形式。/24表示一个C类网络;/16表示一个B类网络;而/32表示一台特定的主机地址。例如:192.168.1.0/24表示从192.168.1.1到192.168.1.255的地址。
在规则中,可以使用使用否定操作符(negation operator)对IP地址进行操作。它告诉snort除了列出的IP地址外,匹配所有的IP地址。否定操作符使用!表示。例如,使用否定操作符可以很轻松地对表1的规则进行改写,使其对从外部网络向内的数据报警。
alert tcp !192.168.1.0/24 any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"external mountd access"
表4.使用IP地址否定操作符的规则
上面这条规则中的IP地址表示:所有IP源地址不是内部网络的地址,而目的地址是内部网络地址。
你也可以定义一个IP地址列表(IP list)。IP地址列表的格式如下:
[IP地址1/CIDR,IP地址/CIDR,....]
注意每个IP地址之间不能有空格。例如:
alert tcp ![192.168.1.0/24,10.1.1.1.0/24] any -[192.168.1.0/24,10.1.1.0/24] 111 (content:"|00 01 86 a5|";msg:"external mountd access"
2.4.端口号
在规则中,可以有几种方式来指定端口号,包括:any、静态端口号(static port)定义、端口范围,以及使用非操作定义。any表示任意合法的端口号;静态端口号表示单个的端口号,例如:111(portmapper)、23(telnet)、80(http)等。使用范围操作符:可以指定端口号范围。有几种方式来使用范围操作符:达到不同的目的,例如:
log udp any any - 192.168.1.0/24 1:1024
记录来自任何端口,其目的端口号在1到1024之间的UDP数据包
log tcp any any - 192.168.1.0/24 :600
记录来自任何端口,其目的端口号小于或者等于6000的TCP数据包
log tcp any :1024 - 192.168.1.0/24 500:
记录源端口号小于等于1024,目的端口号大于等于500的TCP数据包
表5.端口范围示例
你还可以使用逻辑非操作符!对端口进行非逻辑操作(port negation)。逻辑非操作符可以用于其它的规则类型(除了any类型,道理很简单)。例如,你如果要日志除了X-window系统端口之外的所有端口,可以使用下面的规则:
log tcp any any - 192.168.1.0/24 !6000:60 10
表6.对端口进行逻辑非操作
2.5.方向操作符(direction operator)
方向操作符-表示数据包的流向。它左边是数据包的源地址和源端口,右边是目的地址和端口。此外,还有一个双向操作符,它使snort对这条规则中,两个IP地址/端口之间双向的数据传输进行记录/分析,例如telnet或者POP3对话。下面的规则表示对一个telnet对话的双向数据传输进行记录:
log !192.168.1.0/24 any 192.168.1.0/24 23
表7.使用双向操作符的snort规则
activate/dynamic规则
activate/dynamic规则对扩展了snort功能。使用activate/dynamic规则对,你能够使用一条规则激活另一条规则。当一条特定的规则启动,如果你想要snort接着对符合条件的数据包进行记录时,使用activate/dynamic规则对非常方便。除了一个必需的选项activates外,激活规则(activate rule)非常类似于报警规则(alert rule)。动态规则(dynamic rule)和日志规则(log rule)也很相似,不过它需要一个选项:activated_by。动态规则还需要另一个选项:count。当一个激活规则启动,它就打开由activate/activated_by选项之后的数字指示的动态规则,记录count个数据包。
下面是一条activate/dynamic规则对的规则:
activate tcp !$HOME_NET any - $HOME_NET 143 (flagsA;content:"|E8C0FFFFFF|in|;activates:1;msg:"IMAP buffer overflow!"
表8.activate/dynamic规则对
这个规则使snort在检测到IMAP缓冲区溢出时发出报警,并且记录后续的50个从$HOME_NET之外,发往$HOME_NET的143号端口的数据包。如果缓冲区溢出成功,那么接下来50个发送到这个网络同一个服务端口(这个例子中是143号端口)的数据包中,会有很重要的数据,这些数据对以后的分析很有用处。
3.规则选项
规则选项构成了snort入侵检测引擎的核心,它们非常容易使用,同时又很强大和容易扩展。在每条snort规则中,选项之间使用分号进行分割。规则选项关键词和其参数之间使用冒号分割。截止到写本文为止(snort 1.7版),snort有23个规则选项关键词:
1).msg:在报警和日志中打印的消息
2).logto:把日志记录到一个用户指定的文件,而不是输出到标准的输出文件
3).ttl:测试IP包头的TTL域的值
4).tos:测试IP包头的TOS域的值
5).id:测试IP分组标志符(fragment ID)域是否是一个特定的值
6).ipoption:查看IP选项(IP option)域
7).fragbits:测试IP包头的分片位(fragmentation bit)
8).dsize:测试数据包包数据段的大小
9).flags:测试TCP标志(flag)是否是某个值
10).seq:测试TCP包的序列号是否是某个值
11).ack:测试TCP包的确认(acknowledgement)域是否为某个值
12).itype:测试ICMP数据包的类型(type)域
13).icode:测试ICMP数据包的编码(code)域
14).icmp_id:测试ICMP回送包的标志符(ICMP ECHO ID)是否为某个值
15).content:在数据包的数据段中搜索模式(pattern)
16).conten