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攻擊。
; {2 e7 u5 t, X% o! ~
例如,你可以新增一個chain: iptables -N WEB_SRV_DOS 或是 ":WEB_SRV_DOS - [0:0]"
8 Z3 t5 s% ~% Z2 {
然後,再用以下的指令,把60秒內hit port 80/443超過10次的IP阻擋並記錄下來:
& h' e' k3 n. j5 F9 {5 a
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
複製代碼
" N; g3 h: F* @7 ?7 N7 I
如果你看dmesg遇到下列這類錯誤:
" `, Q) p1 B0 J9 T& L
hitcount (200) is larger than packets to be remembered (20)
$ t3 A+ Q: ~5 W, ^8 |* i: `
表示你設定要計算的次數大於ipt_recent所設定的上限,可透過調整ipt_recent module的ip_pkt_list_tot參數來解決。
4 M+ b( V' K1 c
8 U& h K! F, V
測試一下吧:
5 x5 l* F7 y; y
先對測試site發出大量的 http request
[size=13.376px](可以寫程式來跑,或用所謂的工人智慧 – 用browser開多個TAB,不斷的reload網頁。)
2 b/ T3 U2 V* I# B% E
可以發現在/var/log/message中出現下列訊息:
- C1 x6 h1 K# ^. e
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
- w4 V$ ]0 u$ z* B- Q/ A
此時再以browser打開測試網頁,則會出現Connection refused,無法連上(因為我設定的rule是REJECT)。
7 n8 O5 M. y; M# v" R
OK,iptables的ipt_recent module發揮作用了。
) p' @2 I8 u( T- v6 T
2 V; K- D& L7 \8 i( |! n0 C
結論:
& \9 [& l! H# t$ h% A
(1) iptables在網路層即阻擋掉攻擊封包,對server的loading影響較小
' |# g/ k5 E' K, W
(2) iptables設定上較有彈性,可用來防護80,443以外的port
# h6 \' u3 |& g3 \. V* X
(3) iptables可設定於獨立的主機,擺在server的前方進行保護,可以完全不讓攻擊封包進入server。
# x) K% @) o! f9 v; ]
如果你是用MS Windows + IIS,別傷心,你可以參考AQTRONIX WebKnight這套免費的web application firewall,裡面即有防護DDoS攻擊的功能。
) X5 U2 l5 ?9 i8 f0 _: c
& g% T: a3 A, Z9 T! w
; `, P2 C% s5 n. A! k6 y2 X
參考原文:
http://blog.eztable.com/2011/05/17/how-to-prevent-ddos/
2 y: T9 D5 C- X3 d" o
8 `& E! L6 \ B- ~
================================================
, m" S+ i: n% H. s6 Z! L: g' {# I
偵測可疑IP 的指令:
# ^0 ^4 j4 {0 K/ Y C% I. w2 _
sed 's/ .*//' access.log | sort | uniq -c | sort -n
% x+ r+ y V% y7 `) p
perl -ne 'print "$1*\n" if m#^((\d+\.){3})#' access.log | sort | uniq -c | sort -n
- w( ]) V. R5 ]* {
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/)
Powered by Discuz! X3.2