wordpress 网站地图类,两学一做专题网站,网页设计与制作代码软件,做网站找人Apt 设备通过UDP收集日志#xff0c;在gray创建接收端口192.168.0.187:1514 1、ssh登录失败次数大于5次
ssh日志级别默认为INFO级别#xff0c;通过系统rsyslog模块处理#xff0c;日志默认存储在/var/log/auth.log。
将日志转发到graylog
vim /etc/rsyslog.conf
文件末…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 uid0 euid0 ttyssh ruser rhost192.168.0.108 userroot [第一阶段]身份验证失败阶段 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 uid0 euid0 ttyssh ruser rhost192.168.0.108 userroot [第七阶段]由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 renamewhen has_field(gl2_remote_ip) then set_field(server_ip, to_string($message.gl2_remote_ip)); end 提取源IP rule ssh password for fromwhen contains(value: to_string($message.message), search: ssh, ignore_case: false) then let m regex((Failed|Accepted) password for (\\S) from (\\S)\\sport\\s(\\d),to_string($message.message)); set_field(command, to_string(m[0])); set_field(account, to_string(m[1])); set_field(remote_addr, to_string(m[2])); set_field(remote_port, to_string(m[3])); end 总结
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那么这个应该匹配告警的日志就不会产生告警只能在之后继续收日志的时候才能继续工作上报告警存在漏报的问题。不过实际场景日志应该会很多持续上报不存在这个问题