Kann mir jemand helfen, die Konfiguration des HAProxy-DDoS-Angriffsschutzes zu verstehen?

Kann mir jemand helfen, die Konfiguration des HAProxy-DDoS-Angriffsschutzes zu verstehen?

Ich benutze HAP jetzt eine Weile und versuche jetzt, den DDoS-Schutz pro Frontend so zu konfigurieren, dass eine Verbindung für 5 Minuten blockiert wird, wenn sie mehr als 200 Anfragen pro Sekunde von derselben Quell-IP empfängt, wobei ich berücksichtige, dassmehrere Quell-IPskann/wird verwendet, um den Angriff zu starten. Ich habe mir verschiedene Blogbeiträge und Beiträge im Internet angesehen und je mehr ich sehe, desto verwirrter werde ich hinsichtlich der richtigen Konfiguration, die ich für meinen Zweck benötige.

Nachfolgend sind alle Konfigurationen aufgeführt, die ich bisher gesammelt habe:

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

und dann im Backend:

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
  .....

Ich bin mir ziemlich sicher, dass ich einige Dinge nicht verstanden habe, aber habe ich es richtig gemacht? Sieht für mich ein bisschen übertrieben aus und scheint auch nicht zu funktionieren. Kann mir bitte jemand die Mindestkonfiguration vorschlagen, die ich haben sollte, um mein Ziel zu erreichen?

-S

verwandte Informationen