Ограничение запросов от одного IP (nft)

Станислав
На сайте с 27.12.2009
Offline
248
273

Никак не могу разобраться с nftables, возможно кто то поможет добиться желаемого результата.

Я хочу ограничить доступ к серверу тем кто создает больше 10 запросов в секунду на 1 IP (port 80, 443)

Нашел следующее правило

nft add table ip filter
nft add chain ip filter input { type filter hook input priority 0 \; }
nft add set ip filter denylist { type ipv4_addr \; flags dynamic, timeout \; timeout 5m \; }
nft add rule ip filter input ip protocol tcp ct state new, untracked limit rate over 10/second add @denylist { ip saddr }
nft add rule ip filter input ip saddr @denylist drop

Сайт работает на 2х серверах, база данных размещена на отдельном сервере, при такой настройке ntf блочит IP сервера базы данных, а не IP пользователя.

Как можно указать порты или список белых IP адресов, не могу никак разобраться с этим....

Мы там, где рады нас видеть.
LEOnidUKG
На сайте с 25.11.2006
Offline
1761
#1
Глупый вопрос, а почему это не сделать на уровне nginx, если конечно у вас есть или apache?
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Станислав
На сайте с 27.12.2009
Offline
248
#2
LEOnidUKG #:
Глупый вопрос, а почему это не сделать на уровне nginx, если конечно у вас есть или apache?

Frontend делает много запросов к серверу, в nginx прописал limit, но если кто то точечно делает запросы на сервер API, nginx их пропускает, потому что они проходят под лимиты. При сокращении лимитов в nginx, фронтед не получает нужной информации, поэтому и хочу в nftables ограничить, не получается у меня обойтись только nginx. 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий