Привет, я осваиваю синтаксис nft. Столкнулся с задачей которую не могу решить уже несколько дней.
У меня есть тестовый сервер с debian 11 на борту. Там установлен NGINX и php. В конфиге NGINX создано 2 сайта:
- Первый работает на порту 80
- Второй работает на порту 8080
Предпологается что второй сайт будет ловушкой для ботов и брутфорсеров.
ЗАДАЧА: создать список(или сет) в котором будут ip адреса в формате CIDR.
(Возможно и просто обычные ip адреса без маски - вроде бы так тоже можно)
Далее всех кто СОДЕРЖИТСЯ в этом списке отправлять на порт 8080 - на сайт ловушку.
А всех кто НЕ СОДЕРЖИТСЯ в этом списке - спокойно пропускать на 80 порт (если возможно указать пример как их редиректить сразу на 443 порт).\
Вроде бы простая задача но чёт не выходит. Пока что получилось только всех редиректить таким образом (но так не подходит конечно):
nft add table nat
nft add chain nat prerouting { type nat hook prerouting priority dstnat ; }
nft add rule nat prerouting tcp dport 80 redirect to 8080
ps: Я знаю что можно делать перенаправление в самом NGINX но хотелось бы решить вопрос именно с nft.
ps2: на всякий случай прилагаю скрипт, который использую для всех моих правил nft https://pastebin.com/iXNmnMex