DDoS deflate 解决服务器被DDOS攻击的问题
23.2.1 如何查是否受到了DDOS攻擊
DDOS概述:分布式拒絕服務(wù)(DDoS:Distributed Denial of Service)攻擊指借助于客戶/服務(wù)器技術(shù),將多個(gè)計(jì)算機(jī)聯(lián)合起來作為攻擊平臺(tái),對(duì)一個(gè)或多個(gè)目標(biāo)發(fā)動(dòng)DDoS攻擊,從而成倍地提高拒絕服務(wù)攻擊的威力。
1、編寫查看DDOS攻擊的腳本內(nèi)容
[root@zmedu63 ~]# vim ddos-test.sh #寫入以下內(nèi)容
#!/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
截取外網(wǎng)IP和端口 截取外網(wǎng)的IP以:為分隔符 |排序 | 排除相同的記錄 | 排序并統(tǒng)計(jì)
注:這個(gè)腳本在不同的機(jī)器上執(zhí)行時(shí),因?yàn)?print $5 取得的結(jié)果不一樣,所以需要根據(jù)實(shí)際情況,改變cut -d: -f1 中fn的值。 如果-f1 不行,就使用f4
cut -d: -f1 #以冒號(hào)為分隔符,取第一列的值。
2、模擬DDOS攻擊
[root@zmedu63 ~]# ab -n 100 -c 10 http://192.168.1.63/index.html #開始攻擊
[root@zmedu63 ~]# ./ddos-test.sh #查看已經(jīng)建立的網(wǎng)絡(luò)連接數(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 實(shí)戰(zhàn):使用DDoS deflate 解決服務(wù)器被DDOS攻擊的問題
1、防止DDOS攻擊的方法
方法一: 手動(dòng)寫iptables 規(guī)則,ip地址數(shù)比較少時(shí)
方法二: 檢測(cè)到訪問次數(shù)比較多的ip地址后,自動(dòng)添加iptables規(guī)則。如fail2ban或linux+DDoS deflate
2、DDoS deflate介紹
DDoS deflate是一款免費(fèi)的用來防御和減輕DDoS攻擊的腳本。它通過netstat監(jiān)測(cè)跟蹤創(chuàng)建大量網(wǎng)絡(luò)連接的IP地址,在檢測(cè)到某個(gè)結(jié)點(diǎn)超過預(yù)設(shè)的限制時(shí),該程序會(huì)通過APF或IPTABLES禁止或阻擋這些IP。
方法三:加大帶寬,增加服務(wù)器,使用CDN技術(shù)
3、檢測(cè)是否有DDOS攻擊
執(zhí)行:
[root@zmedu63 ~]# netstat -ntu | awk ‘{print $5}’ | cut -d: -f4 | sort | uniq -c | sort -n
如果發(fā)現(xiàn)某個(gè)IP連接數(shù)據(jù)上百的鏈接,說明就有DDOS攻擊。
下面開始安裝DDos deflate
4、安裝DDoS deflate
[root@zmedu63 ~]# wget http://www.inetbase.com/scripts/ddos/install.sh
下載DDoS deflate,保證可以上網(wǎng)
[root@zmedu63 ~]# chmod 700 install.sh #添加權(quán)限
[root@zmedu63 ~]#./install.sh #執(zhí)行
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的默認(rèn)配置位于/usr/local/ddos/ddos.conf ,內(nèi)容如下:
[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" #要執(zhí)行的DDOS腳本
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" #IP地址白名單,注:在這個(gè)文件中IP不受控制。
CRON="/etc/cron.d/ddos.cron" #定時(shí)執(zhí)行程序
6、查看定時(shí)任務(wù)
[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
實(shí)戰(zhàn)場(chǎng)景: 如果1分鐘內(nèi),一個(gè)IP地址對(duì)我們服務(wù)器訪問150次以上,就認(rèn)為發(fā)生DDOS,使用iptables把這個(gè)IP地址自動(dòng)屏蔽掉。
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 #檢查時(shí)間間隔,默認(rèn)1分鐘
How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150 #最大連接數(shù),超過這個(gè)數(shù)IP就會(huì)被屏蔽,一般默認(rèn)即可
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,默認(rèn)即可
An email is sent to the following address when an IP is banned.
Blank would suppress sending of mails
EMAIL_TO=kill@zmedu.com #當(dāng)IP被屏蔽時(shí)給指定郵箱發(fā)送郵件報(bào)警,換成自己的郵箱即可
Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600 #禁用IP時(shí)間,默認(rèn)600秒,可根據(jù)情況調(diào)整
用戶可根據(jù)給默認(rèn)配置文件加上的注釋提示內(nèi)容,修改配置文件。
注:安裝后,不需要手動(dòng)運(yùn)行任何軟件,因?yàn)橛衏rontab計(jì)劃任務(wù),每過一分鐘,會(huì)行自動(dòng)執(zhí)行一次。檢查是否有不正常的訪問量
2、 在zmedu64上模擬DDOS
[root@zmedu64 ~]# ab -n 1000 -c 10 http://192.168.0.107/index.html
等待一分鐘后,在xudgod63查看結(jié)果,多了一條規(guī)則
[root@zmedu63 ~]# iptables -L -n #可以看到已經(jīng)把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、卸載軟件
卸載軟件的本質(zhì): 刪除軟件安裝后的文件
安裝軟件的本質(zhì):把你寫的軟件文件,復(fù)制對(duì)應(yīng)的目錄下
[root@zmedu63 ~]# wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
[root@zmedu63 ~]# chmod +x uninstall.ddos
[root@zmedu63 ~]# ./uninstall.ddos
總結(jié)
以上是生活随笔為你收集整理的DDoS deflate 解决服务器被DDOS攻击的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日一题_447.回旋镖的数量
- 下一篇: Go的优雅终止姿势