首页 » 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

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

发表评论