计算机网络安全--snort介绍--linux下安装和使用

本文章教程使用的是WSL的 Ubuntu 22.04.1 LTS 系统
且使用的管理员账户

在这里插入图片描述

介绍

Snort是世界上最重要的开源入侵防御系统(IPS)。Snort IPS使用一系列规则 帮助定义恶意网络活动,并使用这些规则查找与它们匹配的数据包,以及 为用户生成警报。

Snort也可以内联部署以阻止这些数据包。鼻吸有三个主要用途: 作为像tcpdump这样的数据包嗅探器,作为数据包记录器 - 这对于网络流量调试很有用,或者它可以 用作成熟的网络入侵防御系统。

官方的操作文档有着所有的操作
这里只记录着前3比较简单的操作
在这里插入图片描述

安装

查看网卡信息

wsl不自带ifconfig工具
需要下载

apt install net-tools

在这里插入图片描述
查看网卡信息:

ifconfig

记住是在那个位置我的在eth0
在这里插入图片描述

安装snort

apt install -y snort

下载完后就会弹出配置
在这里插入图片描述

需要请使用CIDR格式-例如,对于256个地址的块,使用192.168.1.0/24或192.168.1.42/32
只有一个。多个值应以逗号分隔(不带空格)

您可以将此值保留为空,并在/etc/snort/ssnort.conf中配置HOME_NET。
请注意,如果将Snort配置为使用多个接口,它将使用此值作为 HOME_NET定义。

现在我还不知道这个干嘛的就默认了,如果不对可以去修改的。

配置网卡

我的没有显示,好像是因为默认是eth0,所以eth0的不需要配置,不是的会弹出提示来配置。

查看snort版本

snort -V
# 或者snort --v

在这里插入图片描述

使用

嗅探器模式

snort # 就可以启动了

参数

可选参数:
-e 显示二层报文内容,即显示MAC地址以太网帧类型
-v 显示 IP 和 TCP / UDP / ICMP头信息
-d	显示应用层协议内容,即显示报文数据段
-C	在-d模式下,不显示16进制数据,只显示字符串类型
-X	显示链路层数据内容
-q	安静模式,不显示启动信息,不显示统计信息
-p 禁用混杂模式嗅探
-h <hn>设置家庭网络=<hn>(用于-l或-B,在IDS模式下不会更改$HOME_NET

使用

显示,但是一般没得包,需要在创建一个终端自己ping一个。

snort -v
ping www.baidu.com

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

数据包记录模式

这个功能就是将报文保存,记录到某个路径下。

这里常用的参数有

-l	指定log存放目录
-L	指定log记录名称,建议和-l配合使用,因为它只指定文件名称
-K <mode>	记录日志模式 (pcap[默认],ascii,none),只有当使用ascii模式的时候, 才能存成人类可读格式,并且按照IP来源分开存储
-h	指定哪个网络是家庭网络,存储以远端IP为名,如果都是本地,以端口号、IP为优先级,取大者,这个只有ascii模式才有效
-D  在后台(守护程序)模式下运行Snort
-k <mode>  校验和模式(all,noip,notcp,noudp,noicmp,none)
-K <mode> 日志记录模式(pcap〔默认〕,ascii,none)
-N 关闭日志记录(警报仍然有效)

创建存放日志的目录
在这里插入图片描述

snort -dev -l ./snort_log/ -K ascii

需要加K,不然默认pcap模式我们看会乱码

启动

在这里插入图片描述

查看日志

在这里插入图片描述
在这里插入图片描述

网络入侵检测模式

这里是Snort最核心的用法,网络攻击检测

参数

-c	指定配置文件

新建并且编辑规则文件

规则

目录

 cd /etc/snort/rules/

在这里插入图片描述

alert icmp 0.0.0.0 any -> any any (logto:"test";msg:"ping";sid:100000003)

在这里插入图片描述

保存退出后

修改配置文件

在这里插入图片描述
添加

include $RULE_PATH/my.rules

启动

snort -l snort_log/ -c /etc/snort/snort.conf -K ascii

在这里插入图片描述
ping
在这里插入图片描述
查看日志
在这里插入图片描述

练习

查看它检测到其他电脑对你的电脑发出ping报文时,会发出告警信息
rules:

alert icmp any any -> 0.0.0.0 any (logto:"test";msg:"new ping";sid:100000003)
sudo tail -f snort_log/test -n 30  

在这里插入图片描述

可能错误

ERROR: Can’t start DAQ (-1) - socket: Operation not permitted!

权限不够,切换到root权限就可以了。

Can’t start DAQ (-1) - SIOCGIFHWADDR: No such device!或者Acquiring network traffic from 不是自己的网卡

则需要修改

snort -i网卡名字# i和名字没有空格,不要加空格

can’t set daq bpf filter to ’ eth…'就是加了空格了。

规则格式介绍

alert icmp any any -> 0.0.0.0 any (logto:"test";msg:"new ping";sid:100000003)

第一部分:规则头

关键字含义
alert使用选定的警报方法生成警报,然后记录数据包
log记录数据包
pass忽略数据包
drop丢弃并记录数据包
reject阻止数据包,记录它,然后发送TCP重置(如果协议是TCP)或ICMP端口不可访问消息(如果协议是UDP)
sdrop阻止数据包,但不记录它

第二部分:协议
如:IP、ICMP、TCP、UDP

第三部分:发送方的IP

第四部分:发送方的端口

第五部分:方向
->单项
<>双向

第六部分:接收方的IP

第气部分:接收方的端口

端口

关键字含义
关键字any可用于定义合法端口
单一数字静态端口,例如23代表telnet
单一数字:大于等于该端口
:单一数字表示小于端口号
单一数字:单一数字 端口范围
表示非该范围端口

最后一部分:规则选项

关键字含义
general基本信息,并不对流量产生任何行为
payload对数据流的有效载荷进行查找,可进行多数据关联查找
non-payload非数据载荷查找
post-detection对检测出的特定的规则进行关联触发

general类型

关键字含义
msg向日志和警报引擎告知要打印的消息以及数据包转储或警报,它是一个简单的文本字符串,利用\作为转义字符来表示离散的字符,否则这些字符可能会使Snort的规则解析器感到困惑(例如分号; 字符)
reference允许规则引用外部攻击识别系统,简单来说就是允许带一些参数,这个参数能够被其他攻击检测系统识别调用,方便了消息联动
gid用来表示是Snort的哪个子系统产生了这次触发,建议使用从1000000开始的值。对于一般规则的编写,不建议使用gid关键字。此选项应与sid关键字一起使用
sid用于唯一标识Snort规则此信息允许输出插件识别规则,常与rev关键字一起使用,文件sid-msg.map包含警报消息到Snort规则ID的映射
在对警报进行后期处理以将ID映射到警报消息时,此信息非常有用。
<100保留供将来使用
Snort发行版中包含100-999999条规则
>=1000000用于当地规则
rev用来唯一标识规则版本,和sid一起用
classtypesnort根据其默认的规则文件,将攻击进行相应分类,并具有不同的优先级
1-4,1最高,规则分类被定义在classification.config文件中。(优先级1(高)是最严重的,优先级4(非常低)是最不严重的。)
priority规则指定严重性级别
metadata元数据标记允许规则编写器嵌入有关规则的附加信息,通常采用键值格式

配置文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值