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

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

在这里插入图片描述

文章目录

  • 介绍
  • 安装
    • 查看网卡信息
    • 安装snort
    • 配置网卡
    • 查看snort版本
  • 使用
    • 嗅探器模式
      • 参数
      • 使用
    • 数据包记录模式
      • 这里常用的参数有
      • 启动
      • 查看日志
    • 网络入侵检测模式
      • 参数
      • 新建并且编辑规则文件
      • 修改配置文件
      • 启动
      • 练习
  • 可能错误
    • ERROR: Can't start DAQ (-1) - socket: Operation not permitted!
    • Can't start DAQ (-1) - SIOCGIFHWADDR: No such device!或者Acquiring network traffic from 不是自己的网卡
    • 规则格式介绍
    • 配置文件

介绍

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

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

官方的操作文档有着所有的操作
这里只记录着前3比较简单的操作
计算机网络安全--snort介绍--linux下安装和使用_第1张图片

安装

查看网卡信息

wsl不自带ifconfig工具
需要下载

apt install net-tools

计算机网络安全--snort介绍--linux下安装和使用_第2张图片
查看网卡信息:

ifconfig

记住是在那个位置我的在eth0
计算机网络安全--snort介绍--linux下安装和使用_第3张图片

安装snort

apt install -y snort

下载完后就会弹出配置
计算机网络安全--snort介绍--linux下安装和使用_第4张图片

需要请使用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介绍--linux下安装和使用_第5张图片

使用

嗅探器模式

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

计算机网络安全--snort介绍--linux下安装和使用_第6张图片
计算机网络安全--snort介绍--linux下安装和使用_第7张图片

计算机网络安全--snort介绍--linux下安装和使用_第8张图片

数据包记录模式

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

这里常用的参数有

-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介绍--linux下安装和使用_第9张图片

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

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

启动

计算机网络安全--snort介绍--linux下安装和使用_第10张图片

查看日志

计算机网络安全--snort介绍--linux下安装和使用_第11张图片
计算机网络安全--snort介绍--linux下安装和使用_第12张图片

网络入侵检测模式

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

参数

-c	指定配置文件

新建并且编辑规则文件

规则

目录

 cd /etc/snort/rules/

计算机网络安全--snort介绍--linux下安装和使用_第13张图片

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

计算机网络安全--snort介绍--linux下安装和使用_第14张图片
ping
计算机网络安全--snort介绍--linux下安装和使用_第15张图片
查看日志
计算机网络安全--snort介绍--linux下安装和使用_第16张图片

练习

查看它检测到其他电脑对你的电脑发出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一起用
classtype snort根据其默认的规则文件,将攻击进行相应分类,并具有不同的优先级
1-4,1最高,规则分类被定义在classification.config文件中。(优先级1(高)是最严重的,优先级4(非常低)是最不严重的。)
priority 规则指定严重性级别
metadata 元数据标记允许规则编写器嵌入有关规则的附加信息,通常采用键值格式

配置文件

你可能感兴趣的:(计算机网络安全,web安全,网络,linux)