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攻擊。
/ g5 ?9 P9 s, P& \4 c0 k
例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"
. I8 p( W7 _/ B6 p
然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:
3 G8 o3 `+ _1 |' C
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
複製代碼
# b0 ]! x. g" ~$ ?) E- i
如果你看dmesg遇到下列這類錯誤:
9 P V; o$ H0 @! o8 p3 u1 R
hitcount (200) is larger than packets to be remembered (20)
! R$ t* p: Z8 M; ^/ F
表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
- {( O' x: W! X% H
# n8 _! c9 {' h4 x" w' e# ~
測試一下吧:
: M$ D/ B0 {) E5 Z* [
先對測試site發出大量的 http request
[size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)
& v K( d. o8 p( y' V5 u
可以發現在/var/log/message中出現下列訊息:
& J, w3 `& t# Y; r) M
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
& _& J1 [* q8 X! c( Y0 S, |5 H
此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
( ^: O' U, t0 C5 J' |5 t, b' S }) o
OK,iptables的ipt_recent module發揮作用了。
8 P6 {( w* h& a0 ^7 r$ s
9 `1 D! j" P1 z% `( _; p
結論:
6 F7 g; d' H) T7 O
(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
5 H- \8 p) i2 o: W; b8 M. k% ^
(2) iptables設定上較有彈性,可用來防護80,443以外的port
+ t5 C5 Q8 Q# M, a& F# V, V5 {# x
(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。
" o+ B1 v0 [; M7 c" Q
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。
3 V1 e; v5 H1 R
6 f/ g( ~" i J& a2 ?8 }3 h% V
8 m+ Q% |) Y2 Q0 W
參考原文:
http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
. l7 _0 O0 u8 ?6 Q/ R& N
* r( G! ?/ `$ G" K% T
================================================
3 G8 q* L H0 l" Q+ K- M8 w! C5 A
偵測可疑IP 的指令:
0 W- T6 Q# d. b& H# n+ ~+ a" Y
sed 's/ .*//' access.log | sort | uniq -c | sort -n
6 d8 Z; o# E6 J# Q& k8 f/ I J/ a6 x
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
9 R: u! S, H! t
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/)
Powered by Discuz! X3.2