У меня есть экземпляр AWS EC2 Ubuntu с сервером NGINX, настроенным для прослушивания IP-адреса 50.0.0.1 (пример) на порту 80.
У меня есть страница входа в index.php. Я хочу настроить nginx для обнаружения и предотвращения перебора (активная блокировка) для этой страницы.
Но если конечный клиентский узел скрывается за NAT, как показано в моей архитектуре: Архитектура, согласно моему простому скрипту, который блокирует IP-адреса после 5 неудачных попыток, он блокирует IP 1.2.3.4 (см. Архитектура), поэтому другие законные пользователи, использующие IP-адрес 1.2.3.4 со злоумышленником, также будут заблокированы.
Есть ли способ заблокировать только запросы злоумышленника, а не другие легитимные запросы? На ум приходят следующие решения:
Что может быть лучшим решением для этого?
Если для каждого запроса атаки не существует определенного отпечатка пальца (что маловероятно, поскольку они хотят скрыть себя), вы не можете делать ничего, кроме ограничения скорости, которое также влияет на всех законных клиентов.