计算机安全_Lab4_Snort实验

目录

1 实验描述

2 实验准备

3 实验内容

3.1 Snort三种工作模式

3.2 snort规则定义

3.3 task 1 :检测到其他计算机通过HTTP协议访问计算机时,显示警报。

3.4 task 2 :当有人通过任何方法以root用户身份在计算机外部登录计算机时,该规则将显示警报。

4 实验总结


1 实验描述

 对于网络安全而言入侵检测是一件非常重要的事。入侵检测系统(IDS)用于检测网络中非法与恶意的请求。Snort是一款免费、开源的网络入侵防御系统(Network Intrusion Prevention System,NIPS)和网络入侵检测系统(Network Intrusion Detection System,NIDS)工具,用于管理和防御黑客入侵 Web 站点、应用程序和支持 Internet 的程序。 本实验为了了解snort入侵检测系统中,对于外界访问本机系统依据规则提出警告等相关操作。查阅资料,编写具有防护警告的snort rules,了解snort运行机理。

2 实验准备

1. 预装daq所需程序

snort使用数据采集器(daq)监听防火墙数据包队列,所以按照daq。需预装的程序有:flex、bison、libcap

安装flex

计算机安全_Lab4_Snort实验

安装bison

计算机安全_Lab4_Snort实验

安装libpcap-dev

计算机安全_Lab4_Snort实验

2. 安装daq

计算机安全_Lab4_Snort实验

计算机安全_Lab4_Snort实验

  安装后make

计算机安全_Lab4_Snort实验

3. 安装snort所需程序

安装libpcre3-dev

计算机安全_Lab4_Snort实验

安装libdumbnet-dev

计算机安全_Lab4_Snort实验

安装zlib1g-dev

计算机安全_Lab4_Snort实验

4. 安装snort

计算机安全_Lab4_Snort实验

计算机安全_Lab4_Snort实验

此处遇到错误:

计算机安全_Lab4_Snort实验

解决办法:加上—disable-open-appid

计算机安全_Lab4_Snort实验

此外考虑错误原因为:缺少luaJIT库,可以到官网下载,编译安装即可

计算机安全_Lab4_Snort实验

安装后输入命令snort –v (把TCP/IP包头信息打印在屏幕上)

计算机安全_Lab4_Snort实验

snort -vde (显示数据链路层的信息)

计算机安全_Lab4_Snort实验  

5. 配置snort

创建snort配置(及规则)目录,创建运行需要目录

计算机安全_Lab4_Snort实验

 

首先将解压出来的etc下的默认配置文件复制到snort配置目录下

计算机安全_Lab4_Snort实验

下载社区规则并解压到规则目录

计算机安全_Lab4_Snort实验

启用社区规则文件

计算机安全_Lab4_Snort实验

重新设置snort.conf中的变量值

计算机安全_Lab4_Snort实验

创建默认使用的白名单文件

计算机安全_Lab4_Snort实验

创建默认的黑名单文件

计算机安全_Lab4_Snort实验

创建默认自己设置的规则文件(之后自己创建的规则都写到这个规则集里)

计算机安全_Lab4_Snort实验

注释掉所有默认要加载的规则文件

计算机安全_Lab4_Snort实验

测试配置文件是否有误,用命令snort -T -c /etc/snort/snort.conf

计算机安全_Lab4_Snort实验

可见成功。

6. 在snort.conf文件中加入新建的规则集文件路径

计算机安全_Lab4_Snort实验

7. 由于多次尝试无法安装snort-mysql,所以使用xampp,安装xampp

计算机安全_Lab4_Snort实验

计算机安全_Lab4_Snort实验

8. 编写一个test.html的测试网页,通过linux本身浏览器访问:

计算机安全_Lab4_Snort实验

3 实验内容

3.1 Snort三种工作模式

snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。本实验要求snort工作在NIDS模式,即网络入侵检测模式。注:

嗅探模式:snort –v 

记录模式:mkdir log  snort -dev -l ./log

网络入侵检测模式:命令 mkdir log    snort -dev -l ./log -h 192.168.43.73 -c /etc/snort/snort.conf     该模式将会按指定的规则扫描通信数据包

计算机安全_Lab4_Snort实验

计算机安全_Lab4_Snort实验

3.2 snort规则定义

Snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。Snort规则是基于文本的,规则文件按照不同的组进行分类,比如文件ftp.rules包含了FTP攻击内容。(Snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。Snort的每条规则都可以分成逻辑上的两个部分:规则头和规则体。)规则头包括4个部分:规则行为;协议;源信息;目的信息。下图是对于规则头的描述。

计算机安全_Lab4_Snort实验

snort规则头Snort预置的规则动作有5种:

(1)pass—动作选项pass将忽略当前的包,后继捕获的包将被继续分析。

(2)log—动作选项log将按照自己配置的格式记录包。

(3)alert—动作选项alert将按照自己配置的格式记录包,然后进行报警。它的功能强大,但是必须恰当的用,因为如果报警记录过多,从中攫取有效信息的工作量增大,反而会使安全防护工作变得低效。 

(4)dynamic—动作选项dynamic是比较独特的一种,它保持在一种潜伏状态,直到activate类型的规则将其触发,之后它将像log动作一样记录数据包。

(5)activate—动作选项activate功能强大,当被规则触发时生成报警,并启动相关的dynamic类型规则。在检测复杂的攻击,或对数据进行归类时,该动作选项相当有用。

规则体的作用是在规则头信息的基础上进一步分析,有了它才能确认复杂的攻击(Snort的规则定义中可以没有规则体)。规则体由若干个被分别隔开的片断组成,每个片断定义了一个选项和相应的选项值。一部分选项是对各种协议的详细说明,包括IP、ICMP和TCP协议,其余的选项是:规则触发时提供给管理员的参考信息,被搜索的关键字,Snort规则的标识和大小写不敏感选项。

3.3 task 1 :检测到其他计算机通过HTTP协议访问计算机时,显示警报。

1. 测试 Web 服务器 Apache 和 PHP 是否工作正常

计算机安全_Lab4_Snort实验

2. 查询当前设备ip地址(命令 : ifconfig)

3. 使用windows的谷歌浏览器访问预先编写好的网页

计算机安全_Lab4_Snort实验

可见访问成功。

问题总结:开始的时候用windows无法访问,后发现是因为重新安装了虚拟机后网络模式自动为网络地址转换模式,改回桥接模式,改成查询新的ip地址,可以访问成功。

4. 编写规则:

计算机安全_Lab4_Snort实验

(1)alert 表示这是一个警告。

(2)tcp表示要检测所有使用tcp协议的包,因为http协议是tcp/ip协议的一部分。

(3)接下来的一部分表示源IP地址,其中“!”表示除了后面IP的所有IP,因此![192.168.43.73]表示的就是除了本机之外的所有主机。

(4)再后面的一个表示端口,any表示源IP地址任何一个端口,也就是说源IP地址的主机不管哪个端口发送的包都会被检测。->表示检测的包的传送方向,表示从源IP传向目的IP。下面的一个字段表示目的IP,在这里表示主机。后面的字段表示端口号。

(5)括号中的规则选项部分,logto表示将产生的信息记录到文件,msg表示在屏幕上打印一个信息,sid表示一个规则编号,如果不在规则中编写这个编号,则执行过程中会出错,而且这个编号是唯一的能够标识一个规则的凭证,1000000以上用于用户自行编写的规则。

5. 编写规则并运行snort

命令:snort -dev -l /var/log/snort -h 192.168.43.73 -c /etc/snort/snort.conf

其中/var/log/snort为警报日志生成的位置。

再次通过windows访问test.html网页

计算机安全_Lab4_Snort实验

6. 此时再次访问网页时可以在终端看到有记录信息产生

计算机安全_Lab4_Snort实验

打开我们设定的警报日志可以看到出现“this is task 1”

计算机安全_Lab4_Snort实验

可见成功,得到了警报记录。

3.4 task 2 :当有人通过任何方法以root用户身份在计算机外部登录计算机时,该规则将显示警报。

1. 与之前相似,首先添加规则在local.rules,监测ftp和telnet的登录

计算机安全_Lab4_Snort实验

2. ftp连接

计算机安全_Lab4_Snort实验

同时可见产生警报。

计算机安全_Lab4_Snort实验

3. telnet连接

计算机安全_Lab4_Snort实验

同时可见产生相应警报记录。

计算机安全_Lab4_Snort实验

4 实验总结

本次实验收获很多,让我进一步了解了snort,掌握在unbuntu中配置snort的全过程,以及对snort的使用。同时掌握了对于snort的规则编写和警报信息的记录与查看。在实验过程中遇到了很多的问题,在实验的task1中还涉及到需要在linux中先搭建web服务器,再通过window去访问自己网页,尝试了多种方式后选择了xampp,在实验过程中也掌握了xampp的使用。希望之后能够再接再厉,加油!