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攻擊。
4 C% C; K$ |# [% o8 |
例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"
; }' b3 A! B% w( ?
然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:
5 l i3 @( u2 e: b9 }) f- y! F
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
複製代碼
9 Q# W8 J6 R/ r; d% A! v5 E7 g
如果你看dmesg遇到下列這類錯誤:
7 ]; ?0 m* n- \4 `* {" a9 E8 E5 l
hitcount (200) is larger than packets to be remembered (20)
D7 y# v$ ?0 {+ ^, m( V' ]
表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
" u% L$ @( x0 e! B* y$ \8 k% n [
( |$ s* U, k8 P9 t1 @8 j
測試一下吧:
7 i, U# m$ T8 A2 _8 i0 e T
先對測試site發出大量的 http request
[size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)
: X, F& N6 C3 v9 n7 q
可以發現在/var/log/message中出現下列訊息:
+ @! A# ]8 _" F- ]# I5 o
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
, l8 Z u2 v. O1 z# v$ j' F
此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
Q) i! t* j4 ^1 \2 i0 F
OK,iptables的ipt_recent module發揮作用了。
# J4 b4 ~3 A5 A- A' B
7 B9 G9 _! s# v7 p* z9 Z/ Y
結論:
4 g3 j: \" _) `& X8 L3 W% m5 i7 T# Z
(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
8 k0 _' f0 n, K% A5 }8 C/ @
(2) iptables設定上較有彈性,可用來防護80,443以外的port
# U$ R/ I+ F g9 y
(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。
4 y W1 W% s$ t
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。
8 l6 g) y' r4 H6 X, C2 _/ u. V
" I7 B' I+ V5 `; |
. y0 T7 }) @8 }; i8 T
參考原文:
http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
$ [2 H2 e6 ^% O4 |; A' e
% @7 p V# `- Z( _6 \4 W
================================================
1 \$ k' s( O* n$ l8 `
偵測可疑IP 的指令:
- C& r3 C, ]2 L; y; p8 I, i
sed 's/ .*//' access.log | sort | uniq -c | sort -n
. q2 m4 M M( c; [ G8 d: n
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
" J% Q6 K+ R6 D0 H6 @4 {/ @8 S9 j
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/)
Powered by Discuz! X3.2