开源入侵检测系统—Snort的配置与检测规则编写

IDS(入侵检测系统)模式配置

1、创建snort用户和组,其中snort为非特权用户

groupadd snort
useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort

2、配置目录
IDS 模式运行时会创建一些目录,其中配置文件储存在 /etc/snort 中,规则储存在 /etc/snort/rules中,编译规则储存在 /usr/local/lib/snort_dynamicrules 中,日志粗存在 /var/log/snort 中

#创建snort目录
mkdir /etc/snort
mkdir /etc/snort/rules
mkdir /etc/snort/rules/iplists
mkdir /etc/snort/preproc_rules
mkdir /usr/local/lib/snort_dynamicrules
mkdir /etc/snort/so_rules


#创建储存规则文件
touch /etc/snort/rules/iplists/black_list.rules
touch /etc/snort/rules/iplists/white_list.rules
touch /etc/snort/rules/local.rules
touch /etc/snort/sid-msg.map

#创建日志目录
mkdir /var/log/snort
mkdir /var/log/snort/archived_logs


#修改文件权限
chmod -R 5775 /etc/snort
chmod -R 5775 /var/log/snort
chmod -R 5775 /var/log/snort/archived_logs
chmod -R 5775 /etc/snort/so_rules
chmod -R 5775 /usr/local/lib/snort_dynamicrules


#修改文件属主
chown -R snort:snort /etc/snort
chown -R snort:snort /var/log/snort
chown -R snort:snort /usr/local/lib/snort_dynamicrules


#将配置文件从源文件复制到/etc/snort/中
cd /snort-2.9.18.1/etc/    # (进入snort安装目录,每个人可能不同)

cp *.conf* /etc/snort
cp *.map /etc/snort
cp *.dtd /etc/snort

cd /root/snort-2.9.18.1/src/dynamic-preprocessors/build/usr/local/lib/snort_dynamicpreprocessor
cp * /usr/local/lib/snort_dynamicpreprocessor/

3、配置规则
我们使用官方给的免费的社区规则,如果有需要的话可以选择官方的其他套餐
(社区套餐免费;注册即可领注册套餐;付费套餐)

wget https://www.snort.org/downloads/community/community-rules.tar.gz

解压,添加

tar -xvzf community-rules.tar.gz
cp community-rules/* /etc/snort/rules/

4、修改配置文件

vim /etc/snort/snort.conf

# 在45行附近  ipvar HOME_NET <any>修改为本机的内部网络
ipvar HOME_NET <ip>.1/24

在这里插入图片描述

# 在104行附近  配置规则文件路径
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/prepproc_rules
var WHITE_LIST_PATH /etc/snort/rules/iplists
var BLACK_LIST_PATH /etc/snort/rules/iplists

在这里插入图片描述

#在515行  output unified2:....... 之后添加
output unified2: filename snort.u2, limit 128

在这里插入图片描述

#546行,取消注释local.rules文件,后面的 include 文件均注释掉
include $RULE_PATH/local.rules

在这里插入图片描述

保存,退出

检查规则是否配置完成

snort -T -c /etc/snort/snort.conf

出现如下界面说明规则配置完成
在这里插入图片描述

至此我们已经成功的将 Snort 配置为 IDS 来保护我们的网络

5、检测规则编写
snort规则格式
snort允许用户编写自己的规则来生成传入/传出的网络数据包日志
snort的规则主要由 “标题”和 “选项" 组成,两者由不同的字段组成,如下:
在这里插入图片描述

###标题字段(必须)
action:snort发现匹配规则时要执行的动作,包括(alert、log、pass、activate、dynamic)
Protocol:流量使用的协议(ip、tcp、udp、icmp等)
Source IP:攻击者/访问者的 IP
Source port:攻击者/访问者的 端口
方向运算符:" ->""<>" 表示发送方和接收方网络流量方向
Destination IP:目标IP,一般是收IDS保护的主机 IP
Destination Port:目标端口,一般是接受流量的主机端口

###选项字段(在括号中,可选。参数和值之间以冒号分隔,参数和参数之间以分号分隔)
###选项字段有四大类(常规、有效载荷、非有效载荷、检测后触发器)
###如下是一般规则
1).msg:在报警和日志中打印的消息,
2).logto:把日志记录到一个用户指定的文件,而不是输出到标准的输出文件,如:logto:'<filename>';
3).ttl:测试IP包头的TTL域的值
4).tos:测试IP包头的TOS域的值
5).id:测试IP分组标志符(fragment ID)域是否是一个特定的值
6).ipoption:查看IP选项(IP option)7).fragbits:测试IP包头的分片位(fragmentation bit)
8).dsize:测试数据包包数据段的大小
9).flags:测试TCP标志(flag)是否是某个值
10).seq:测试TCP包的序列号是否是某个值
11).ack:测试TCP包的确认(acknowledgement)域是否为某个值
12).itype:测试ICMP数据包的类型(type)13).icode:测试ICMP数据包的编码(code)14).icmp_id:测试ICMP回送包的标志符(ICMP ECHO ID)是否为某个值
15).content:在数据包的数据段中搜索模式(pattern)
16).content-list:在数据包的数据段中搜索模式清单
17).offset:设置开始搜索的偏移量
18).depth:设置搜索最大深度
19).nocase:大小写不敏感匹配内容字符串
20).session:剥离一个对话的应用层信息
21).rpc:观察RPC服务对特定应用程序的调用
22).resp:激活反应措施(断开连接等)
23).react:激活反应措施(阻塞WEB站点)

实践一下,检测对 80 端口的访问,可以像下面这样

vim/etc/snort/rules/local.rules
alert tcp any any -> 192.168.43.97 80 (msg:"A test guys";reference:"A Robot";sid:1)

编写来自 ping 的数据包

alert icmp any any -> 192.168.43.97 any (msg:"A boring guys";reference:"A Robot";sid:2)

在这里插入图片描述

保存,退出

激活 snort 控制台检测流量

snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i ens33

浏览器访问 80 端口
在这里插入图片描述

从上图能过够看到攻击者的 IP 及 端口

现在模拟其他用户/攻击者去 ping 该主机

ping 192.168.43.97

可以看到控制台上检测的流量
从 192.168.43.206 到 192.168.43.97

在这里插入图片描述
下一篇更多的熟悉检测规则

详细规则见:

http://drops.xmd5.com/static/drops/%E6%9D%A9%E6%84%AE%E6%B7%AE%E7%80%B9%E5%A4%8A%E5%8F%8F-9232.html

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Snort是一种开源入侵检测系统,用于监控网络流量并检测潜在的入侵行为。它广泛应用于保护各类网络环境的安全Snort具有以下几个主要的技术特点: 1. 网络嗅探技术:Snort使用网络嗅探技术来获取经过网络接口的数据包。它可以在网络链路上监听传输的数据,并根据预先定义的规则对数据包进行分析,以便及时检测和响应入侵行为。 2. 规则引擎:Snort依赖于强大的规则引擎来检测入侵行为。用户可以根据自己的需求编写自定义规则,这些规则定义了入侵事件的特征或模式。Snort会根据规则库的规则对经过的数据包进行匹配,一旦匹配到某个规则,就会触发报警。 3. 数据分析和日志记录:Snort能够对抓取到的数据包进行深入分析,并将分析结果记录到日志文件中,以供后续的审计和分析。这些日志包括警报信息、攻击类型和其他相关信息,可以提供给安全管理员进行分析和决策。 4. 灵活性和可扩展性:Snort具有很高的灵活性和可扩展性,可以根据需求进行定制和配置。它支持多种类型的规则和插件,用户可以根据自己的需要选择适合的规则和插件。此外,Snort还可以与其他安全工具进行集成,如防火墙和SIEM系统,以提高整体的安全防护能力。 综上所述,Snort作为一种开源入侵检测系统,利用网络嗅探技术、规则引擎、数据分析和灵活的配置等技术特点,可以有效地检测和响应网络中的入侵行为。它在网络安全领域具有广泛的应用价值,为用户提供了一个强大、灵活且可扩展的安全防护解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值