iptables自动屏蔽恶意高流量ip

问题描述:

最近公司的nginx代理服务器,半夜都流量很高,可能是恶意用户开挂刷新网站页面。

如前段时间新闻上所说的黄牛党开挂刷新火车票网站一样,刷得网站几乎近似瘫了。因为我们公司网站是彩票开奖系统,也怕这样子恶意被刷,亟待解决。

解决办法:

这台服务器就是个nginx代理服务器,因此可以借助nginx的日志查看

cat /opt/webapps/log_nginx/518.access.log|awk -F‘?‘ ‘{print $1}‘|awk ‘{print $1}‘|sort -r| uniq -c |sort -nr |more

撸一下,发现很多ip访问此次搞得离谱了点

因为日志带时间的,设置好时间变量,换个更准的脚来撸撸

cat /opt/webapps/log_nginx/518.access.log|awk "/$tian\/$yue\/$nian/ {print \$1,\$6,\$7}"|awk -F‘?‘ ‘{print $1}‘|sort -r| uniq -c |sort -nr |awk ‘$1>3000{print $2}‘ >/opt/webapps/log_nginx/ip."$DATE"

于是呼我就把今天凌晨0点到现在的访问次数超过3000次且做相同件事,(我把访问提一个页面判定成同件事)全虑出来丢到ip."DATE"文件了,接下来就是再iptables添加DROP,让他继续嚣张……

终极!!!(上脚本)

#!/bin/bash
tian=`date |awk ‘{print $3}‘`
yue=`date |awk ‘{print $2}‘`
nian=`date |awk ‘{print $6}‘`
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
HOUR=`date +%H`
#MIN=`date +%M`
DATE=$YEAR-$MONTH-$DAY-$HOUR
cat /opt/webapps/log_nginx/518.access.log|awk "/$tian\/$yue\/$nian/ {print \$1,\$6,\$7}"|awk -F‘?‘ ‘{print $1}‘|sort -r| uniq -c |sort -nr |awk ‘$1>3000{print $2}‘ >/opt/webapps/log_nginx/ip."$DATE"
awk ‘{system("iptables -D INPUT -s "$0" -j DROP;iptables -I INPUT -s "$0" -j DROP ")}‘ /opt/webapps/log_nginx/ip."$DATE"
service iptables save
service iptables reload
#Now, start a truncated 518.access.log, to prepare for the next operation
cp /opt/webapps/log_nginx/518.access.log /opt/webapps/log_nginx/518.access.log_"$DATE"
echo "Let us go===========================================">/opt/webapps/log_nginx/518.access.log

最后两句是我在截断日志哦,不是百年之后,我的awk就跑不动了,log太大会叫的……

高大上的可以直接添加到计划任务里,不过可以有的ip并不恶意,人工稍瞥一眼更好

理想的结果还没考虑,

因为iptables规则太多会哭的,我想把每天规则注释上时间,以后每次执行脚了就把多少天前的解封了,免得百年之后全天下都进入我的黑名单了(如果our china人口不那么多)

iptables自动屏蔽恶意高流量ip

时间: 2024-08-25 23:05:33

iptables自动屏蔽恶意高流量ip的相关文章

自动屏蔽访问异常的ip脚本

#!/bin/bash netstat -an|grep 80 |awk -F[:' ']+ '{print $6}'  |sort -rn |uniq -c|awk '{ if($1>=25)print $2}'>/tmp/dropip #netstat -an|grep EST |awk -F[:' ']+ '{print $6}'  |sort -rn |uniq -c |sort -rn |head -10 |awk '{ if($1>15)print $2}'>/tmp/

自动屏蔽IP

问题 自动屏蔽IP 解决方案 详细操作查看工具说明工具下载地址 For Redhat 7.x/8.x/9.xhttp://swsoft.com.cn/downloads/Prima/Tools/firewall-1.0RC1-rh.tar.gz For Fedora Linux Core 1/2/3http://swsoft.com.cn/downloads/Prima/Tools/firewall-1.0RC1-fc.tar.gz 评分 原文地址:https://www.cnblogs.com

高并发高流量网站架构详解

(推荐)高并发高流量网站架构详解 Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导 向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念,使得新 生的网站有了新的特点--高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求. 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺

高并发高流量网站架构(转)

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念,使得新生的网站有了新的特点--高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求. 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺点比较.然后在局域网层次对第四层交换技

(推荐)高并发高流量网站架构详解

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导 向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念,使得新 生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求. 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺点比较.然后在局域网层 次对第四层

高并发高流量的网站架构设计 (转)

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求. 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺点比较.然后在局域网层次对第四层交换技

使用nginx和iptables做访问权限控制(IP和MAC)

之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只是对特定的人提供服务,而且局域网IP和MAC都是固定的,所以可以直接用白名单,其他的全部拒绝 /**************************************使用nginx做访问权限控制*********************************/ 先在nginx做设置 在/et

【转载】新手如何快速打造高流量网站

之前看过很多帖子,说如何如何能有效提高流量,说几天内便可做到流量破万.对于这种言论,很多站长予以痛击,本人抱持的观点也是,短时间也就是所谓 的几天内不通过搜索引擎达到上万流量是可能的,通过外部流量的导入,确实是可能实现的.而今天,我们则要来谈谈如何通过引擎在最短的时间内打造一个流量破 万的站点. 众所周知,建站需要不断地更新维护,才有可能被搜索引擎收录并且经过一段时间后才会在搜索引擎内有排名.有了排名后,自然 就会带来流量.当然, 罗马不是一天建成的,我下面的不是提供大家数日内完成一个破万流量站

如何优化高流量站点的nginx和php-fpm的几个方面

通信机制的选择 nginx和php-fpm 是使用 tcp socket 还是 unix socket ? 合理的配置nginx处理请求数 #cat /proc/cpuinfo | grep processor #查看服务器cpu的处理器数量 # vi /etc/nginx/nginx.conf worker_processes 16; #修改为处理器数量 events { worker_connections 4096; # 单个woker进程最大连接并发数 multi_accept on;