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攻擊。
: C% \! z  `- i3 B7 B9 P1 D" f例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"
; @( \. k% @7 D, C) d然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:' J9 ?3 u, _$ v2 ?, X+ Q3 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
複製代碼

7 t& R9 b# ?7 ~, C$ {如果你看dmesg遇到下列這類錯誤:        
7 j4 f2 S0 g( Khitcount (200) is larger than packets to be remembered (20)
! m3 U6 o; j  o表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
8 B2 e# C) b4 d$ S7 `! B) J! r, E' C8 a; h# t8 p( x
測試一下吧:9 f% k7 k+ J5 P  _, k5 U4 x$ @
先對測試site發出大量的 http request [size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)" I  r3 W6 f- Q- O2 O
可以發現在/var/log/message中出現下列訊息:2 c; s  d! i4 s! p: d
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
7 C/ o8 {/ u9 U% C: v) V此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
3 [& ?& D, s$ u+ FOK,iptables的ipt_recent module發揮作用了。& @4 K" k2 `  a6 F$ F

0 V1 t- p% H8 U2 q+ R% E結論:
6 h9 a- ]1 n# H, W, ~8 d, [(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
7 e: x5 M6 o$ j: `, P(2) iptables設定上較有彈性,可用來防護80,443以外的port
+ r' K5 c9 a+ z% x2 ^3 q(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。- @- W8 h& ]& W5 m5 a9 N7 P3 i
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。
( P% p2 M- D- P) B7 `! \0 L4 d8 M6 y. m$ R" ?
1 n! \) i5 u- t! ^" y
參考原文: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
: T2 v8 R1 n$ M: r6 {8 W; n* K' ~* w  G* S3 P  P- n4 S
================================================+ ^6 t3 r1 T4 W1 ]0 o$ }
偵測可疑IP 的指令:% k& q% B$ O* `' }" B: H
sed 's/ .*//' access.log | sort | uniq -c | sort -n
; Q4 L) i2 r# R$ V7 o7 {4 `- bperl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
3 f! D9 w2 O0 @# k; u% @. \+ q




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