|
嚜
Linux撘瑕之iptables嚗銝槐pt_recentmodule嚗賡餅DDoS餅
8 g$ s# f/ J4 I: q4 N. }靘憒嚗雿臭誑啣銝chain嚗 iptables -N WEB_SRV_DOS ":WEB_SRV_DOS - [0:0]"
! w3 K) p3 e3 [4 }" H, y嗅嚗其誑銝隞歹60蝘吩it port 80/443頞10甈∠IP餅銝西銝靘嚗
: n8 l# j+ w; p- iptables -A INPUT -p tcp -m multiport dports 80,443 -j WEB_SRV_DOS
- 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]"
- iptables -A WEB_SRV_DOS -p tcp --syn -m multiport --dports 80,443 -m recent --rcheck --second 60 --hitcount 10 -j REJECT
- iptables -A WEB_SRV_DOS -p tcp --syn -m multiport --dports 80,443 -m recent --set
- iptables -A WEB_SRV_DOS -p tcp -m multiport --dports 80,443 -j ACCEPT
銴鋆賭誨蝣
/ h! C a1 N( g [& B* t6 c憒雿dmesg唬憿航炊嚗 . Z+ z0 |: K9 Y' ]% }) Y& J
hitcount (200) is larger than packets to be remembered (20)
7 c: t6 p, j3 H v4 u' h銵函內雿閮剖閬閮蝞甈⊥詨之履pt_recent閮剖銝嚗舫隤踵惺pt_recent moduleip_pkt_list_tot訾閫瘙箝
% P2 M) {4 }+ u+ y3 u! O5 F: k( c0 g$ _! n7 J
皜祈岫銝銝:: t# A/ \" }8 l, k& Y; a! o- e
撠皜祈岫site澆箏之 http request [size=13.376px](臭誑撖怎撘靘頝嚗冽雓撌乩犖箸 灸rowser憭TAB嚗銝瑞reload蝬脤)
% q9 X* v" T3 J4 o5 T: i臭誑潛曉/var/log/message銝剖箇曆閮荔
! e+ v4 f2 |6 l2 Q; QMay 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
" R0 f# p' o& P甇斗隞半rowser皜祈岫蝬脤嚗箇遨onnection refused嚗⊥銝(箸閮剖rule爹EJECT)2 Z4 K* q9 {" r
OK嚗iptablesipt_recent module潭桐其
6 d" \3 k) P5 ~& A' s1 y$ G0 A7 m4 @% W( z) } E; x$ z' K' W
蝯隢嚗2 ^, O) p; Z/ q* P) t8 }
(1) iptables函雯頝臬惜喲餅餅撠嚗撠serverloading敶梢輯撠
- v1 |, Y( G0 n7 [- n: p9 X(2) iptables閮剖銝頛敶改舐其脰風80,443隞亙port; V$ |+ `, U$ K% [; x
(3) iptables航身摰潛函銝餅嚗箏究erver寥脰靽霅瘀臭誑摰其霈餅撠脣叫erver
/ _& ], G6 |. ]憒雿舐決S Windows + IIS嚗亙瑕嚗雿臭誑AQTRONIX WebKnight憟鞎餌web application firewall嚗鋆⊿W單脰風DDoS餅賬# Q) m- O! q( g( g
* M; s( ]8 Q4 q% _6 ]5 w U
- W+ _/ G2 C9 D0 {
: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/( Y/ X4 `6 ?* t, H/ {8 @2 J2 Q+ }
. ]5 T- G K& K1 P( |' S6 T: v* o8 g
================================================
3 G0 p3 C) A0 M菜葫舐IP 隞:% J3 m3 |' j& r4 Q* g" M- J
sed 's/ .*//' access.log | sort | uniq -c | sort -n: `! m' B4 U# \
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
, r! H( A9 U; {1 | |
|
|