关于btmp失败登录时长异常及lastb日志合并统计的技术问询
关于btmp失败登录时长异常及lastb日志合并统计的技术问询
我来帮你拆解下这个问题,刚好对btmp和lastb的日志逻辑门儿清:
首先得纠正一个误区:lastb里显示的时间范围不是单一次登录尝试的时长,而是同一来源(用户+IP+登录类型,这里都是ssh:notty)的连续失败尝试的「起始到结束时间」。比如那条root的1小时25分的记录,意思是从12:34到14:00这段时间里,这个IP一直在用root账号刷ssh登录,中间没有出现足够长的中断,所以lastb就把这整段时间的所有尝试合并成了一条记录,而不是单一次尝试耗了这么久。
那为啥那两条telecoma的没合并成一条?大概率是中间出现了超过系统合并阈值的静默期——比如对方的扫描工具暂停了几分钟,或者网络断了一小会儿,系统就把前后的尝试分成了两条。至于具体的间隔阈值,不同发行版的默认设置略有差异,一般是几分钟(比如5分钟左右),没有绝对统一的标准,核心就是看两次尝试的间隔是否长到系统认为是「独立的尝试批次」。
至于怎么统计实际的尝试次数,给你两个实用方法:
- 用
utmpdump解析原始btmp日志:这个工具会把btmp里的每一条原始失败登录记录都打出来,每一次尝试都是单独的条目。比如执行utmpdump /var/log/btmp,然后用grep过滤目标IP和用户,再用wc统计数量。举个例子:utmpdump /var/log/btmp | grep -E '85.209.11.227|telecoma' | wc -l,不过要注意调整grep的匹配规则,避免误统计。 - 用
faillog命令:这是系统专门用来管理失败登录的工具,执行faillog -u root就能看到root账号的所有失败登录统计,包括来自每个IP的尝试次数、最近一次尝试的时间等,信息很直观。
如果想要更精细化的统计,也可以自己写个简单的shell脚本,基于utmpdump的输出做分组计数,按用户、IP、时间区间来归类,能更清晰看到每段时间的尝试频次。
备注:内容来源于stack exchange,提问作者Sinc
相关产品推荐
相关产品推荐

