Snort简介
snort作为一个开源代码的入侵检测工具,在入侵检测系统开发的过程中有着重要的借鉴意义,其主要有
初始化工作,解析命令行,读入规则库,生成用于检测的三维规则链表,然后循环检测。
流程图:
1.在kali Linux下对snort进行安装
(1)https://www.snort.org/downloads官网中下载
进行安装包解压:
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规则,加入到远程或对应主机的防火墙规则中,也就是实现了同第一种方式相同的功能,虽然后者在处理速度上没有第一种方式及时,但整体防护能力上并未有太大什么区别。
来源:freebuf.com 2020-07-18 23:26:32 by: Alexli888
请登录后发表评论
注册