使用DDOS deflate抵御少量DDOS攻擊

DDoS-Deflate是一款非常小巧的防御和減輕DDoS攻擊的工具猾瘸,它可以通過監(jiān)測(cè)netstat來跟蹤來創(chuàng)建大量互聯(lián)網(wǎng)連接的IP地址信息,通過APF或IPTABLES禁止或阻檔這些非常IP地址颁股。

工作過程描述:

同一個(gè)IP鏈接到服務(wù)器的連接數(shù)到達(dá)設(shè)置的伐值后星著,所有超過伐值的IP將被屏蔽特笋,同時(shí)把屏蔽的IP寫入ignore.ip.list文件中黔姜,與此同時(shí)會(huì)在tmp中生成一個(gè)腳本文件拢切,這個(gè)腳本文件馬上被執(zhí)行,但是一運(yùn)行就遇到sleep 預(yù)設(shè)的秒地淀,當(dāng)睡眠了這么多的時(shí)間后失球,解除被屏蔽的IP,同時(shí)把之前寫入ignore.ip.list文件中的這個(gè)被封鎖的IP刪除帮毁,然后刪除臨時(shí)生成的文件。

一個(gè)事實(shí):如果被屏蔽的IP手工解屏蔽豺撑,那么如果這個(gè)IP繼續(xù)產(chǎn)生攻擊烈疚,那么腳本將不會(huì)再次屏蔽它(因?yàn)榧尤氲搅薸gnore.ip.list),直到在預(yù)設(shè)的時(shí)間之后才能起作用聪轿,加入到了ignore.ip.list中的IP是檢測(cè)的時(shí)候忽略的IP爷肝。可以把IP寫入到這個(gè)文件以避免這些IP被堵塞陆错,已經(jīng)堵塞了的IP也會(huì)加入到ignore.ip.list中灯抛,但堵塞了預(yù)定時(shí)間后會(huì)從它之中刪除。

在tmp文件中生成的解除屏蔽IP的腳本文件內(nèi)容如下:

cat? /tmp/unban.XXXXXXXX#!/bin/shsleep 600/sbin/iptables -D INPUT -s 10.0.10.55 -j DROPgrep -v --file=/tmp/unban.3RIsCVkG /usr/local/ddos/ignore.ip.list > /tmp/unban.VPYmNEnbmv /tmp/unban.VPYmNEnb /usr/local/ddos/ignore.ip.listrm -f /tmp/unban.uqPU5tGKrm -f /tmp/unban.3RIsCVkGrm -f /tmp/unban.VPYmNEnb

另外值得一提的是音瓷,使用iptables進(jìn)行屏蔽時(shí)对嚼,使用的是-I?參數(shù),規(guī)則會(huì)被放置在規(guī)則列表的最前面(這一點(diǎn)很重要)绳慎。

-----------------------------------------------------------------------------

我們可以使用netstat命令查看當(dāng)前系統(tǒng)連接數(shù)據(jù)的統(tǒng)計(jì)纵竖,是否有受到DDOS攻擊

#?netstat -ntu | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

#?netstat -ntu | awk '{print $5}' | cut -d: -f1 |sed -n '/[0-9]/p'| sort | uniq -c | sort -nr

# ?watch -n 1 'echo "show table http-in" | socat unix:/var/run/haproxy.stats - |grep "157.55.39" '


1、安裝DDoS deflate

wget http://www.inetbase.com/scripts/ddos/install.sh

chmod 0700 install.sh

./install.sh


自動(dòng)生成定時(shí)任務(wù)杏愤,默認(rèn)每分鐘執(zhí)行一次

# ?cat /etc/cron.d/ddos.cron?

SHELL=/bin/sh

0-59/1 * * * * root /usr/local/ddos/ddos.sh >/dev/null 2>&1


這個(gè)cron任務(wù)的執(zhí)行頻率是依賴ddos.conf文件中的FREQ變量產(chǎn)生的靡砌,如果修改了此值,可以通過運(yùn)行如下命令更新(實(shí)際也是在安裝時(shí)運(yùn)行了如下命令):

/usr/local/ddos/ddos.sh -c ?或 ?/usr/local/ddos/ddos.sh –cron


2珊楼、配置DDoS deflate

下面是DDoS deflate的默認(rèn)配置位于/usr/local/ddos/ddos.conf 通殃,內(nèi)容如下:

  ##### Paths of the script and other files

  PROGDIR=“/usr/local/ddos”

  PROG=“/usr/local/ddos/ddos.sh”

  IGNORE_IP_LIST=“/usr/local/ddos/ignore.ip.list” ? ?#相當(dāng)于IP地址白名單和當(dāng)前時(shí)段被檢測(cè)出訪問異常的IP地址的合集

  CRON=“/etc/cron.d/ddos.cron” ? #定時(shí)執(zhí)行程序

  APF=“/etc/apf/apf”

  IPT=“/sbin/iptables”

  ##### 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=0 ??#使用APF還是iptables骗炉。推薦使用iptables,將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=“root” ? #當(dāng)IP被屏蔽時(shí)給指定郵箱發(fā)送郵件,推薦使用乍丈,換成自己的郵箱即可(如果不希望發(fā)送郵件剂碴,設(shè)置為空

  ##### 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)容忆矛,修改配置文件。


  ?修改/usr/local/ddos/ddos.sh文件的第117行:

  netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST

  修改為以下代碼即可请垛!

  netstat -ntu | awk '{print $5}' | cut -d: -f1 |?sed -n '/[0-9]/p'?| sort | uniq -c | sort -nr ?> $BAD_IP_LIST


ddos.sh --help顯示幫助催训,比如如果要即時(shí)干掉當(dāng)前超過N個(gè)連接的IP,使用sh ddos.sh -k 150, sh ddos.sh -c?創(chuàng)建cron job


用戶也可以用Web壓力測(cè)試軟件ab測(cè)試一下效果宗收,相信DDoS deflate還是能給你的VPS或服務(wù)器抵御一部分DDOS攻擊漫拭,給你的網(wǎng)站更多的保護(hù)。

ab命令安裝:#yum install httpd-tools ?-y


3混稽、卸載DDoS deflate

wget http://www.inetbase.com/scripts/ddos/uninstall.ddos

chmod 0700 uninstall.ddos

./uninstall.ddos


參考資料:http://www.myhack58.com/Article/48/66/2013/41214.htm

-----------------------------------------------------------------------------------------------------------

參考補(bǔ)充:

防范DDOS攻擊腳本:

#防止SYN攻擊 輕量級(jí)預(yù)防

iptables -N syn-flood

iptables -A INPUT -p tcp --syn -j syn-flood

iptables -I syn-flood -p tcp -m limit --limit3/s --limit-burst6-j RETURN

iptables -A syn-flood -j REJECT

#防止DOS太多連接進(jìn)來,可以允許外網(wǎng)網(wǎng)卡每個(gè)IP最多15個(gè)初始連接,超過的丟棄

iptables -A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above15-j DROP

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

#用Iptables抵御DDOS (參數(shù)與上相同)

iptables -A INPUT? -p tcp --syn -m limit --limit12/s --limit-burst24-j ACCEPT

iptables -A FORWARD -p tcp --syn -m limit --limit1/s -j ACCEPT


iptables防DDOS攻擊腳本:

#!/bin/sh## define some vars

MAX_TOTAL_SYN_RECV="1000"MAX_PER_IP_SYN_RECV="20"MARK="SYN_RECV"PORT="80"LOGFILE="/var/log/netstat_$MARK-$PORT"LOGFILE_IP="/var/log/netstat_connect_ip.log"DROP_IP_LOG="/var/log/netstat_syn_drop_ip.log"## iptables default rules: accept normailly packages and drop baleful SYN* packages

iptables -F -t filter

iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

iptables -A INPUT -p ALL -m state --state INVALID -j DROP

iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT

## initializeif[ -z $MARK ];thenMARK="LISTEN"fiif[ -z $PORT ];thenSPORT="tcp"elseSPORT=":$PORT"fi######################## end

## save the results of command netstat to specifal filenetstat -atun|grep$MARK|grep$SPORT2>/dev/null>$LOGFILE

REPEAT_CONNECT_IP=`less$LOGFILE|awk'{print $5}'|cut-f1 -d':'|sort|uniq-d |tee> $LOGFILE_IP`if[ -f $DROP_IP_LOG ];thenforiin`less$DROP_IP_LOG`;doiptables -A INPUT -p ALL -s $i -j DROPdonefiforiin`less$LOGFILE_IP`;doREPEAT_CONNECT_NUM=`grep$i $LOGFILE|wc-l`

## count repeat connections ,ifthe accout is large than default number,then drop packagesif[ $REPEAT_CONNECT_NUM -gt $MAX_PER_IP_SYN_RECV ];thenecho"$i####$REPEAT_CONNECT_NUM">> $DROP_IP_LOG

iptables -A INPUT -p ALL -s $i -j DROPfidoneALL_CONNECT=`uniq-u $LOGFILE|wc-l`

#echo $ALL_CONNECT

## count repeat connections ,ifthe accout is large than default number,then drop packagesif[ $ALL_CONNECT -gt $MAX_TOTAL_SYN_RECV ];then#echo $ALL_CONNECT

exitfi

原文:https://blog.csdn.net/weixin_33895695/article/details/85800117

? ? 有服務(wù)器需求請(qǐng)加QQ1911624872咨詢

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末采驻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子匈勋,更是在濱河造成了極大的恐慌礼旅,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洽洁,死亡現(xiàn)場(chǎng)離奇詭異痘系,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)诡挂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門碎浇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人璃俗,你說我怎么就攤上這事奴璃。” “怎么了城豁?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵苟穆,是天一觀的道長。 經(jīng)常有香客問我唱星,道長雳旅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任间聊,我火速辦了婚禮攒盈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哎榴。我一直安慰自己型豁,他們只是感情好僵蛛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迎变,像睡著了一般充尉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衣形,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天驼侠,我揣著相機(jī)與錄音,去河邊找鬼谆吴。 笑死倒源,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的纪铺。 我是一名探鬼主播相速,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鲜锚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苫拍,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤芜繁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后绒极,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骏令,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年垄提,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榔袋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铡俐,死狀恐怖凰兑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情审丘,我是刑警寧澤吏够,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站滩报,受9級(jí)特大地震影響锅知,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脓钾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一售睹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧可训,春花似錦昌妹、人聲如沸捶枢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柱蟀。三九已至,卻和暖如春蚜厉,著一層夾襖步出監(jiān)牢的瞬間长已,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工昼牛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留术瓮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓贰健,卻偏偏與公主長得像胞四,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伶椿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 參考http://blog.csdn.net/huwei2003/article/details/45476743...
    魚仔_1625閱讀 2,289評(píng)論 0 5
  • https://blog.csdn.net/weixin_37202689/article/details/728...
    SkTj閱讀 1,827評(píng)論 0 2
  • DDOS概述: 分布式拒絕服務(wù)(DDoS:DistributedDenial of Service)攻擊辜伟,指借助于...
    平凡拒絕平庸閱讀 3,356評(píng)論 0 9
  • | 導(dǎo)讀 | Linux服務(wù)器在運(yùn)營過程中可能會(huì)受到黑客攻擊,常見的攻擊方式有****SYN脊另,DDOS等导狡。通過更換...
    有文化_0a9b閱讀 804評(píng)論 0 1
  • 工作很忙,很久沒動(dòng)筆偎痛,抽空畫張小畫旱捧。 這個(gè)線稿其實(shí)一個(gè)月之前就畫了,紙也裱了很久踩麦,一直沒畫枚赡。昨天突然心血來潮上色了...
    貳蚊閱讀 502評(píng)論 0 4