网络安全——基于Snort的入侵检测实验

2023-12-13 05:47:13

一、实验目的要求:

二、实验设备与环境:

三、实验原理:

四、实验步骤:

五、实验现象、结果记录及整理:

六、分析讨论与思考题解答:

七、实验截图


一、实验目的要求:

1、掌握Snort的安装配置方法。

2、掌握Snort规则定义方法。

3、掌握使用Snort分析网络状态的方法。

4、具体内容:

1)学习Snort工作原理。

2)配置Snort规则文件。

3)使用Snort检测网络入侵事件。


二、实验设备与环境:


三、实验原理:

1、入侵检测系统的概述、作用、原理

针对计算机和网络资源的恶意使用行为进行分析、处理,是一种基于检测计算机中违反安全策略行为的技术,主要是保障计算机系统的安全,检测未授权、异常行为。

根据入侵的分类,可分为外部入侵和内部入侵;依据入侵的方向,进行入侵检测,即分为基于网络和基于文件系统变化。

其中基于网络的入侵检测系统的组件有:数据捕获器、数据处理器、响应器、数据库。

流程如图1所示:

本次实验是基于网络的入侵检测系统。

2Snort工具的作用

???? 是一款开源的、基于本地检测规则的网络入侵检测软件。主要功能如下,包嗅探(检测)、包记录(存储)、入侵检测;

???? 工作过程:1)先从网卡捕获网络上的数据包;2)将数据包进行解码并填入链路层协议的包结构体;3)预处理器对数据包进行检查4)通过检测引擎对数据包进行处理。如图2所示。

???? Snort命令格式:Snort [-a|-e|s|e|t] [options];

3Snort规则

?????? 从逻辑角度来划分,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:网络安全专家监视网络活动的控制台工具。


七、实验截图

?

?

?

?

?

文章来源:https://blog.csdn.net/qq_42603841/article/details/134942642
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。