日志审计-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&…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
