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

  • A+
所属分类:安全文章

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

Snort简介

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

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


流程图:


基于Kali的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包进行编译


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


(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是否安装成功


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


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

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


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


下载并解压最新的规则包

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


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


练习一条规则

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


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


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

重启snort使规则生效。


利用Snort检测ping攻击


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


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


创建snort检测日志


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


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


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


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


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


成功开启snort进行检测


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


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


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


在日志中查看检测结果:


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


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


利用Snort检测nmap扫描


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


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


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


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


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


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


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


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


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


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


遇到的问题及解决方法:


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


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


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


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


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


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


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


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


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


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


结语

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

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

联动来解决这个问题。

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

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

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: