Я пытаюсь защитить свой сервер от DDOS-атак, у моего сервера всегда есть перенаправление на протокол SSL / HTTPS.
но я использую следующую конфигурацию, и она не работает
frontend http-in
bind *:80
stick-table type ip size 1m expire 5m store gpc0
tcp-request connection track-sc0 src
tcp-request connection reject if { sc0_get_gpc0 gt 0 }
tcp-request connection reject if { src_conn_rate(Abuse) ge 10 }
tcp-request connection reject if { src_conn_cur(Abuse) ge 10 }
tcp-request connection track-sc1 src table Abuse
redirect scheme https if !{ ssl_fc }
reqadd X-Forwarded-Proto:\ http
default_backend code
frontend https-in
bind *:443 ssl crt [SOME CERT]
reqadd X-Forwarded-Proto:\ https
default_backend code
stick-table type ip size 1m expire 5m store gpc0
tcp-request connection track-sc0 src
tcp-request connection reject if { sc0_get_gpc0 gt 0 }
tcp-request connection reject if { src_conn_rate(Abuse) ge 10 }
tcp-request connection reject if { src_conn_cur(Abuse) ge 10 }
tcp-request connection track-sc1 src table Abuse
backend code
stick-table type ip size 1m expire 5m store http_req_rate(10s)
acl click_too_fast sc1_http_req_rate gt 10
acl mark_as_abuser sc0_inc_gpc0(http) gt 0
tcp-request content track-sc1 src
tcp-request content reject if click_too_fast mark_as_abuser
balance roundrobin
option httpclose
option forwardfor
cookie JSESSIONID prefix
server node3 [SOMEIP] check
server node4 [SOMEIP] check
Я тестирую свою конфигурацию с помощью команды
ab -n 11 -c 1 [ДОМЕН]
но сервер никогда не блокирует мое соединение, что я делаю не так?
Я получил конфигурацию отсюда:
https://www.haproxy.com/blog/use-a-load-balancer-as-a-first-row-of-defense-against-ddos/
Например.
tcp-request connection reject if { src_conn_rate(Abuse) ge 10 }
acl mark_as_abuser sc0_inc_gpc0(http) gt 0
У вас нет таблиц Abuse или http. Имя таблицы - это имя внутреннего или внешнего интерфейса, в котором она определена. У вас есть таблицы http-in и https-in, например.