You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从SSH攻击日志生成Top20末尾为0的唯一IP段列表?

解决SSH攻击IP网段统计的问题(Top20合并版)

我来帮你搞定这个需求!你的核心目标是从所有/var/log/secure日志(包括归档文件)里提取SSH攻击IP,合并同网段(最后一段改成0),再按攻击次数取Top20。咱们一步步修正命令:

一、处理「Failed password for」密码失败攻击

你原来的命令只能统计单个IP,没法合并网段,而且没覆盖归档日志。试试这个完整命令:

# 遍历所有secure日志,转成网段后统计Top20
grep -h "Failed password for" /var/log/secure* | grep -Po "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | awk '{split($0, octets, "."); print octets[1]"."octets[2]"."octets[3]".0"}' | sort | uniq -c | sort -nr | head -n 20

拆解下每个步骤做了啥:

  • grep -h "Failed password for" /var/log/secure*:扫所有secure开头的文件(包括归档的secure-YYYYMMDD),-h让输出不带文件名,只留日志内容。
  • grep -Po "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b":精准抓IP地址,\b是为了避免匹配到类似123.45.678.901这种非法IP或者数字片段。
  • awk '{split($0, octets, "."); print octets[1]"."octets[2]"."octets[3]".0"}':把IP按.拆成四段,把最后一段换成0,变成网段格式。
  • sort | uniq -c:排序后统计每个网段出现的次数。
  • sort -nr | head -n 20:按次数从多到少排序,取前20个网段。

二、处理「refused connect from」连接拒绝日志

你之前的命令没输出,是踩了个小坑:直接搜末尾是0的IP,但日志里的攻击者都是真实的单IP(比如116.110.220.123),不是预先生成的网段,肯定匹配不到!修正后的命令如下:

# 处理连接拒绝日志,合并网段取Top20
grep -h "refused connect from" /var/log/secure* | grep -Po "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | awk '{split($0, octets, "."); print octets[1]"."octets[2]"."octets[3]".0"}' | sort | uniq -c | sort -nr | head -n 20

三、合并两类攻击的统计结果(可选)

如果想把「密码失败」和「连接拒绝」的攻击次数合并统计,用这个命令:

# 合并两类日志,统计总攻击次数的Top20网段
grep -h -E "Failed password for|refused connect from" /var/log/secure* | grep -Po "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | awk '{split($0, octets, "."); print octets[1]"."octets[2]"."octets[3]".0"}' | sort | uniq -c | sort -nr | head -n 20

四、额外优化:排除合法IP网段

要是日志里有自己的管理IP或者合法网段,可以加个过滤步骤,比如排除192.168.1.0网段:

# 排除指定合法网段后的统计
grep -h "Failed password for" /var/log/secure* | grep -Po "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | awk '{split($0, octets, "."); seg=octets[1]"."octets[2]"."octets[3]".0"; if (seg != "192.168.1.0") print seg}' | sort | uniq -c | sort -nr | head -n 20

内容的提问来源于stack exchange,提问作者Joanne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:12:04