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 O* h1 N. C, U& W! }" d5 w4 ~8 I
例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"
, G3 f( W/ r! Q+ \, U M9 \
然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:
; v& N5 f3 j, {( D0 d1 k. s% F0 \
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
複製代碼
7 t: F% V, j- M( J9 K9 x- i9 @
如果你看dmesg遇到下列這類錯誤:
4 k5 y" {3 n) O0 x0 \" x6 F" V
hitcount (200) is larger than packets to be remembered (20)
8 I/ p. |" r: W
表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
( o; X$ C( D, P% f' d% D
5 o1 o% ^3 U/ R1 `7 \+ O! z: Q
測試一下吧:
! v+ { ?& w8 Y1 X% d( ~2 R
先對測試site發出大量的 http request
[size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)
' ?+ M3 u9 [ w. M: ~8 L6 N
可以發現在/var/log/message中出現下列訊息:
3 G, }0 C( \: |5 \* k6 I( 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
9 ]% c6 I @; v1 m+ i& T
此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
! i- H8 P7 z' F) I( M" ^
OK,iptables的ipt_recent module發揮作用了。
3 | h3 p# A3 l h6 Y4 u4 `5 U- K
3 O' {: ^# @8 W
結論:
% u: ^7 Q, K5 t8 h/ d3 a
(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
' _; n/ J6 V: q9 K2 F
(2) iptables設定上較有彈性,可用來防護80,443以外的port
2 H& O' a# M/ F1 y/ U5 G# N
(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。
_- S2 T: T" f/ L
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。
4 Q8 a; J8 P* Z o: O
. o. c* z, X. S3 N, o
" {+ o. W) u! r4 b' ]+ D
參考原文:
http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
. m' \9 B. t6 b
" R( D5 G( D/ R }# B
================================================
# ?1 X6 q7 g2 e' w# T
偵測可疑IP 的指令:
8 ]8 D2 ^% v7 B# G- k
sed 's/ .*//' access.log | sort | uniq -c | sort -n
/ \. E. P, c2 W0 ^6 r
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
5 O% V: C5 E9 H* c' O" I' K+ |
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av23.xyz/)
Powered by Discuz! X3.2