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攻擊。# o  z% z* W5 H+ k
例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"1 O. Q4 H1 Z2 T$ @+ P( w
然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:0 Y( b+ y. F* s0 R" n8 G
  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
複製代碼
& [6 h+ B" i' `) C
如果你看dmesg遇到下列這類錯誤:        ' U! ^& x# T0 K
hitcount (200) is larger than packets to be remembered (20)
0 c8 U0 B# b$ u! r: u  W表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
" r, G+ L. P. }! Q% p  A" k2 x+ T. a. K* m. Y
測試一下吧:- t+ W: d: W/ \
先對測試site發出大量的 http request [size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)
8 o- C7 O  h1 o" A; D0 a可以發現在/var/log/message中出現下列訊息:2 k- E* w: p) \  ~  V$ n+ k
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
0 n! a: [. T; r! r; o此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
8 Z5 B9 a% O, ^$ DOK,iptables的ipt_recent module發揮作用了。: q) }( N) ^' y+ C* |6 _
5 _) X3 h1 X; w7 o
結論:
; R1 M0 b& e4 i, S1 Z, ~! W4 }(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小3 M" l7 c: k2 b& [8 V, ?
(2) iptables設定上較有彈性,可用來防護80,443以外的port
5 h7 t2 L$ J8 v3 C. I& s(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。/ U( Z+ S9 D5 t+ m  w' q% ]7 u
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。0 ^& ~4 A0 J7 A9 P0 m

# h0 l6 [5 |, i% u+ A+ O( p5 w, p7 M7 Y$ N+ ^" g
參考原文: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
" F0 v9 r/ m6 N5 _0 {7 l% \& A  r8 g( A
================================================
5 l8 e  m( @/ H$ H+ q$ |偵測可疑IP 的指令:
# ~1 y4 H! e# w2 r& P2 msed 's/ .*//' access.log | sort | uniq -c | sort -n
* V7 T, k1 n' W7 j. cperl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
5 l2 ~1 U9 ?8 x& Y" c




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