Несколько дней тому назад вышла новая версия пакетного фильтра nftables 0.9.3который разрабатывать как замену iptables, ip6table, arptables и ebtables за счет унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов.
Пакет nftables использует структурные части инфраструктуры NetfilterВроде система отслеживания подключений (система отслеживания подключений) или подсистема регистрации. Также предоставляется уровень совместимости для преобразования существующих правил брандмауэра iptables в их эквиваленты в nftables.
О Nftables
nftables включает компоненты пакетного фильтра которые работают в пользовательском пространстве, а на уровне ядра подсистема nf_tables предоставляет часть ядра Linux начиная с версии 3.13.
На уровне ядра предоставляется только общий интерфейс. который не зависит от конкретного протокола и предоставляет базовые функции для извлечения данных из пакетов, выполнения операций с данными и управления потоком.
Сама логика фильтрации и процессоры, зависящие от протокола, компилируются в байт-код в пользовательском пространстве, после чего этот байт-код загружается в ядро с помощью интерфейса Netlink и запускается на специальной виртуальной машине, которая выглядит как BPF (пакетные фильтры Беркли).
Такой подход позволяет значительно уменьшить размер кода фильтрации, выполняемого на уровне ядра, и исключить все функции правил синтаксического анализа и логику работы с протоколами в пользовательском пространстве.
Основные преимущества nftables:
- Архитектура, встроенная в ядро
- Синтаксис, объединяющий инструменты IPtables в единый инструмент командной строки.
- Уровень совместимости, позволяющий использовать синтаксис правил IPtables.
- Новый простой в освоении синтаксис.
- Упрощенный процесс добавления правил межсетевого экрана.
- Улучшенная отчетность об ошибках.
- Уменьшение тиражирования кода.
- Лучшая общая производительность, срок хранения и дополнительные изменения в фильтрации правил.
Что нового в nftables 0.9.3?
В этой новой версии nftables 0.9.3 добавлена поддержка совпадающих пакетов через некоторое время. С его помощью вы можете определить интервалы времени и даты. в котором будет активировано правило и настроена активация в отдельные дни недели. Также добавлен новый параметр «-T» для отображения времени эпохи в секундах.
Еще одно заметное изменение - поддержка восстановления и сохранения тегов SELinux (secmark), да, а также поддержка списков карт synproxy, что позволяет вам определять более одного правила для каждой серверной части.
Из других изменений которые выделяются из этой новой версии:
- Возможность динамического удаления элементов набора-набора из правил обработки пакетов.
- Поддержка сопоставления VLAN по идентификатору и протоколу, определенным в метаданных интерфейса сетевого моста.
- Опция «-t» («–terse») для исключения элементов набора-набора при отображении правил. При выполнении «nft -t list ruleset» он покажет:
- Набор правил списка NFT.
- Возможность указать более одного устройства в строках netdev (работает только с ядром 5.5) для объединения общих правил фильтрации.
- Возможность добавлять описания типов данных.
- Возможность создания интерфейса командной строки с библиотекой Linenoise вместо libreadline.
Как установить новую версию nftables 0.9.3?
Чтобы получить новую версию на данный момент можно скомпилировать только исходный код в вашей системе. Хотя через несколько дней уже скомпилированные бинарные пакеты будут доступны в разных дистрибутивах Linux.
Кроме того изменения, необходимые для работы nftables 0.9.3, включены в будущую ветку ядра Linux 5.5. Следовательно, для компиляции у вас должны быть установлены следующие зависимости:
Их можно скомпилировать с помощью:
./autogen.sh
./configure
make
make install
А для nftables 0.9.3 скачиваем с следующая ссылка. А компиляция выполняется с помощью следующих команд:
cd nftables
./autogen.sh
./configure
make
make install