实验所属系列:网络安全实践
实验对象: 本科/专科信息安全专业
相关课程及专业:计算机基础,Linux基础
实验时数(学分):2学时
实验类别:实践实验类
Snort规则基本结构
snort使用一种简单的,轻量级的规则描述语言,这种语言灵活而强大,大多数snort规则都写在一个单行上。
snort规则被分成两个逻辑部分:规则头和规则选项。
规则头:包含规则的动作,协议,源和目标ip地址与网络掩码,以及源和目标端口信息;
规则选项:包含报警消息内容和要检查的包的具体部分。
下面是一个规则范例:
alert icmp any any <> $HOME_NET any (logto:"task1";msg:"---ICMP ping---"; sid:100000001)
第一个括号前的部分是规则头(rule header),包含在括号内的部分是规则选项(rule options)。规则选项部分中冒号前的单词称为选项关键字(optionkeywords)。注意,不是所有规则都必须包含规则选项部分,选项部分只是为了更加严格的对要收集、报警或丢弃的包进行定义。
组成一个规则的所有元素对于指定的要采取的行动都必须是真的。当多个元素放在一起时,可以认为它们组成了一个逻辑与(AND)语句。同时,snort规则库文件中的不同规则可以 认为组成了一个大的逻辑或(OR)语句。
下面是一个启动snort示例:
snort -i etho0 -d -l logs/ -c etc/snort.conf -A fast
这个指令的含义是在eth0网卡进行检测,将符合配置文件etc/snort.conf中包含的规则的数据包以二进制形式记录在logs目录下,如果检测到有符合条件的数据包流过,在屏幕上打印报警信息(包含源IP、目的IP、数据包信息等)。
通过该实验理解Snort入侵检测规则的组成,掌握Snort入侵检测规则编写。
攻击机(Server):Kali
目标机(Target):Centos
工具(Tools):Snort、SSH、Curl、PING