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攻擊。
0 P/ }( ~' Z6 i/ {9 T' Z  o例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"
) \9 w( u! {/ a/ F) [( W" r然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:
* U/ V  N, @; n4 P' J% M& U
  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
複製代碼

" y) [% A; Z5 p! e如果你看dmesg遇到下列這類錯誤:        6 ^8 o2 O# M& O
hitcount (200) is larger than packets to be remembered (20)
. z, ?$ \# E& N6 {# U+ `表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。  k) m# Z3 q. `! ~3 e" ~% ?

& l, D4 \, `1 ?& x測試一下吧:
3 Q3 ~; g/ `# X, N% w( [先對測試site發出大量的 http request [size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)
+ R* o. g# [6 q4 g) p/ ]! s* |9 L& B' Q可以發現在/var/log/message中出現下列訊息:
9 n' L, ^" j, J% S- H( RMay 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
9 n+ o. g& W4 @8 E- ~此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。; q- A) N& p# y+ w# \: e
OK,iptables的ipt_recent module發揮作用了。. n5 E; a, S5 q7 k2 d+ |

8 L: W' ^) l% z9 }( d) X% w% e結論:
9 `0 ?2 O+ t8 x2 R(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
" v8 l2 R9 G* m) m: L(2) iptables設定上較有彈性,可用來防護80,443以外的port; T6 g4 H9 C  T+ o& N( h. Z
(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。
0 R) U" q1 a+ ~! q( z0 S如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。0 U/ ^/ E- T( q- k
) j% M+ G/ J: P2 G
/ k3 q( e- t: o7 ^' J3 w
參考原文: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/6 p$ n4 G. S9 ~  y4 ^& G" b
* L  X( ]) b/ N4 l
================================================
. ~9 y9 ~+ S, B4 \# D偵測可疑IP 的指令:
( e/ \% Z  H  H) `+ csed 's/ .*//' access.log | sort | uniq -c | sort -n
( [$ M3 k! @0 D% mperl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
' E5 x. U- V) }9 W6 c+ c




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