|
|
嚜
Linux撘瑕之iptables嚗銝槐pt_recentmodule嚗賡餅DDoS餅
: K* l: L0 ^" j, o9 b3 z1 s靘憒嚗雿臭誑啣銝chain嚗 iptables -N WEB_SRV_DOS ":WEB_SRV_DOS - [0:0]"
- l8 U$ q) H% T4 s嗅嚗其誑銝隞歹60蝘吩it port 80/443頞10甈∠IP餅銝西銝靘嚗
& o1 |4 m* b7 p D2 C( k- 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
銴鋆賭誨蝣
- c2 g7 H1 \5 v5 ]% _% k ~憒雿dmesg唬憿航炊嚗 & f, _7 I/ {! N( \. Q4 N8 B5 ]
hitcount (200) is larger than packets to be remembered (20) 9 ?8 H+ F! X# b. j8 s
銵函內雿閮剖閬閮蝞甈⊥詨之履pt_recent閮剖銝嚗舫隤踵惺pt_recent moduleip_pkt_list_tot訾閫瘙箝- v g8 a4 R3 g1 ^ L( [
* e1 t8 ~2 F7 U& @3 d# C. ^皜祈岫銝銝:" W& i: q( e0 P, }9 s7 S4 N
撠皜祈岫site澆箏之 http request [size=13.376px](臭誑撖怎撘靘頝嚗冽雓撌乩犖箸 灸rowser憭TAB嚗銝瑞reload蝬脤)( w3 y- K& N# A" |8 A) P, X- V
臭誑潛曉/var/log/message銝剖箇曆閮荔8 f4 J) ~* z# H( z" z2 `
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
- S# q* X" Y5 l0 j# l甇斗隞半rowser皜祈岫蝬脤嚗箇遨onnection refused嚗⊥銝(箸閮剖rule爹EJECT)8 C& {: U3 F( B- q$ s3 _
OK嚗iptablesipt_recent module潭桐其" O1 A$ T. G# h4 a
% n& v4 [2 Q2 r- {' e6 z0 e
蝯隢嚗1 j; l1 a# M! `0 R' K% t
(1) iptables函雯頝臬惜喲餅餅撠嚗撠serverloading敶梢輯撠
% h, w% Q8 `/ e3 F/ h; }(2) iptables閮剖銝頛敶改舐其脰風80,443隞亙port/ f' ~) V! y& E$ N
(3) iptables航身摰潛函銝餅嚗箏究erver寥脰靽霅瘀臭誑摰其霈餅撠脣叫erver6 Q) u& S3 D9 L! W. l% Z
憒雿舐決S Windows + IIS嚗亙瑕嚗雿臭誑AQTRONIX WebKnight憟鞎餌web application firewall嚗鋆⊿W單脰風DDoS餅賬 V1 @; d, q4 Z& W/ x) s
0 s* O" }' E- \
! d. o8 H Z( C. ]; `: http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/$ O0 Z3 d% X- u! z
/ R# |5 m# v3 |- I: H6 q- _# N================================================* ?: }9 p, I! h2 C( {, a3 `
菜葫舐IP 隞:) G! k9 u8 @1 @- P7 {7 z0 k
sed 's/ .*//' access.log | sort | uniq -c | sort -n7 [4 g4 l0 Q+ O. j1 t( \/ T
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n. } r2 |( J8 g
|
|
|