最近网站常常被人DDOS所以写了一个小程序用来自动封锁IP,代码如下:

!/bin/bash

for (( ; ; ))

do

status=netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -10|grep -v -E '127.0|192.168|118.163.81|66.249|125.227.190'

if [[ ${#status} > 0 ]]; then

NUM=echo $status|awk '{print $1}'

IP=echo $status|awk '{print $3}'

result=echo "$NUM > 150" | bc

	echo $result '|' $IP '|' $NUM

	if  [[ $result = 1 ]] && [[ ${#IP} > 0 ]]; then
echo $IP '=>' $NUM
/sbin/iptables -I INPUT -s $IP -j DROP
fi
fi sleep 30

done

把上边的代码存成autorun.sh,然后增加执行权限,放入到开机启动项里,重新启动服务器即可

以后他就会自动每间隔30秒侦测一下是否被人攻击,一旦发现立即封锁IP

linux用shell腳本解决被ddos攻击的问题的更多相关文章

  1. 被DDOS攻击的解决方法

    在DDOS分布式借"机"堵塞正常访问的非法攻击中,任何技术高手都成了文科生.只能用非专业的方法解决.DDOS攻击的重心是堵塞服务器,给域名解析访问造成困难,被攻击后我们可以采用以下 ...

  2. [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法

    [From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952 ...

  3. Linux下防御DDOS攻击的操作梳理

    DDOS的全称是Distributed Denial of Service,即"分布式拒绝服务攻击",是指击者利用大量“肉鸡”对攻击目标发动大量的正常或非正常请求.耗尽目标主机资源 ...

  4. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  5. 防DDOS攻击SHELL脚本

    最近一段时间服务器频繁遭到DDOS攻击,目前只能通过封IP来源来暂时解决.IP不源变化多端,光靠手工来添加简直是恶梦,想了个方法,用SHELL来做. 比较简单,但很实用:) 以下内容根据作者原文进行适 ...

  6. linux笔记_防止ddos攻击

    一.什么是DoS攻击 DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带宽攻 ...

  7. loadrunner调用plink,远程linux执行shell命令

    loadrunner调用plink,远程linux执行shell命令   脚本: Action() {   char* cmd; cmd = lr_eval_string("C:\\\&qu ...

  8. Linux+DDoS deflate 预防DDoS攻击

    使用DDoS脚本防止DDoS攻击   使用DDoS脚本防止DDoS攻击: DDoS概述: 分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务 ...

  9. Linux下防御ddos攻击

    导读 Linux服务器在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等.通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长.比较彻底的解决方法是添置硬件防火墙.不过 ...

随机推荐

  1. IE下Debug BHO

    主要就是修改注册表键值使IE不创建多个进程:HKLM\Software\Microsoft\Internet Explorer\Main - TabProcGrowth 但需要注意的是这种情况下,vs ...

  2. freeCodeCamp:Truncate a string

    截断一个字符串! 如果字符串的长度比指定的参数num长,则把多余的部分用...来表示. 切记,插入到字符串尾部的三个点号也会计入字符串的长度. 但是,如果指定的参数num小于或等于3,则添加的三个点号 ...

  3. servlet 生命周期

    Ò编写一个HelloWordServlet类

  4. 【Java学习笔记】Map借口的子接口----HashMap

    存储在HashMap集合中的元素,必须覆盖hashCode和equals方法(与HashSet类似)   import java.util.HashMap; import java.util.Iter ...

  5. 6.5 为什么Android用Java不用c实现?

    C/C++过于底层,开发者要花很多的经历对C/C++的语言研究清楚,例如C/C++的内存机制,如果稍不注意,就会忘了开启或者释放.而Java的GC会自动处理这些,省去了很多的时间让开发者专注于自己的业 ...

  6. International Conference in 2015

    Call for Paper International Conference on Computer Vision(ICCV2015, Santiago, Chile). (deadline: Ap ...

  7. protobuf-net 与 C#中几种序列化的比较

    C#中几种序列化的比较,此次比较只是比较了 序列化的耗时和序列后文件的大小. 几种序列化分别是: 1. XmlSerializer 2. BinaryFormatter 3. DataContract ...

  8. Mac上远程桌面连接Windows Server 2012 R2

    在将一台服务器的操作系统由Windows Server 2012升级为Windows Server 2012 R2之后,在Mac电脑上用微软的远程桌面软件怎么也连不上服务器,错误信息如下: Remot ...

  9. Mac OS X上用CoreCLR运行一个真正的.NET控制台程序

    这个真正的控制台程序来自corefxlab,名叫CoreClrHelloWorld,是一个跨平台的.NET控制台演示程序,可以显示微软.Linux.苹果的logo. CoreClrHelloWorld ...

  10. 从Java看跨平台的.NET需要些什么?

    跨平台的运行时(Runtime):JRE(JVM)  -> .NET Core CLR . 跨平台的编译器(Compiler):javac  -> Roslyn [github.com/d ...