snort的学习记录

server/2025/2/8 23:51:32/

一、what is snort?什么是snort?

Snort 是一款开源的 网络入侵检测系统(NIDS) 和 网络入侵防御系统(NIPS),能够实时监控网络流量,检测恶意行为(如端口扫描、SQL注入、DDoS攻击等),并触发告警或主动防御的工具。

二、IPS与IDS介绍

IDS:可分为:NIDS(网络入侵检测系统)、HIDS(主机入侵检测系统),NIDS是检测网络各区域的流量,HIDS是检测单个端点设备的流量。

IPS:可分为NIPS(网络入侵防御系统)、HIPS(主机入侵防御系统)、NBA(行为入侵防御系统)、WIPS(无线入侵防御系统)。

其中NBA(行为入侵检测系统)与NIPS 的区别在于:基于行为的系统需要一段训练期(也称为“基线”)来学习正常流量,并区分恶意流量和威胁。

三、snort的安装

Linux:

sudo apt-get update
sudo apt-get install snort
配置文件路径

/etc/snort/snort.conf

四、snort的使用说明

snort分为三种模式:

1.Sniffer Mode(嗅探模式: 读取 IP 数据包并在控制台应用程序中提示它们。

2.Packet Logger Mode(包记录模式):记录所有访问网络的 IP 包(入站和出站)

3.NIDS and NIPS:根据用户定义的规则,丢弃被视为恶意的数据包

1)嗅探模式:
  • 命令:snort -V

  • -V:查看版本的信息

  • 命令:snort -c /etc/snort/snort.conf -T

  • -c:用于识别配置文件

  • -T:自我测试参数

  • -q:静默模式可防止 Snort 显示默认横幅和关于您配置的初始信息

  • -i:定义要监听/嗅探的特定网络接口

2)数据包记录模式:
  • -l:-l . 表示在当前目录中创建日志

  • -k:ASCII 格式的日志包

  • -r:读取 Snort 的日志文件

  • -n X:指定要读取的第X个数据包

示例:sudo snort -dev -K ASCII -l .

解释:会在当前目录下创建日志和抓取到的数据包,前提是要有数据可抓,并将数据转化为SACII,-dev表示的是d数据包的形式,e只抓头部,v是在控制台(终端)中显示。

3)其余参数:

-N:禁用日志记录,终端窗口(控制台)无法看到输出日志,除非使用了-v或-X -D:背景模式,命令行输出将提供使用参数请求的信息

-A:警报模式

 警报模式分为:

console:控制台上显示快速样式警告

cmg:带头部信息的警告

full:提供警报的所以信息,生成一个警报文件

fast:显示警报的消息,时间,源和目的地址及端口,生成一个警报文件

none:禁用警报。

4)修改/编辑警报规则

修改当前的配置规则文件路径: sudo gedit /etc/snort/rules/local.rules

或者直接找到local.rules进行修改即可。

修改规则的语法可参考以下:

1.编写一个规则来过滤 IP ID "35369 (过滤IP的ID字段)

alert tcp any any <> any any (msg: "ID TEST"; id:35369; sid: 100001; rev:1;)

解释:msg中双引号的内容为警报时显示的名称,,id表示检测的IP ID号,sid表示会话,rev表示版本。

示例:

检测到后就可以查看alert表,cat alert。

2.编写一个规则来过滤flag标志

alert tcp any any <> any any (msg: "FLAG TEST"; flags:S; sid: 100001; rev:1;)

主要区别在于将id换为了flags,其中S代表是SYN包,F代表FIN包,R代表RST包,P代表PSH(PHUS)包,A代表ACK包,U代表URG包。

示例:

能检测到有一个包是含SYN标志的。

3.过滤相同的源IP和目地IP

alert ip any any <> any any (msg: "SAME-IP TEST"; sameip; sid: 100001; rev:1;)

解释:ip即协议,sameip表示相同的项。

示例:

通过这条规则可以检测到13个警报,cat alert其中广播包不是我们需要的,所以减去3或减去6(广播包和IPV6的包)。

4.过滤数据包的大小

alert ip any any <> any any (msg: "SEQ TEST"; dsize:100<>300; sid: 100001; rev:1;)

解释:dsuze代表100到300之间。

示例:

5.过滤IP地址或者端口

alert icmp any any <> any any (msg: "ICMP Packet From "; sid: 100001; rev:1;)

解释:警报 icmp包 任何源ip 任何源端口<> 任何目的ip 任何目的端口(消息:“ICMP”;sid:100001;rev:1)

这条规则是过滤192.168.1.56的ICMP包。

alert icmp 192.168.1.56 any <> any any (msg: "ICMP Packet From "; sid: 100001; rev:1;)

范围包的写法:

alert icmp [192.168.1.0/24, 10.1.1.0/24] any <> any any (msg: "ICMP Packet Found"; sid: 100001; rev:1;)

这条规则是过滤21端口的TCP包。

alert tcp any any <> any 21 (msg: "FTP Port 21 Command Activity Detected"; sid: 100001; rev:1;)

范围包的写法 1-1024的端口,包含1024

alert tcp any any <> any 1:1024 (msg: "TCP 1-1024 System Port Activity"; sid: 100001; rev:1;)

写法2:

alert tcp any any <> any :1024 (msg: "TCP 0-1024 System Port Activity"; sid: 100001; rev:1;)

写法3:

alert tcp any any <> any [1,1024] (msg: "name"; sid: 100001; rev:1;)

示例:


http://www.ppmy.cn/server/166062.html

相关文章

pytorch ReSet18模型

import torch import torch.nn as nn from torchsummary import summary class Residual(nn.Module): def init(self,in_channel,out_channel,use_1conv False,strides1): super(Residual,self).init() self.Relu nn.ReLU() #################conv1和CONV2的 stride必须是相…

深度学习-第五章机器学习基础

前言 5.1 学习算法 5.1.1 任务 5.1.2 性能度量 5.1.3 经验 5.1.4 示例: 线性回归 5.2 容量、过拟合和欠拟合 5.2.1 没有免费午餐定理5.2.2 正则化 5.3 超参数和验证集 5.3.1 验证集的作用5.3.2 交叉验证 5.4 估计、偏差和方差 5.4.1 点估计5.4.2 偏差5.4.4 权衡偏差和方差以…

Docker在安装时遇到的问题(第一部分)

一、在用docker-config-manager安装yum源时出现错误 [rootlocalhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 已加载插件&#xff1a;fastestmirror, langpacks adding repo from: https://download.docker.com/linux/ce…

【React】路由处理的常见坑与解决方法,React Router 的动态路由与懒加载问题

在使用 React Router 时,动态路由和懒加载是非常常见的需求,但也可能会遇到一些坑。以下是常见问题以及对应的解决方法。 一、React Router 动态路由常见问题 1. 动态路由匹配问题 动态路由通常通过 :param 定义路径参数,但如果路径参数与静态路由有重叠,可能会导致匹配问…

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目&#xff0c;admin是8087&#xff0c;gateway是8088&#xff0c;consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目&#xff0c;那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

【Apache Paimon】-- 15 -- 利用 paimon-flink-action 同步 postgresql 表数据

利用 Paimon Schema Evolution 核心特性同步变更的 postgresql 表结构和数据 1、背景信息 在Paimon 诞生以前,若 mysql/pg 等数据源的表结构发生变化时,我们有几种处理方式 (1)人工消息通知,然后手动同步到数据仓库中(2)使用 flink 消费 DDL binlog ,然后自动更新 Hi…

Racecar Gym

Racecar Gym 参考&#xff1a;https://github.com/axelbr/racecar_gym/blob/master/README.md 1. 项目介绍 Racecar Gym 是一个基于 PyBullet 物理引擎的 reinforcement learning (RL) 训练环境&#xff0c;模拟微型 F1Tenth 竞速赛车。它兼容 Gym API 和 PettingZoo API&am…

嵌入式面试题 C/C++常见面试题整理_7

一.什么函数不能声明为虚函数? 常见的不能声明为虚函数的有:普通函数(非成员函数):静态成员函数;内联成员函数;构造函数;友元函数。 1.为什么C不支持普通函数为虚函数?普通函数(非成员函数)只能被overload&#xff0c;不能被override&#xff0c;声明为虚函数也没有什么意思…