本方案适合作最后的处理方案。

在服务器遭到DDOS攻击后,防火墙、高防盾或者其他的方案都已经失去了效力,这时运维人员无任何方案可以处理,并且只能任由DDOS攻击或关闭服务器时,该方案可以有限的抵挡大部分DDOS攻击流量,恢复大部分的生产。

该方案并未成熟。

这种方案公司用户越少,效果越好。

环境:目前的技术上对DDOS攻击没有太好的解决办法,理论上的肉机数量可以无限多,但服务器给的带宽不可能也不能应对所有的肉鸡的攻击,因此市面上多用高防的盾机来被动的接受来自肉鸡的流量,理论上在高性能的盾机都能被肉鸡击倒,因此这种方案算是一种十分被动的解决方案。很多人选择用封IP的方式来处理DDOS攻击,这在肉鸡数量上的情况下是一种不错的解决方案,但肉鸡数量一多,与不做任何操作并无二样。

原理:目前的服务器防火墙的策略基本上对业务端口的访问不作限制,在遭受DDOS攻击时,我们可以刻意封闭业务端口的访问,只允许指定IP的访问,至于指定IP,可以在平常用脚本收集,当然平常还是对业务端口的访问不作限制。

因为用户数量占少数,用户中肉鸡的数量也占极少数,因此会有少部分用户被误封的情况,但是远好于所有用户均无法访问。

举个栗子:

我用文件active_ip记录有效用户的IP。

用文件 filter保存正常时候的IPTABLES规则。

在正常业务时,用脚本ip_witev2.sh在后台执行记录访问80端口用户的IP保存在active_ip中。

wite_ip=`awk -F" " '{print $1}' $Active_path`

#!/bin/bash

#sync the IP in access log into Active_path.

Add_white()

{

access_ip=`tail -n 150 $Log_path | awk -F" " '{print $1}' | uniq`

wite_ip=`awk -F" " '{print $1}' $Active_path`

for i in $access_ip

do

singel=0

for k in `awk '{print}' $Active_path`

do

[ $i = $k ] && { singel=1; break; }

done

[ $singel -eq  0 ] && echo $i >> $Active_path

done

}

Log_path="/home/wwwlogs/access.log"

Active_path="/scripts/active_ip"

[ -f $Active_path ] || touch $Active_path

#judge whether there are new data in acess.log or not.

while true

do

[ -f $Log_path ] && size1=`stat $Log_path | awk -F" " '/Size/ {print $2}'` && break

sleep 0.1

done

[ `stat $Active_path | awk -F" " '/Size/ {print $2}'` -le 1 ] &&  Add_white

sleep 5

在遭受DDOS攻击(有个判断的过程及触发条件)时自动执行切换IPTABLES规则的脚本

ddos_filter.sh 封闭所有的IP

#!/bin/bash

iptables -D INPUT -t filter -p tcp --dport 80 -j ACCEPT

iptables -D OUTPUT -t filter -p tcp --sport 80 -j ACCEPT

activeip_path="/scripts/active_ip"

for i in `awk '{print}' $activeip_path`

do

iptables -A INPUT -t filter -s $i -p tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -t filter -d $i -p tcp --sport 80 -j ACCEPT

done

在DDOS攻击完毕时(这个触发方式是怎样的?)自动切换为原来的IPTABLES规则。

这就是方案的大致原理。

本人学问不足读书少,文章远远未完善,错误的地方和有改正的地方还请各位大佬批评指正,集思广益,这不正是开源的思想。

解决(防止)DDOS攻击的另一种思想的更多相关文章

  1. linux用shell腳本解决被ddos攻击的问题

    最近网站常常被人DDOS所以写了一个小程序用来自动封锁IP,代码如下: !/bin/bash for (( ; ; )) do status=netstat -na|grep ESTABLISHED| ...

  2. 被DDOS攻击的解决方法

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

  3. DDoS攻击的几种类型

    DDoS攻击的几种类型   随着网络攻击的简单化,如今DDoS攻击已经不止出现在大型网站中,就连很多中小型网站甚至是个人网站往往都可能面临着被DDoS攻击的的风险.或许很多站长对DDoS攻击并不是很了 ...

  4. 服务器被ddos攻击?分析如何防止DDOS攻击?

    上周知名博主阮一峰的博客被DDOS攻击,导致网站无法访问而被迫迁移服务器的事情,引起了广大网友的关注及愤慨,包括小编的个人博客也曾接受过DDOS的“洗礼”,对此感同身受.所以,本文我们一起来了解下DD ...

  5. python编写DDoS攻击脚本

    python编写DDoS攻击脚本 一.什么是DDoS攻击 DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的, ...

  6. 什么是DDoS攻击?DDoS防御的11种方针详解

    对于遭受DDOS攻击的情况是让人很尴尬的,如果我们有良好的DDoS防御方法,那么很多问题就将迎刃而解,我们来看看我们有哪些常用的有效地方法来做好DDoS防御呢. 对于DDoS防御的理解: 对付DDOS ...

  7. 抗D十招:十个方法完美解决DDoS攻击防御难题

    可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略 ...

  8. 分享下今天研究的流量上限DDos攻击分析和解决方式

    分享下今天研究的流量上限DDos攻击分析和解决方式 常常听到或者碰到某个站点被攻击.一般都是流量攻击.今天自己写了个程序測下相关的上限,程序仅仅简单做了个get html操作(不包括图片等资源文件). ...

  9. 防范DDoS攻击的几种方式

    一.拒绝服务攻击的发展: 从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS.那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击 方式.而DdoS(Distri ...

随机推荐

  1. Linux学习之要点必备

    在本节课中我将会带领大家秒懂linux命令 要点一:常见基本命令格式 命令名称+选项+参数 例如:#mkdir -r /var/ruofeng/001/ 我们通过逐级创建目录方式解释这个例子,mkdi ...

  2. Could not find a valid gem 'compass' (>= 0) in any repository compass安装失败解决方案

    安装完成ruby gem 之后,通过 gem install compass 安装compass~~ 出现如下报错 Could not find a valid gem 'compass' (> ...

  3. 浏览器存储(cookie、localStorage、sessionStorage)

    互联网早期浏览器是没有状态维护,这个就导致一个问题就是服务器不知道浏览器的状态,无法判断是否是同一个浏览器.这样用户登录.购物车功能都无法实现,Lou Montulli在1994年引入到web中最终纳 ...

  4. ZooKeeper实践:(2)集群管理

    前言: 随着业务的扩大,用户的增多,访问量的增加,单机模式已经不能支撑,从而出现了从单机模式->垂直应用模式->集群模式,集群模式诞生了,伴随着一堆问题也油然而生,Master怎么选举,机 ...

  5. 华为路由器AR1220F-S的端口映射NAT配置(拨号光纤上网)

    telnet 登录 或者ssh登录路由器 //进入系统试图界面 sys-view //第一步. 添加acl规则, 允许内网本身访问对外的公网ip. 否则,只能外部人员访问你的公网ip [Huawei] ...

  6. int类型和byte类型的强制类型转换

    今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到In ...

  7. (转ORCLE导入导出命令)

    oracle数据库导入导出命令! Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份.   大多情况都可以用Oracle数据导入导出 ...

  8. Jmeter结构体系及运行原理

    Jmeter结构体系 把Jmeter的结构体系拆分为三维空间,如图: X1~X5:是负载模拟的一个过程,使用这些组件来完成负载的模拟: X1:选择协议,模拟用户请求,检查服务器响应是否正确,然后收集结 ...

  9. 10.Java 加解密技术系列之 DH

    Java 加解密技术系列之 DH 序 概念 原理 代码实现 结果 结束语 序 上一篇文章中简单的介绍了一种非对称加密算法 — — RSA,今天这篇文章,继续介绍另一种非对称加密算法 — — DH.当然 ...

  10. 图解Git命令

    上面的四条命令在工作目录.暂存目录(也叫做索引)和仓库之间复制文件. ·git add files把当前文件放入暂存区域. ·git commit 给暂存区域生成快照并提交. ·git reset - ...