加载中...
返回

Graylog使用小记——2

前一篇使用小记 中,我记录了如何利用Docker安装运行 Graylog 、如何设置配置文件、如何使用Graylog的输入流、提取器、事件和告警,并在最后记录了我个人对提取器、筛选和事件的理解。

我对这个产品还有一些地方比较好奇:

  • 第一个问题是我在上一篇的分析当中遗留的: ⌈ 不过还是有个小bug,事件聚合的时候只能考虑具有 相同源IP 的登录失败日志,不过这一点可能是Graylog的进阶用法,今天还没探索到这个地步 ⌋

  • 第二个问题,如何把事件串联起来。例如在对 暴力破解成功 进行告警时,我们首先要产生一个 暴力破解 的事件,这个事件当中可能包含比如说 10 条的登录失败日志,紧接着要产生一个 登录成功 事件,这个事件只需要由一条登录成功日志来触发;这两个事件先后发生时,就代表了 暴力破解成功 的情况。

0 预设环境

今天,我打算以真正的Linux上的SSH日志为例,来研究一下Graylog要如何处理以上两个问题。

日志样例:

Jul 12 06:09:43 combo sshd(pam_unix)[4048]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=68.143.156.89.nw.nuvox.net  user=root

Jun 30 22:16:32 combo sshd(pam_unix)[19434]: session opened for user test by (uid=509)

对应配置了一系列提取器:

其中只有 SSH_PAM_SESSION_OPEN 是用于匹配登录成功的日志,其余提取器均用于登录失败日志。

这里有一个我比较不满意的点,就是配置正则提取器的时候只能提取出 第一个 匹配组(match group);当我希望从登录失败日志当中提取较多信息的时候,就要配置很多个提取器(比如上图当中配置了提取远程主机、用户名、时间、进程ID等信息的提取器),这些提取器用的其实都是同一个正则,完全没必要进行这么多冗余配置。

上图中有两个提取器值得展开说明,它们是 SSH_PAM_AUTH_FAILURESSH_PAM_SESSION_OPEN

可以看到,这两条正则其实就是把整个消息体都匹配出来,放到了对应的自定义字段里。这样做的意义是便于使用我们在 前一篇使用小记 当中提到的筛选方式 _exists_: [xxx] 来筛选出所有满足正则的消息,相当于绕了个弯来实现 正则筛选 ,这么做的原因是按照官方Demo来写正则筛选语句根本筛不到对应的日志,我觉得没必要浪费时间来研究这种不属于我的问题。

1 聚合

在前一篇使用小记当中,我提到对于SSH暴力破解攻击来说,只有登录失败日志都来自于 同一IP 才有意义,否则可能由于多用户并发登录失败引发系统误报。此外,也不能每一条登陆失败日志就触发一次事件告警,而应该等到登录失败日志出现了比如说 10 次以后,再产生一条告警。

这样的功能可以通过 事件聚合 来实现。在定义事件的【Filter & Aggregation】一栏当中,可以配置聚合设置,例如对于登录失败日志,我们以 REMOTE_HOST 即SSH登录的源主机名来作为分类,并为源主机名配置一个阈值 10 ,这样,仅当来自 某个 主机的SSH登录失败次数达到 10 以上时,才会产生一条事件。

此外,在【Fields】一栏中添加 REMOTE_HOST 字段,并把这个字段设置为 key

一切就绪之后,把日志打到输入流中 cat linux_log.log | nc 127.0.0.1 1514

2 关联

其实事件关联是我最期待实践的功能,however:

寄!

其实我研究Graylog的初衷就是为了提高工作当中问题定位的效率,事件关联是一项非常有用的功能,它能够帮助我们定义出符合业务逻辑的事件链条,令我们更好地从日志当中提取出有效信息。不过,既然是高级功能,玩不到的话也就罢了,至此所体验的这些,大概也比手动搜索keyword要强上许多,还是期待它投入实战的那天罢。

9 comments
Anonymous
Markdown is supported
@mpv945
mpv945commentedover 2 years ago

添加图片,如果使用外部图床的http链接 。图片无法点击放大,你那边怎么解决的?

@SGS4ever
SGS4evercommentedover 2 years ago

@mpv945
添加图片,如果使用外部图床的http链接 。图片无法点击放大,你那边怎么解决的?

我的博客没有使用图床,所以没办法帮到你~

@Celetherin
Celetherincommentedover 2 years ago

您好,我也是使用的stack主题,我在照着您的方法添加返回顶部按钮时,遇到了按钮虽然出现、也能够点击,但无法实现实际上的返回顶部功能的问题,我没有任何的代码知识,不知道您有没有解决方法?
另外,也是想提醒一下其他需要这篇教程的朋友,最新版的stack主题,添加返回按钮的组件应该在layouts/partials/sidebar/right.html, 在layouts/_default/single.html中添加代码会导致出现两个右边栏。

@jsjcjsjc
jsjcjsjccommentedabout 2 years ago

请教一下博主,如何优雅的给stack主题添加广告哈?
我只想在左或者右侧边栏底部,或者每篇文章底部添加一个小小的广告,但是默认似乎的满屏广告哈~~
感谢

@SGS4ever
SGS4evercommentedabout 2 years ago
@ClimbingMouse
ClimbingMousecommentedalmost 2 years ago

你好,按照你的方法设置页面载入动画,这个动画不会停止咋办啊

@46fafa
46fafacommentedover 1 year ago

博主你好,请问一下主页布局修改哪里的代码如何作用于整个网页,我发现修改后的布局只存在主页和前两篇文章,其他部分还是没修改的样子

@4kohakunushi
4kohakunushicommentedabout 1 year ago

你好,关于左侧栏图标高亮我这里存在一些问题想请教你。我取消了原本主页直接抓取post的内容在中间显示的版块,这个部分改成了其他东西,与此同时新增了一个抓取post信息的与links、search等目录并列的一个目录,现在的问题是这些部分虽然都能正常显示,但是对应的抓取post的那个目录无法选中以后高亮,应该修改增加什么才能让它也可以选中后高亮呢?

@SGS4ever
SGS4evercommentedabout 1 year ago

首先我只能基于本文使用的Stack版本来尝试解答,因为没看过当前的Stack主题的代码~
我重新翻了下此前写的关于高亮的内容,理论上只要你的post页面的标题在menu配置中即可高亮。如果post页面是你站点的根路径,那应该可以参考我的文章里写的方法,修改下active的触发逻辑~

@4kohakunushi
你好,关于左侧栏图标高亮我这里存在一些问题想请教你。我取消了原本主页直接抓取post的内容在中间显示的版块,这个部分改成了其他东西,与此同时新增了一个抓取post信息的与links、search等目录并列的一个目录,现在的问题是这些部分虽然都能正常显示,但是对应的抓取post的那个目录无法选中以后高亮,应该修改增加什么才能让它也可以选中后高亮呢?

有朋自远方来,不亦说乎?