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

Разблокируйте Android зашифрованный файл DISK IMAGE FILE на SD-карте на настольном Linux

ls выводит несколько столбцов, даже если отправлен в grep с помощью zml-конфигурации grml

Можно ли игнорировать сигнал (потерять)?

использование памяти процесса

Как узнать, к какому пакету принадлежит пользователь?

Почему моя команда mmv не перезаписывает файлы?

Разочарование проблемы, когда ни cron, ни su -c не выполняет мою работу (разрешения?)

человек xargs говорит, что стандартный ввод ограничивается пробелами; но так ли?

Правильное текстовое название для <<

keybinding в xterm, чтобы сдвинуть одну строку вверх, используя shift + up

Как загрузить на сервер unix?

Новые Tmux Panes идут в тот же каталог, что и текущая панель; новые окна tmux переходят в домашнюю директорию?

Я хочу, чтобы эхо значение в a1, a2, a3. Но мой код печатает только a1, a2 и a3, а не значение, хранящееся внутри них

Есть ли что-то важное в / var?

shift: both_capslock отключает нормальное смещение

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