나는 지금 잠시 HAP를 켜고 끄고 있으며, 동일한 소스 IP에서 초당 200개 이상의 요청을 수신하는 경우 5분 동안 연결을 차단하기 위해 프런트엔드당 DDoS 보호를 구성하려고 합니다. 그것을 고려하여다중 소스 IP공격을 시작하는 데 사용될 수 있습니다. 인터넷의 다양한 블로그 게시물과 게시물을 살펴보니 내 목적에 맞는 올바른 구성이 무엇인지에 대해 더 혼란스러워졌습니다.
다음은 지금까지 수집한 모든 구성입니다.
backend ip_rates_abuse
stick-table type ip size 200k expire 5m store gpc0,conn_cur,conn_rate(10s),http_req_rate(10s),http_err_rate(10s)
frontend fe_dev_mydomain_com
.....
## ----- TCP Layer DDoS protection ------------ ##
timeout tarpit 15s
tcp-request inspect-delay 5s
#
tcp-request content reject if { src_conn_rate(ip_rates_abuse) ge 200 }
tcp-request content reject if { src_conn_cur(ip_rates_abuse) ge 500 }
tcp-request content reject if { src_get_gpc0(ip_rates_abuse) gt 0 }
tcp-request session track-sc0 src table ip_rates_abuse
#
## ----- Application Layer DDoS protection ------------ ##
acl too_many_reqs sc_http_req_rate(0) gt 200
http-request track-sc1 src table ip_rates_abuse
http-request set-var(txn.ratelimited) str(RATE-LIMITED) if too_many_reqs
http-request capture var(txn.ratelimited) len 12
http-request deny deny_status 429 if too_many_reqs
.....
use_backend be_waf if no_tarpit || tarpit_max_capacity
그런 다음 백엔드에서:
backend be_waf
acl too_many_clicks sc1_http_req_rate gt 200
acl mark_as_abuser sc0_inc_gpc0(ip_rates_abuse) gt 0
tcp-request content track-sc1 src table ip_rates_abuse
tcp-request content reject if too_many_clicks mark_as_abuser
.....
제가 여러 가지를 이해하지 못했다고 확신합니다. 하지만 제대로 이해한 걸까요? 나에게 약간 과장된 것 같고 작동하지 않는 것 같습니다. 내 목표를 달성하기 위해 필요한 최소 구성을 제안해 줄 수 있는 사람이 있나요?
-에스