日志审计-graylog ssh登录超过6次告警
Apt 设备通过UDP收集日志,在gray创建接收端口192.168.0.187:1514
1、ssh登录失败次数大于5次
ssh日志级别默认为INFO级别,通过系统rsyslog模块处理,日志默认存储在/var/log/auth.log。
将日志转发到graylog
vim /etc/rsyslog.conf
文件末尾追加
if $programname == 'sshd' then @192.168.0.187:1514
重启rsyslog服务
sudo systemctl restart rsyslog
以错误密码登录
graylog查看,自动刷新日志
错误密码登录
页面可以看见产生的日志
完整的日志内容
Aug 21 07:00:18 a sshd[20129]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.0.108 user=root | [第一阶段]身份验证失败阶段 |
Aug 21 07:00:20 a sshd[20129]: Failed password for root from 192.168.0.108 port 61432 ssh2 | [第二阶段]首次密码验证失败阶段 |
Aug 21 07:01:00 a sshd[20129]: message repeated 4 times: [ Failed password for root from 192.168.0.108 port 61432 ssh2] | [第三阶段]多次重复的密码验证失败阶段 |
Aug 21 07:01:25 a sshd[20129]: Failed password for root from 192.168.0.108 port 61432 ssh2 | [第四阶段]最终的密码验证失败阶段 |
Aug 21 07:01:26 a sshd[20129]: error: maximum authentication attempts exceeded for root from 192.168.0.108 port 61432 ssh2 [preauth] | [第五阶段]超过最大尝试次数阶段。SSH 服务决定断开连接并阻止进一步的尝试 |
Aug 22 02:27:32 a sshd[26318]: Disconnecting authenticating user root 192.168.0.108 port 60267: Too many authentication failures [preauth] | [第六阶段]断开连接 |
Aug 22 02:27:32 a sshd[26318]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.0.108 user=root | [第七阶段]由PAM模块产生,提示认证失败一次基础上,又尝试了5次。即一共失败6次 |
在最后一个阶段产生的日志,PAM模块会记录首次失败后,继续尝试连接失败次数,
PAM 5 这里次数为5,即首次失败1次,加上后续尝试次数5,一共6次失败产生。
这个日志产生的条件
1、达到ssh服务配置最大尝试次数上限,服务器主动断开连接,PAM模块产生后续尝试次数
2、客户端主动断开连接,PAM统计后续尝试次数。
对于ssh登录失败,使用最后一个日志作为目标日志,因为他在下面每个场景都会产生
1、用户登录失败1次,断开连接。这里失败没有继续尝试,操作没有风险
2、用户多次尝试失败,断开连接,产生PAM,根据尝试次数决定是否告警
3、用户尝试多次,服务器主动段考连接,产生PAM,根据尝试次数,决定是否告警
这里有一个问题,如果客户在同一客户端,一直用不同的连接尝试访问,就不会产生PAM,也有暴力破解的风险,对这个情况,要加一个告警日志聚合,就是针对第二个的日志对ip聚合统计。如果超过规定次数也告警。
Graylog pipline清洗数据追加问题字段
ssh登录失败N次就告警
- 聚合场景一:存在PAM日志
配置 extractor提取,在数据进入stream前先解析,拿到次数,并追加failedtime:[次数]字段
对原始日志,配置json解析
到这里随便加载一个就行
选择正则表达式提取
正则表达式,可以提取次数
PAM (\d+) more authentication failure
转换成数值,后面告警进行聚合操作时,需要判断决定是否告警
- 聚合场景二:不存在PAM
Failed password字段存在,统计源目的ip出现次数,
pipline规则
提取服务器IP rule "gl2_remote_ip rename"
|
提取源IP rule "ssh password for from" |
总结:
PAM日志将会追加
trytime
1
Failed password将会追加
remote_addr
192.168.0.108
server_ip
192.168.0.18
Graylog Alert聚合规则
PAM日志聚合规则
1、字段匹配
首先过滤日志中的字段
message: "sshd" AND message: "PAM" AND message: "more authentication" |
在进行聚合匹配前先对周期内的日志根据源目的IP分类
对同类日志,配置聚合规则,失败次数大于4就告警
测试
尝试登录,且填写错误密码,登录6次
查看告警内容
问题:
1、graylog运行状态
graylog所有的功能都是基于日志的,如果不能连续提供日志,grayLog所有功能就会暂停;比如,现在存在匹配告警的日志,但此刻没有新的日志到graylog,那么这个应该匹配告警的日志,就不会产生告警,只能在之后继续收日志的时候才能继续工作上报告警,存在漏报的问题。(不过实际场景,日志应该会很多,持续上报,不存在这个问题)
相关文章:

日志审计-graylog ssh登录超过6次告警
Apt 设备通过UDP收集日志,在gray创建接收端口192.168.0.187:1514 1、ssh登录失败次数大于5次 ssh日志级别默认为INFO级别,通过系统rsyslog模块处理,日志默认存储在/var/log/auth.log。 将日志转发到graylog vim /etc/rsyslog.conf 文件末…...

4. kafka消息监控客户端工具
KafkaKing官网地址 : https://github.com/Bronya0/Kafka-King github下载地址 : Releases Bronya0/Kafka-King (github.com) (windows、macos、linux版本) 云盘下载地址 : https://pan.baidu.com/s/1dzxTPYBcNjCTSsLuHc1TZw?pwd276i (仅windows版本) 连接kafka 输入本地地址…...

鸿蒙环境和模拟器安装
下载华为开发者工具套件,并解压 https://developer.harmonyos.com/deveco-developer-suite/enabling/kit?currentPage1&pageSize10 双击dmg安装ide 复制并解压sdk 安装模拟器 https://yuque.antfin-inc.com/ainan.lsd/cm586u/po19k1mi9b2728da?singleDoc#…...

【图文并茂】ant design pro 如何对接后端个人信息接口
上一节我们有讲到如何对接登录接口的 【图文并茂】ant design pro 如何对接登录接口 仅仅能登录是最基本的,但是我们要进入后台还是需要另一个接口。 这个接口有两个作用: 来获取当前登录账号的信息,比如头像,用户名࿰…...

MySQL运维学习(1):4种日志
1.错误日志 mysql错误日志记录了mysql发生任何严重错误时的信息,若数据库无法正常使用时,可以先查看错误日志 默认情况下错误日志是开启的,文件名为/var/log/mysqld.log,如果文件不在默认位置,可以通过下面的命令查看…...

代码随想录算法训练营第二十天(二叉树 七)
day19 周日放假 今天依旧是二叉树环节 力扣题部分: 235. 二叉搜索树的最近公共祖先 题目链接:. - 力扣(LeetCode) 题面: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T …...

Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
🌟 Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发 🔹 django 通用表单视图 Django 的通用表单视图提供了快速创建和处理表单的功能,使得表单处理变得简洁而高效。以下示例展示了如何使用通用表单视图创建一个…...

Cookie和Session是什么?它们的区别是什么?
【知识】深入理解COOKIE&SESSION的原理和区别-腾讯云开发者社区-腾讯云 (tencent.com) Cookie和Session的区别(面试必备)_cookie和session的作用和区别-CSDN博客 Cookie和Session是什么?它们的区别是什么?_cookie里面的字符…...

Python正则表达式提取车牌号
在Python中使用正则表达式(Regular Expressions)来提取车牌号是一个常见的任务,尤其是在处理车辆信息或进行图像识别后的文本处理时。中国的车牌号格式多种多样,但通常包含省份简称、英文字母和数字。以下是一个使用Python正则表达…...

视觉引导机械臂学习记录
首先是几个位置,拍照位、示教位、目标位置。 流程主要是 1.首先选取一个拍照位,相机扫描点云,通过点云质量进行选取。并且制作点云模板,进行配准,如果配准分数高则模板选取正确。 2.用相机拍灰度图像,并…...

插屏广告在游戏APP中广告变现的独特优势
插屏广告是目前全球移动应用变现的主要广告形式之一,其优势在于可以快速收回成本,又能适应于多数缺乏激励场景的应用。 插屏广告通常在app使用过程中的自然过渡点,比如暂停场景切换的时候弹出,以图片、动图、视频等为表现形式的半…...

Python数据分析:数据可视化(Matplotlib、Seaborn)
数据可视化是数据分析中不可或缺的一部分,通过将数据以图形的方式展示出来,可以更直观地理解数据的分布和趋势。在Python中,Matplotlib和Seaborn是两个非常流行和强大的数据可视化库。本文将详细介绍这两个库的使用方法,并附上一个…...

Java CompletableFuture:你真的了解它吗?
文章目录 1 什么是 CompletableFuture?2 如何正确使用 CompletableFuture 对象?3 如何结合回调函数处理异步任务结果?4 如何组合并处理多个 CompletableFuture? 1 什么是 CompletableFuture? CompletableFuture 是 Ja…...

5个免费在线 AI 绘画网站推荐,附100+提示词!
在数字化时代,艺术创作与人工智能的结合已带来前所未有的创新体验。AI 绘画技术,基于先进的人工智能算法,为艺术创作提供了全新的视角和工具。当前,多个免费在线AI绘画平台应运而生,为创作者们提供了丰富的灵感和创作机…...

C++基础语法:while的使用
前言 "打牢基础,万事不愁" .C的基础语法的学习."学以致用,边学边用",编程是实践性很强的技术,在运用中理解,总结. 引入 while的使用是编写代码的基础内容.笔者的记忆力已不如以前,最近遇到了还花了不少功夫,可见是掌握地不够牢固.所以对while的思路和内容…...

鹏哥C语言自定义笔记重点(29-)
29.函数指针数组 30.void指针是不能直接解引用,也不能-整数。 void*是无具体类型的指针,可以接受任何类型的地址。 31.qsort:使用快速排序的思想实现一个排序函数(升序) 32. 33.地址的字节是4/8 34.char arr[]{a,b} sizeof(arr[0]1)答案是4࿰…...

代码随想录算法训练营第六十天 | dijkstra(堆优化版)、Bellman_ford 算法精讲
一、dijkstra(堆优化版) 题目连接:47. 参加科学大会(第六期模拟笔试) (kamacoder.com) 文章讲解:代码随想录 (programmercarl.com)——dijkstra(堆优化版) 二、Bellman_ford 算法精讲…...

boost::asio 库版本,C/C++代码编译兼容性
1、boost::asio::spawn 开启有栈(stackful)协同程序,版本改进及限制 > boost_1_80 版本应采用以下方式。 auto f [self, this](const boost::asio::yield_context& y) noexcept {bool success_ do_handshake(y);if (!success_) {clo…...

前端开发的项目导入方法与应用
前端项目启动问题归集: 由于前端的项目对于npm的版本有要求,需要将其升级到20,所以必要的时候通过nvm,或者直接下载最新的安装包进行npm覆盖安装。在项目目录中应用npm i安装node_modules,如果没有正常安装的话&#…...

C++:模拟实现string
前言: 为了更好的理解string底层的原理,我们将模拟实现string类中常用的函数接口。为了与std里的string进行区分,所以用命名空间来封装一个自己的strin类。 string.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1#include<iostream&…...

浅谈Kafka(一)
浅谈Kafka(一) 文章目录 浅谈Kafka(一)Kafa的设计是什么样的数据传输的事务定义消息队列的应用场景Kafka怎么样判断节点是否存活Kafka的消息是采用pull模式还是push模式Kafka在磁盘上的消息格式Kafka高效文件存储设计特点Kafka与传…...

Redis7基础篇(八)
redis集群 是什么 能干吗 集群算法-分片-槽位slot redis集群的槽位slot redis集群的分片 分片和槽位的优势 槽位映射的解决方案 上面的三个方案分别对应了小厂 中厂 大厂 哈希槽取余分区 缺点 一致性哈希算法分区 小总结 哈希槽分区 经典面试题 这里说的redis是ap而不是cp的 …...

Tauri简介
在Tauri应用中,Rust和前端(通常是基于Web技术如React、Vue或Angular)之间的交互是一个核心特性,它允许开发者利用Rust的强大功能和性能,同时保持前端开发的灵活性和丰富的生态系统。这种交互主要通过Tauri提供的API桥接…...

JavaWeb——MVC架构模式
一、概述: MVC(Model View Controller)是软件工程中的一种 软件架构模式 ,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户…...

Excel求和方法之
一 SUM(),选择要相加的数,回车即可 二 上面的方法还不够快。用下面这个 就成功了 三 还有一种一样快的 选中之后,按下Alt键和键(即Alt)...

Windows Server 域控制服务器安装及相关使用
目录 1.将客户机加入域 2.安装域控制器 3.新建域用户 4.设置用户登录时间,账户过期时间 5.软件分发 编辑 6.换壁纸 7.OU与GPO的概念 域为集中控制,拿下域控是拿下目标的关键 以Windows Server 2022为例 1.将客户机加入域 前提:客…...

linux基础命令(超级详细)
Linux 系统提供了丰富的命令行工具,用于各种文件操作、系统管理和网络配置等任务。以下是一些常用的 Linux 基础命令: 一、 文件和目录操作 1. ls: 列出目录内容 ls 列出当前目录的文件和目录 ls -l 以长格式列出文件和目录,包…...

大模型笔记之-XTuner微调个人小助手认知
前言 使用XTuner 微调个人小助手认知 一、下载模型 #安装魔搭依赖包 pip install modelscope新建download.py内容如下 其中Shanghai_AI_Laboratory/internlm2-chat-1_8b是魔搭对应的模型ID cache_dir/home/aistudio/data/model’为指定下载到本地的目录 from modelscope im…...

用TensorFlow实现线性回归
说明 本文采用TensorFlow框架进行讲解,虽然之前的文章都采用mxnet,但是我发现tensorflow提供了免费的gpu可供使用,所以果断开始改为tensorflow,若要实现文章代码,可以使用colaboratory进行运行,当然&#…...

IT计算机软件系统类毕业论文结构指南:从标题到结论的全景视角
一、背景 在快速发展的IT和人工智能领域,毕业论文不仅是学术研究的重要成果,也展示了学生掌握新技术和应用的能力。随着大数据和智能系统的复杂性增加,毕业设计(毕设)的论文章节安排变得尤为关键。一个结构清晰、内容详…...