首页 > 系统相关 >nginx快速分析日志并找出攻击IP

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

时间:2024-06-09 12:21:52浏览次数:25  
标签:uniq log nginx IP access 命令 日志 排序

第一步:分析NGINX日志

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

cat access.log | awk '{print$1}' |sort|uniq -c|sort -rn|head -10

命令说明:

  • 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

标签:uniq,log,nginx,IP,access,命令,日志,排序
From: https://www.cnblogs.com/xiaobingch/p/18239424

相关文章

  • CSP历年复赛题-P3957 [NOIP2017 普及组] 跳房子
    原题链接:https://www.luogu.com.cn/problem/P3957题意解读:有n个格子,每个格子有不同的距离和分数,从起点,每次可跳距离为d,用g金币后可跳距离范围可以变成max(d-g,1)~d+g,求最小的g,使得可跳跃得分不少于k。解题思路:1、单调性分析:如果g越大,可跳跃的范围就越大,理论上能得的分数越......
  • 如何通过javascript自动增加markdown h1的文本内容?
    背景希望美化博客园博客,至少不希望文本那么密集地显示,而且想自动在headline插入表情符号,自动进行目录和文本缩进等等。问题如何通过javascript自动增加markdownh1的文本内容?方案在html中增加如下js脚本即可。document.addEventListener("DOMContentLoaded",function(){......
  • lipaper-基本概念
     一、关于SAT的基本概念 MakingDeductionMoreEffectiveinSATSolversIII.Preliminaries                      ......
  • 酷我音乐车机版 v6.3.9.40 祛广SVIP版
    软件介绍酷我音乐车机版是一款提供无损音质歌曲免费收听和下载的应用程序。随着现代汽车内置系统的功能日益增强,除了基本的导航功能和音频播放,这些系统还支持安装各种应用程序,其中包括无广告的专业版应用。这样的设计显著提升了车载系统的功能性和用户便利性。该应用的用户......
  • JavaScript 语法 随记(打印语句)
    JavaScript语法随记(打印语句)window.alert("Hello,World!-----1"),//弹出框 内显示内容document.write("Hello,World!-----2");//在新开网页上面显示内容console.log("Hello,World!--------3");//在控制台显示  (常用)console.error("Hello,World!-......
  • 打卡信奥刷题(67)用Scratch图形化工具信奥P1125 [NOIP2008 提高组] 笨小猴,写了一个好用
    [NOIP2008提高组]笨小猴题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn......
  • 从零手写实现 nginx-01-为什么不能有 java 版本的 nginx?
    前言大家好,我是老马。很高兴遇到你。作为一个java开发者,工作中一直在使用nginx。却发现一直停留在使用层面,无法深入理解。有一天我在想,为什么不能有一个java版本的nginx呢?一者是理解nginx的设计灵魂,再者java开发者用java语言的服务器不是更加自然吗。于是......
  • JavaScript:从基础到进阶的全面介绍
    JavaScript:从基础到进阶的全面介绍JavaScript(简称JS)是一种广泛用于Web开发的编程语言。它是一种轻量级的、解释型或即时编译的语言,具有函数优先的特点。JS最初是为了实现网页的动态效果而设计的,如今已发展成为前端开发、服务器端开发、移动开发等多个领域的重要工具。本文......
  • 从零手写实现 nginx-11-文件处理逻辑与 range 范围查询合并
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • Javascript全解(基础篇)
     语法与数据类型语法var\let\constvar声明一个变量,可选初始化一个值。let声明一个块作用域的局部变量,可选初始化一个值。const声明一个块作用域的只读常量。用 var 或 let 语句声明的变量,如果没有赋初始值,则其值为 undefined。如果访问一个未声明的变量会导致......