基于Kali的Snort配置和入侵检测测试

2020-08-11 15:44:01 浏览数 (1)

Snort简介

snort作为一个开源代码的入侵检测工具,在入侵检测系统开发的过程中有着重要的借鉴意义,其主要有

初始化工作,解析命令行,读入规则库,生成用于检测的三维规则链表,然后循环检测。

流程图:

1.在kali Linux下对snort进行安装

(1)https://www.snort.org/downloads官网中下载

snort-2.9.15.1.tar.gz

daq-2.0.6.tar.gz

进行安装包解压:

tar -zxvf snort-2.9.15.1.tar.gz

tar -zxvf daq-2.0.6.tar.gz

(2)安装daq所依赖的开发包,直接编译会出现错误

Apt-get install flex

Apt-get install bison

Apt-get install libpcap-dev

(3)查看目录下文件,并对dag包进行编译

(4)安装snort所依赖的软件包

Apt-get isnatll libpcre3-dev

Apt-get install libdumbnet-dev

Apt-get install zlibig-dev

同样对snort包进行编译:./configure –disable-open-appid && make && make install

(5)查看snort是否安装成功

2.配置snort规则,进行ping攻击检测

从官网下载规则包:(需注册登录)

下载并解压最新的规则包

将snort安装目录的包用规则包进行替换

练习一条规则

在rules/local.rules下进行规则配置

实现对内网的UDP协议相关流量进行检测,并报警

重启snort使规则生效。

利用Snort检测ping攻击

在rules/icmp-info.rules文件中设置如下规则:

创建snort检测日志

将snort规则中的路径(RULE_PATH)改为snort下的rules规则路径

使用snort规则对流量进行检测,并将结果输出到snort日志中

成功开启snort进行检测

使用局域网内主机对安装snort主机进行包>800的ping攻击

在日志中查看检测结果:

成功检测包大于800的ping攻击!

利用Snort检测nmap扫描

1.对snort规则进行修改,将检测的家庭网络改为所在局域网

2.在rules/local.rules下进行tcp规则配置

3.启动snort进行局域网内的扫描检测

4.使用宿主机进行局域网内的namp扫描

5.在var/log/snort中查看检测结果

遇到的问题及解决方法:

1.在启动snort规则中,出现如下错误:

这个错误与安装的依赖有关,这里我们可对326,327行进行注释,并删除324后的

2.在snort文件中没有while_list.rules和black_list.rules:

这里我们可以进行删除或者注释掉

3.在tcp规则的设定中,没有sid号导致错误(注释:<100保留,100~999999为snrot发布用,>=1000,000本地用)

结语

snort还可以对网站的访问进行检测。

由于snort只能检测到入侵行为并发出报警信息,但是不能直接地阻断入侵行为,可以将snort与iptables

联动来解决这个问题。

①利用Snort的扩展功能,自定义开发集成插件(snortsam): Snort 有个插件机制提供了预处理插件和处理插件等方式。而这种插件在Snort里是支持自定义开发并加载的。因此第一种实现方式就是自定义开发插件,当检测到规则匹配时则调用远程或对应主机的防火墙,将有入侵行为的ip 和端口,建立对应的一条 Iptables规则丢弃这个连接、端口的数据包或将此ip的所有包都丢弃。

②利用Snort的告警日志,自定义开发脚本。相对于Snort的插件方式,第二种的实现方式非常简单且易于实现,就是利用一个简单的脚本实时读取告警日志,将记录到的Ip和端口,创建对应的一条lptables规则,加入到远程或对应主机的防火墙规则中,也就是实现了同第一种方式相同的功能,虽然后者在处理速度上没有第一种方式及时,但整体防护能力上并未有太大什么区别。

0 人点赞