首页 » Linux » 正文

解决DOS攻击生产案例

最近在群里听见朋友抱怨说,网站老是某个IP被恶意访问,导致php进程和服务器负载都很高,晚上就试着写一个简单的脚本来预防一下DOS攻击。

提示:根据网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -A INPUT -s 10.10.10.1 -j DROP

#!/bin/bash
#Version:1.2 2015-12-27
#Description: Bash Script from 技术一流
log=/tmp/tmp.log
[ -f $log ] || touch $log
function add_iptables(){
while read line
do
ip=`echo $line|awk '{print $3}'`
count=`echo $line|awk '{print $1}'`
if [ $count -gt 100 ] && [ `iptables -L -n|grep "$ip"|wc -l` -lt 1 ]
then
iptables -I INPUT -s $ip -j DROP
echo "$line isdropped" >> /tmp/droplist.log
fi
done<$log } function main(){ while true do netstat -an|grep EST|awk -F: '{print $2}'|sort|uniq -c >$log
add_iptables
sleep 120
done
}
main

编辑完后,准备运行起来

现拿现用,亲测试功能生效,本教程是给大家提供一个思路,欢迎大家留言提出更好的建议。

本文共 5 个回复

  • wo 2016/01/01 15:34

    Happy New Year.

    • admin 博主 2016/01/05 18:45

      @ wo Thank you, the same to you!

  • 22564261 2016/01/03 22:00

    看看!

  • 本少 2016/01/06 16:22

    这个适合当个的,要是洪水的,那就没用了。

    • admin 博主 2016/01/07 21:00

      @ 本少 洪水没办法的,只能提供一个角度供大家思考。

发表评论