本文章教程使用的是WSL的 Ubuntu 22.04.1 LTS 系统
且使用的管理员账户
文章目录
介绍
Snort是世界上最重要的开源入侵防御系统(IPS)。Snort IPS使用一系列规则 帮助定义恶意网络活动,并使用这些规则查找与它们匹配的数据包,以及 为用户生成警报。
Snort也可以内联部署以阻止这些数据包。鼻吸有三个主要用途: 作为像tcpdump这样的数据包嗅探器,作为数据包记录器 - 这对于网络流量调试很有用,或者它可以 用作成熟的网络入侵防御系统。
官方的操作文档有着所有的操作
这里只记录着前3比较简单的操作
安装
查看网卡信息
wsl不自带ifconfig工具
需要下载
aptinstall net-tools
查看网卡信息:
ifconfig
记住是在那个位置我的在eth0
安装snort
aptinstall -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)
sudotail -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元数据标记允许规则编写器嵌入有关规则的附加信息,通常采用键值格式
配置文件
…
版权归原作者 一只小余 所有, 如有侵权,请联系我们删除。