nginx快速分析日志并找出攻击IP

第一步:分析NGINX日志

分析日志主要目的是寻找那些异常活跃的IP地址,通过以下命令可以快速找出。 

cat access.log | awk '{print$1}' |sort|uniq -c|sort -rn|head -10
cat access.log | awk '{print$1}' |sort|uniq -c|sort -rn|sed -n '10,20p' # 从第十行到第二十行

命令说明:

  • cat access.log:将access.log文件的内容输出到标准输出。

  • awk '{print $1}'awk是一个强大的文本处理工具。这里用于打印每一行的第一个字段。

  • sort:这个命令将awk命令的输出进行排序。

  • uniq -cuniq命令用于去除连续的重复行。-c选项表示在输出中显示每个唯一行出现的次数。

  • sort -rn:这个命令再次对uniq -c的输出进行排序,-r表示反向排序(即从大到小),-n表示按照数值排序。

  • head -10head命令用于显示文件的前几行。这里显示排序后的前10行。

     

将这些命令组合起来,整个命令的作用是:

读取access.log文件,从每一行中提取出第一个字段,对这些字段进行排序,统计每个字段出现的次数,并去除连续的重复项,按照出现次数从高到低排序,输出出现次数最多的前10个字段。

第二步:分析高频访问IP都干了些啥

接下来,我需要了解这些IP究竟做了些什么。通过以下命令,我将目光聚焦在104.28.229.11这个IP上。

grep '104.28.229.11' /var/log/nginx/access.log-20240428

第三步:封禁IP

找到了罪魁祸首,接下来就是封锁环节。我使用了iptables来拒绝这个IP的所有访问:

iptables -I INPUT -s 104.28.229.11 -j DROP
posted @   xiaobingch  阅读(659)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示