小编Ton*_*ony的帖子

HAProxy 速率限制 - 禁止滥用者 30 分钟

我有以下配置,它适用于速率限制连接。如果滥用者通过身份验证并且他每分钟访问定义的正则表达式位置超过 30 次,则会启动速率限制并将他转发到 rate_limiting 后端,在那里他收到错误消息:

frontend http_in

bind xx.xx.xx.xx:80
mode http
default_backend backend_nodes
tcp-request inspect-delay 5s
acl location_request path_reg ^/(.*)/(.*)/
acl too_many_requests sc0_gpc0_rate(context) ge 30
acl mark_seen sc0_inc_gpc0 gt 0
stick-table type string size 100k store gpc0_rate(60s)
tcp-request content track-sc0 cookie(authValidation) if location_request
use_backend rate_limiting if mark_seen too_many_requests


backend backend_nodes

mode    http
balance roundrobin
option  http-server-close
server  srv1 192.168.0.1:80 weight 5
server  srv2 192.168.0.2:80 weight 5

backend rate_limiting

mode http
timeout tarpit 2s
errorfile 500 /etc/haproxy/errorfiles/429.http
http-request tarpit
Run Code Online (Sandbox Code Playgroud)

此配置确保滥用者每分钟不能发出超过 30 …

haproxy rate-limiting

6
推荐指数
1
解决办法
6998
查看次数

iptables 计数器恢复,当使用配额时,没有按预期工作

我为某台计算机设置了配额:

iptables -A FORWARD -d 192.168.1.10 -m quota --quota 500000000 -j ACCEPT
iptables -A FORWARD -d 192.168.1.10 -j DROP
Run Code Online (Sandbox Code Playgroud)

这按预期工作。当达到限制 (500MB) 时,这台特定计算机的所有数据包都会被丢弃。

但是,如果我保存计数器(iptables-save -c > /home/iptables.counters),重新启动 iptables,并恢复计数器(iptables-restore -c /home/iptables.counters),那么不管保存的计数器是什么是,那台计算机仍然可以下载 500 MB,因此在该计算机失去 Internet 访问权限之前,总计数器大小将为 X + 500MB,其中 X 是保存的计数器大小。

我一定是做错了什么,因为这是保存/恢复计数器的重点:从该字节计数恢复,直到达到限制。任何类型的提示将不胜感激...

linux iptables

5
推荐指数
1
解决办法
1451
查看次数

标签 统计

haproxy ×1

iptables ×1

linux ×1

rate-limiting ×1