当前位置: 首页 > 工具软件 > DDoS Deflate > 使用案例 >

DDoS deflate 解决服务器被DDOS攻击的问题

丌官开宇
2023-12-01

23.2.1 如何查是否受到了DDOS攻击

DDOS概述:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

1、编写查看DDOS攻击的脚本内容

[root@zmedu63 ~]# vim ddos-test.sh #写入以下内容
#!/bin/bash
netstat -ntu | awk ‘{print $5}’ | cut -d: -f4 | sort | uniq -c | sort -n
[root@zmedu63 ~]# chmod +x ddos-test.sh
注释:
#!/bin/bash
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
截取外网IP和端口 截取外网的IP以:为分隔符 |排序 | 排除相同的记录 | 排序并统计

注:这个脚本在不同的机器上执行时,因为 print $5 取得的结果不一样,所以需要根据实际情况,改变cut -d: -f1 中fn的值。 如果-f1 不行,就使用f4
cut -d: -f1 #以冒号为分隔符,取第一列的值。

2、模拟DDOS攻击

[root@zmedu63 ~]# ab -n 100 -c 10 http://192.168.1.63/index.html #开始攻击
[root@zmedu63 ~]# ./ddos-test.sh #查看已经建立的网络连接数
1 42.99.254.162
1 Address
1 servers)
2 192.168.1.106
2 192.168.1.23
102 192.168.1.63

23.2.2 实战:使用DDoS deflate 解决服务器被DDOS攻击的问题

1、防止DDOS攻击的方法

方法一: 手动写iptables 规则,ip地址数比较少时
方法二: 检测到访问次数比较多的ip地址后,自动添加iptables规则。如fail2ban或linux+DDoS deflate

2、DDoS deflate介绍

DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP。
方法三:加大带宽,增加服务器,使用CDN技术

3、检测是否有DDOS攻击

执行:
[root@zmedu63 ~]# netstat -ntu | awk ‘{print $5}’ | cut -d: -f4 | sort | uniq -c | sort -n
如果发现某个IP连接数据上百的链接,说明就有DDOS攻击。

下面开始安装DDos deflate

4、安装DDoS deflate

[root@zmedu63 ~]# wget http://www.inetbase.com/scripts/ddos/install.sh
下载DDoS deflate,保证可以上网
[root@zmedu63 ~]# chmod 700 install.sh #添加权限
[root@zmedu63 ~]#./install.sh #执行
Installing DOS-Deflate 0.6
Downloading source files…done
Creating cron to run script every minute…(Default setting)…done
Installation has completed.
Config file is at /usr/local/ddos/ddos.conf
Please send in your comments and/or suggestions to zaf@vsnl.com
###################################################
###############################################

“Artistic License”

Preamble

The intent of this document is to state the conditions under which a

Package may be copied, such that the Copyright Holder maintains some

q 输入q 退出。

5、查看安装后的配置文件

DDoS deflate的默认配置位于/usr/local/ddos/ddos.conf ,内容如下:
[root@zmedu63 ~]# vim /usr/local/ddos/ddos.conf

Paths of the script and other files

PROGDIR="/usr/local/ddos"
PROG="/usr/local/ddos/ddos.sh" #要执行的DDOS脚本
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" #IP地址白名单,注:在这个文件中IP不受控制。
CRON="/etc/cron.d/ddos.cron" #定时执行程序

6、查看定时任务

[root@zmedu63 ~]# cat /etc/cron.d/ddos.cron
SHELL=/bin/sh
0-59/1 * * * * root /usr/local/ddos/ddos.sh >/dev/null 2>&1

23.2.3 使用DDos deflate

实战场景: 如果1分钟内,一个IP地址对我们服务器访问150次以上,就认为发生DDOS,使用iptables把这个IP地址自动屏蔽掉。

1、修改配置文件

[root@zmedu63 ~]# vim /usr/local/ddos/ddos.conf
配置文件中的注释如下:

frequency in minutes for running the script
Caution: Every time this setting is changed, run the script with --cron
option so that the new frequency takes effect

FREQ=1 #检查时间间隔,默认1分钟

How many connections define a bad IP? Indicate that below.

NO_OF_CONNECTIONS=150 #最大连接数,超过这个数IP就会被屏蔽,一般默认即可

APF_BAN=1 (Make sure your APF version is atleast 0.96)
APF_BAN=0 (Uses iptables for banning ips instead of APF)

APF_BAN=1 #使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。
改:19 APF_BAN=1
为:19 APF_BAN=0

KILL=0 (Bad IPs are’nt banned, good for interactive execution of script)
KILL=1 (Recommended setting)

KILL=1 #是否屏蔽IP,默认即可

An email is sent to the following address when an IP is banned.
Blank would suppress sending of mails

EMAIL_TO=kill@zmedu.com #当IP被屏蔽时给指定邮箱发送邮件报警,换成自己的邮箱即可

Number of seconds the banned ip should remain in blacklist.

BAN_PERIOD=600 #禁用IP时间,默认600秒,可根据情况调整
用户可根据给默认配置文件加上的注释提示内容,修改配置文件。
注:安装后,不需要手动运行任何软件,因为有crontab计划任务,每过一分钟,会行自动执行一次。检查是否有不正常的访问量

2、 在zmedu64上模拟DDOS

[root@zmedu64 ~]# ab -n 1000 -c 10 http://192.168.0.107/index.html
等待一分钟后,在xudgod63查看结果,多了一条规则
[root@zmedu63 ~]# iptables -L -n #可以看到已经把192.168.1.64给拒绝了。
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all – 192.168.1.64 0.0.0.0/0

3、卸载软件

卸载软件的本质: 删除软件安装后的文件
安装软件的本质:把你写的软件文件,复制对应的目录下
[root@zmedu63 ~]# wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
[root@zmedu63 ~]# chmod +x uninstall.ddos
[root@zmedu63 ~]# ./uninstall.ddos

 类似资料: