私はしばらくの間、HAPをオンオフで使用しており、現在、フロントエンドごとにDDoS保護を構成して、同じソースIPから1秒あたり200を超えるリクエストを受信した場合、5分間接続をブロックするようにしています。複数のソース 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
.....
いくつか理解していない点があると思いますが、正しく実行できましたか? 少しやりすぎたようで、うまく機能していないようです。目標を達成するために必要な最小限の構成を誰か教えていただけませんか?
-S