获得具有SSH攻击者的uniq IP范围的前20名列表,并在末尾以.0对其进行排序。可能吗?

问题描述 投票:0回答:1

我希望我能很好地解释这一点。我会尽力的由于存在许多类似的问题和示例,因此它们都不满足我的需求。我正在尝试从服务器中删除这些所谓的“攻击者”。

我正在寻找:

  • 列表应排序;假设前20名
  • 列表应为uniq;并包含唯一的IP范围列表
  • 列表仅应显示末尾带有0的IP

例如,我们的日志中有以下IP:

122.155.223.48
116.110.220.28
116.110.220.166
116.196.94.108
118.70.113.1
116.110.220.94
116.110.220.34
118.70.113.2
125.19.37.226

现在我需要一个像这样显示它们的列表:

4x 116.110.220.0
2x 118.70.113.0
1x 116.196.94.0
1x 122.155.223.0
1x 125.19.37.0

如您所见,它将最后一个八进制(?)合并为0,并按点击量对其进行排序。这样,我可以在3台服务器上阻止整个范围。

哪个日志以及要查找什么字符串?

我想扫描服务器上的所有/ var / log / secure日志以获取以上列表,其中包括(示例):secure,secure-20191124,secure-20191201等

要查找的字符串是:密码失败

我到目前为止使用的代码是:

grep "Failed password for" /var/log/secure | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" | sort | uniq -c

这部分起作用,但是它不对20个IP进行排序,也不对最后八度为.0进行排序(并合并这些IP),并且不对排名靠前的匹配项进行排序(只是随机)。] >

是否有针对性的解决方案?

提前感谢您的帮助!

我希望我能很好地解释这一点。我会尽力的由于存在许多类似的问题和示例,因此它们都不满足我的需求。我正在尝试删除这些-...

regex sorting grep uniq
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.