ниже следующее
visitor --> Cloudflare proxy --> Front --> Back
^^^^^^
-->iptables(fail2ban)-->nginx-->
Что я хочу сделать, так это отследить брутфорс IP через 401 отклонение и запретить этому IP делать любые последующие запросы.
FE BE
| |
.. | |
| POST /oauth/token |
|-------------------->|
| 401 (access denied) |
|<--------------------|
.. | |
| |
Однако единственный входящий адрес на FE - это IP-адрес облачной вспышки, а не IP-адрес посетителя. Таким образом, я не могу запретить входящий IP-адрес через iptable.
Я вижу только два пути:
Возможен ли один из последних? Если нет, то какая альтернатива?
Поскольку сеанс TCP завершается на серверах Cloudflare, это означает, что вы не можете напрямую или легко заблокировать своих клиентов с помощью iptables, за исключением случаев, когда вы собираетесь заблокировать с помощью iptables, ищущего строки, как здесь: Правило iptables для блокировки всех веб-запросов к domain.com.
Даже в этом случае некоторые запросы от клиента будут кэшироваться из cloudflare, в конце концов, это одна из причин использовать CDN, поэтому вы даже не увидите приходящий запрос.
Что вы можете сделать, так это выполнить сопоставление на nginx на основе содержимого X-Forwarded-For и применить к нему ограничение скорости, для получения более подробной информации проверьте этот ответ: