Назад | Перейти на главную страницу

Блокировать попытки перебора с помощью nginx и cloudflare без ограничения скорости

Итак, я обнаружил, что серверы пытаются грубо использовать мой API, поэтому я хочу их заблокировать ... но мой конкретный сценарий затруднил работу с общими решениями, найденными в Интернете.

1) Я не хочу просто ограничивать скорость, если какой-либо IP пытается аутентифицироваться с помощью API и терпит неудачу более X раз за ~ 6 часов, я хочу их заблокировать. Больше никаких ответов. Нет даже 429 ответов

2) Я использую cloudflare, поэтому мне нужно использовать заголовок CF IP

3) Я не могу блокировать трафик на основе iptables или аналогичных решений, так как единственные IP-адреса, которые общаются с моим сервером, - это IP-адреса облачной вспышки.

4) API генерирует ошибки nginx, если аутентификация не выполняется с 2: no such file or directory если это поможет в чем-то

Учитывая мой сценарий, каковы возможные решения?

Есть несколько вещей, которые вы можете сделать, вы можете передать задачу Cloudflare еще до того, как она попадет в вашу сеть, разработав систему мониторинга Cloudflare Worker на предмет злоупотреблений: https://workers.cloudflare.com/

Если вы хотите сохранить мониторинг на своей стороне, вам следует использовать модуль nginx Real IP, чтобы убедиться, что у вас есть правильные IP-адреса в своих журналах, Cloudflare имеет инструкции здесь: https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs-Logging-visitor-IP-addresses-with-mod-cloudflare-

После того, как у вас есть реальные IP-адреса пользователей, включенные в ваши журналы доступа, вы можете использовать такую ​​программу, как fail2ban, чтобы либо установить запрет на стороне Cloudflare (используя их API), либо поддерживая список блокировки в nginx с помощью директивы deny.