第一步:分析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 -c
:uniq
命令用于去除连续的重复行。-c
选项表示在输出中显示每个唯一行出现的次数。 -
sort -rn
:这个命令再次对uniq -c
的输出进行排序,-r
表示反向排序(即从大到小),-n
表示按照数值排序。 -
head -10
:head
命令用于显示文件的前几行。这里显示排序后的前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