|
|
嚜
Linux撘瑕之iptables嚗銝槐pt_recentmodule嚗賡餅DDoS餅2 R) V5 }7 u! X) R0 t* _7 k
靘憒嚗雿臭誑啣銝chain嚗 iptables -N WEB_SRV_DOS ":WEB_SRV_DOS - [0:0]"
5 m9 W* _' l1 Y$ X嗅嚗其誑銝隞歹60蝘吩it port 80/443頞10甈∠IP餅銝西銝靘嚗
* z; r; }. z# w; c" v0 ]; T3 H- 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
銴鋆賭誨蝣
+ e# L( N1 _7 F; s憒雿dmesg唬憿航炊嚗
4 [" g0 A3 u+ j$ \hitcount (200) is larger than packets to be remembered (20)
9 y& r3 j6 @6 `% F: J1 O! o" A3 H9 Q銵函內雿閮剖閬閮蝞甈⊥詨之履pt_recent閮剖銝嚗舫隤踵惺pt_recent moduleip_pkt_list_tot訾閫瘙箝
" B7 L+ o! h2 C4 O
]& {- T9 ?7 L4 N/ ^5 H% K皜祈岫銝銝:& w, E6 b q& m7 Z* P9 } r
撠皜祈岫site澆箏之 http request [size=13.376px](臭誑撖怎撘靘頝嚗冽雓撌乩犖箸 灸rowser憭TAB嚗銝瑞reload蝬脤)4 F. H0 V! c$ n
臭誑潛曉/var/log/message銝剖箇曆閮荔
! i/ m" D# `; |0 UMay 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& u2 o. S$ }9 d甇斗隞半rowser皜祈岫蝬脤嚗箇遨onnection refused嚗⊥銝(箸閮剖rule爹EJECT) H W7 [2 R0 A0 r( p+ O9 A
OK嚗iptablesipt_recent module潭桐其
( H. i* Q4 ?: e! r: R5 V) P
% g& u" y0 D4 t! M( q4 w: K0 W* Z蝯隢嚗+ U9 W. w7 d2 k- J+ ~ a
(1) iptables函雯頝臬惜喲餅餅撠嚗撠serverloading敶梢輯撠
7 W7 D8 {/ c1 i3 B0 }8 r, y8 q(2) iptables閮剖銝頛敶改舐其脰風80,443隞亙port
9 P+ |& @4 |$ s(3) iptables航身摰潛函銝餅嚗箏究erver寥脰靽霅瘀臭誑摰其霈餅撠脣叫erver; ]. X7 I* ~# ?$ E4 r- W# r J
憒雿舐決S Windows + IIS嚗亙瑕嚗雿臭誑AQTRONIX WebKnight憟鞎餌web application firewall嚗鋆⊿W單脰風DDoS餅賬& t6 E& w& b/ f- n7 [9 e; D
1 m; u8 r/ ]1 s Q7 E7 p
r- t: W$ {3 r, y2 n: N q3 g6 }: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
+ D! g1 C! x( r: n1 q0 q
0 N- s$ w: p$ O6 q( r! Z================================================
0 P5 k4 @ u# d$ U! n+ \. s菜葫舐IP 隞:% i9 g5 E. N8 m U3 j Y) j
sed 's/ .*//' access.log | sort | uniq -c | sort -n& q6 d" Y- H" }) C. I% v
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
# M+ p7 U! X, R9 t3 N5 e |
|
|