52AV手機A片王|52AV.ONE

標題: 針對Web server(port 80)的DDoS攻擊防護,以iptables實作 [打印本頁]

作者: IT_man    時間: 2016-10-8 21:08
標題: 針對Web server(port 80)的DDoS攻擊防護,以iptables實作
Linux強大的iptables,有一個名為ipt_recent的module,能阻擋DDoS攻擊。
# [# u( f4 a+ Q' m5 N例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"% p% y  X4 H% W  t" f
然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:. e& ~0 J0 n: K+ t! Q. n& H/ [
  1. iptables -A INPUT -p tcp -m multiport –dports 80,443 -j WEB_SRV_DOS
  2. iptables -A WEB_SRV_DOS -p tcp --syn -m multiport --dports 80,443 -m recent --rcheck --second 60 --hitcount 10 -j LOG --log-prefix "[Possible DOS Attack]"
  3. iptables -A WEB_SRV_DOS -p tcp --syn -m multiport --dports 80,443 -m recent --rcheck --second 60 --hitcount 10 -j REJECT        
  4. iptables -A WEB_SRV_DOS -p tcp --syn -m multiport --dports 80,443 -m recent --set        
  5. iptables -A WEB_SRV_DOS -p tcp -m multiport --dports 80,443 -j ACCEPT
複製代碼
, m: x' F' H3 t5 p4 N
如果你看dmesg遇到下列這類錯誤:        2 `. Q% f6 Z4 H# W4 P
hitcount (200) is larger than packets to be remembered (20)
1 d8 p9 I" S% v表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
+ [3 ]  T5 ]7 J3 P( X4 M% g& o$ @
4 ]( ]& ]3 ~- f& ~測試一下吧:! g3 W4 [# t& W4 j1 L% Y
先對測試site發出大量的 http request [size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)1 a8 }/ n, F0 b- v
可以發現在/var/log/message中出現下列訊息:
- d* I, H- s" A7 T# n: |May 17 07:12:00 localhost kernel: [Possible DOS Attack]IN=eth0 OUT= MAC=XX:XX:XX:XX:43:77:00:1f:YY:YY:YY:YY SRC=192.168.0.105 DST=192.168.0.102 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=45026 DF PROTO=TCP SPT=59437 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
" ~) V# f* P' R此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
7 q: I, U! x& j+ ?" IOK,iptables的ipt_recent module發揮作用了。4 ?0 ?" O1 x" H" Y9 E5 u
1 {' s1 S* u0 B5 A: P; R
結論:% B' ]7 X/ w5 [6 {
(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
7 i9 X4 w- e! @" x4 Z6 ](2) iptables設定上較有彈性,可用來防護80,443以外的port
; d% B6 Z- R! ?, _. I; m(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。) D" k/ z  k4 S. V; Z1 w0 @9 S
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。; @4 {6 t$ f& C

* m9 U* S: K( f5 {+ Q7 P8 U
5 V/ Y$ \/ E2 t/ }* O7 I) i參考原文: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
' M: I0 Q1 D$ f9 D' v, d0 P* c7 N( m+ `! n0 q
================================================* A" v0 J6 c- y) A# @; h4 t
偵測可疑IP 的指令:! K8 q0 C$ a. ~+ _1 l2 P
sed 's/ .*//' access.log | sort | uniq -c | sort -n
8 O+ t/ V& X" X' {perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n9 g* K: M( b+ X5 S





歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/) Powered by Discuz! X3.2