一、实验目的要求:
二、实验设备与环境:
三、实验原理:
四、实验步骤:
五、实验现象、结果记录及整理:
六、分析讨论与思考题解答:
七、实验截图:
1、掌握Snort的安装配置方法。
2、掌握Snort规则定义方法。
3、掌握使用Snort分析网络状态的方法。
4、具体内容:
1)学习Snort工作原理。
2)配置Snort规则文件。
3)使用Snort检测网络入侵事件。
1、入侵检测系统的概述、作用、原理
针对计算机和网络资源的恶意使用行为进行分析、处理,是一种基于检测计算机中违反安全策略行为的技术,主要是保障计算机系统的安全,检测未授权、异常行为。
根据入侵的分类,可分为外部入侵和内部入侵;依据入侵的方向,进行入侵检测,即分为基于网络和基于文件系统变化。
其中基于网络的入侵检测系统的组件有:数据捕获器、数据处理器、响应器、数据库。
流程如图1所示:
本次实验是基于网络的入侵检测系统。
2、Snort工具的作用
是一款开源的、基于本地检测规则的网络入侵检测软件。主要功能如下,包嗅探(检测)、包记录(存储)、入侵检测;
工作过程:1)先从网卡捕获网络上的数据包;2)将数据包进行解码并填入链路层协议的包结构体;3)预处理器对数据包进行检查4)通过检测引擎对数据包进行处理。如图2所示。
Snort命令格式:Snort [-a|-e|s|e|t] [options];
3、Snort规则
从逻辑角度来划分,Snort规则=规则头+规则选项;
规则头:规则动作、协议类型、地址、端口号、方向操作符;
规则选项:例如,msg、flags、sid、rev、classtype等。
(一)环境配置
1、检测环境:登录主机1,执行命令"sudo snort -V"查看是否安装成功;
2、配置修改:
①执行命令"sudo vi /etc/snort/snort.conf",snort.conf文件包含一个snort配置样例,分为五个步骤。设置网络变量、配置动态加载库、配置预处理器、配置输出插件、增加任意的运行时配置向导、自定义规则集修改属性值。
var RULE_PATH /etc/snort/rules(配置rules文件路径)
var SO_RULE_PATH /etc/snort/so_rules(配置so_rules路径)
var PREPROC_RULE_PATH /etc/snort/preproc rules(实验性规则)
②修改ipvar HOME_NET值,即本机所在的网段:
ipvar HOME_NET 30.0.1.0/24
③修改output unified2的值,设置snort.unified2格式的数据集。统一输出文件,文件名为snort.log,限制128,mpls事件类型,vlan事件类型:
"output unified2: filename snort.log, limit 128, mpls_event_types, vlan_event_types"
④重启Snort:执行"sudo service snort restart"命令;
3、配置Snort的检测规则:
① 删除之前的日志文件:执行命令" sudo rm /var/log/snort/snort.log"。为新规则做好环境准备。
② 本地规则文件添加内容:任何发往本机的ICMP和HTTP数据包都会触发Snort告警;其中,"/etc/snort/rules"是用于存放规则文件的路径,Snort就是根据诸多的规则文件给用户提供预警和提示的。执行"sudo vi /etc/snort/rules/local.rules"命令:
"alert icmp any any -> $HOME_NET any (msg:“ICMP Test NOW!!!”; classtype:not-suspicious; sid:1000001;rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:“HTTP Test NOW!!!”; classtype:not-suspicious; sid:1000002;rev:1;)"
③ 清除规则:执行"sudo vi /etc/snort/snort.conf"命令,把除了local.rules之外的规则全部注释掉(把local.rules之后的include语句注释掉;
④ 检测是否配置成功:执行"sudo snort -T -c /etc/snort/snort.conf"命令;如图2所示;
(二)使用Snort进行入侵分析
1、信息查看:执行"ifconfig"命令,查看主机网卡信息:
eth0即为本机的网卡,如果有多个网卡,便会显示eth1、eth2…等网卡信息。
2、监控入侵:执行"sudo snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eth0"命令
3、开始执行:登录主机2,Ping主机1,"ping 30.0.1.4 "
4、查看数据包信息:进入终端查看;
5、浏览器交互:用主机2通过浏览器的方式,访问主机1。在浏览器中输入http://30.0.1.4
6、返回终端窗口对检测的数据进行查看
1、在环境检测中,已经成功安装snort工具;
2、在环境配置修改中,有很多配置文件可修改,可根据用户所需,进行修改;如常规的路径设置、网络变量、加载库等;
3、在配置检测规则中,可根据用户所需,根据实际的情况进行规则的设置,本实验设置的是ICMP、HTTP数据包;
4、在实验实际运行时,发现通过snort工具,成功检测到了数据包的信息。
1、入侵检测的检测引擎就是通过对规则选项的分析构成了Snort 检测引擎的核心。选项主要可以分为哪些?
①第一类是数据包相关各种特征的描述选项,比如:content、flags、dsize、ttl等;
②第二类是规则本身相关一些说明选项,比如:reference、sid、classtype、priority等;
③第三类是规则匹配后的动作选项,比如:msg、resp、react、session、logto、tag等;
④第四类是选项是对某些选项的修饰,比如从属于content的nocase、offset、depth、regex等
2、配置snort.conf中,可通过哪些方式设置本地网络?
①清晰指定你的本地网络
var HOME_NET 192.168.1.0/24;如果希望构建的Snort支持IPV6支持,则这里定义网段的类型修改为pvar;
②使用全局变量:var HOME_NET $eth0_ADDRESS
③定义一个地址列表,中间用逗号隔开:var HOME_NET [10.1.1.0/24,192.168.1.0/24] ,列表中不能有空格;
④定义任意的IP地址:var HOME_NET any;
3、免费企业网络入侵检测工具还有哪些?
①OSSEC HIDS:基于主机的开源入侵检测系统;
②Fragroute/Fragrouter:能够逃避网络入侵检测的工具箱;
③BASE:基本的分析和安全引擎,是基于PHP的分析引擎;
④Sguil:网络安全专家监视网络活动的控制台工具。