nftables ip set несколько таблиц

Случай использования: у меня есть домашний маршрутизатор, использующий iptables сегодня. Я изучаю преобразование в nftables, поскольку он выглядит намного более управляемым для множества правил.

Одна вещь, которую я установил сегодня в iptables, – это «country-block» ipset, который содержит блоки CIDR страны, которые покрывают большинство случайных попыток ввода / взлома порта. К сожалению, nftables не может использовать мои существующие ipsets напрямую, но было довольно просто преобразовать его в набор nftables ip.

Проблема. Чтобы избежать создания одного массивного файла nftables, я решил отделить свой набор «country-block» в отдельный файл. nftables позволяет легко включать другие файлы, поэтому это, по-видимому, хорошо соответствует предполагаемому поведению для nftables. Я определил свой блок страны следующим образом:

table ip country-block { set country-block { type ipv4_addr; flags interval; elements = { /* CIDR blocks here */ } } } 

Это нормально. Теперь я хочу использовать его в фильтрах брандмауэра. У меня есть таблица, определенная в моем основном файле конфигурации «table inet filter». Здесь я хочу добавить правило:

 ip saddr @country-block drop 

Следуя всем моим поисковым запросам Google, это единственный способ найти ссылки на ip-пакеты. К сожалению, это вызывает ошибку:

 Error: Could not process rule: Set 'country-block' does not exist 

Я попытался ссылаться на «country-block @ country-block», надеясь, что он может решить пространство имен country-block, которое я создал, но это не работает:

 Error: syntax error, unexpected drop ip saddr country-block@country-block drop ^^^^ 

Кто-нибудь знает способ ссылки на набор, который находится в другой таблице? Мне не хотелось бы сворачивать все мои наборы в мою единственную таблицу «фильтр» и поддерживать их все в одном файле – какой уродливый беспорядок.

пс. Я попытался пометить это «nftables», но, видимо, это новый тег, и у меня нет репутата, необходимого для создания нового тега. Может ли какой-нибудь человек с необходимой репутацией пометить его соответствующим образом?

One Solution collect form web for “nftables ip set несколько таблиц”

Я получил ответ от разработчиков nftables после того, как спросил их список рассылки. Короткий ответ заключается в том, что ссылки в других таблицах невозможны.

Тем не менее, я, по крайней мере, мог хранить свои наборы в отдельном файле и приводить их через @include. Это делает мои ipsets более управляемыми вместо того, чтобы помещать их в один массивный файл конфигурации. Синтаксис выглядит так:

 # nftables.conf include "/etc/nftables.country-block" table inet filter { set country-block { type ipv4_addr; flags interval; elements = $country_block_list } } # nftables.country-block define country_block_list = { # comma-separated CIDR blocks here } 

Но стоит отметить, что с этой записью (2016-12-21) для этого требуется утилита командной строки nft, построенная из последнего исходного кода nftables, поскольку самая последняя версия, доступная в это время (nftables v0.6), будет выведите ошибку с указанной выше конфигурацией. В nftables есть довольно хорошая вики, в которой описывается, как создавать и устанавливать из исходного кода, хотя я не ожидаю, что это будет необходимо через несколько месяцев после выпуска новой версии и выход из нее во все различные дистрибутивы.

Interesting Posts

Отобразить имя сети в xmobar

Выполнить две команды по одному аргументу

Транспонирование строк и столбцов

Как отключить сообщение «Последний неудачный вход в систему» ​​на Centos?

сопоставление sed шаблонов с удалением по строке

Symlink все подкаталоги в каталоге в другой каталог

logrotate log file with enging date issue

Сравнение текстовых файлов с использованием Bash и AWK

FTP-клиент с хорошим графическим интерфейсом?

Настройка локального настроенного DNS для использования внешнего DNS для внешней адресации

Объединить вывод нескольких независимых процессов в другом терминале

Команда 'python' доступна в '/ usr / bin / python'

grep + регулярное выражение для соответствия слову, расположенному перед последним словом

Использование syslog из модуля ядра

могу ли я использовать логические операторы для удаления всех файлов, которые соответствуют одному и / или другому шаблону в одной строке?

Linux и Unix - лучшая ОС в мире.