设为首页 收藏本站
查看: 1315|回复: 0

[经验分享] iptables自动屏蔽恶意高流量ip

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-8-14 17:37:46 | 显示全部楼层 |阅读模式
问题描述:
最近公司的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人口不那么多)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-23823-1-1.html 上篇帖子: mrtg监控交换机报错SNMP Error: no response received 下篇帖子: linux分区工具fdisk的使用以及挂载设备 流量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表