我正在尝试保护我的服务器免受 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/
答案1
例如。
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,例如。