Translation(s): English - Русский


nftables - это фреймворк проекта Netfilter, которая обеспечивает фильтрацию пакетов, трансляцию сетевых адресов (NAT) и другие операции по пакетированию.

Два наиболее распространенных использования nftables - это фаервол и NAT.

nftables заменяет фреймворк iptables.

Текущий статус

Примечание: Debian Buster использует фреймворк nftables по умолчанию.

Начиная с Debian Buster, nf_tables бэкэнд по умолчанию для iptables, посредством уровня iptables-nft (т.е. используя синтаксис iptables с подсистемой ядра nf_tables). Это также влияет на ip6tables, arptables и ebtables.

Вы можете переключаться между iptables-nft и iptables-legacy с помощью update-alternatives (то же самое относится и к arptables и ebtables).

По умолчанию, начинается с Debian Buster:

# update-alternatives --set iptables /usr/sbin/iptables-nft
# update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
# update-alternatives --set arptables /usr/sbin/arptables-nft
# update-alternatives --set ebtables /usr/sbin/ebtables-nft

Переключение на устаревшие версии:

# update-alternatives --set iptables /usr/sbin/iptables-legacy
# update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
# update-alternatives --set arptables /usr/sbin/arptables-legacy
# update-alternatives --set ebtables /usr/sbin/ebtables-legacy

nftables в Debian это легко

Если вы хотите включить фаервол по умолчанию в Debian, выполните следующие команды:

# apt install nftables
# systemctl enable nftables.service

После чего, nftables будет включаться при загрузке. По умолчанию, правила находятся в /etc/nftables.conf .

Чтобы сбросить все правила в nftables, и остановить фильтрацию:

# nft flush ruleset

Чтобы предотвратить запуск nftables при загрузке:

# systemctl mask nftables.service

Чтобы удалить пакет nftables и все его следы в системе:

# apt purge nftables

Вам следует рассмотреть возможность использования оболочки вместо написания собственных сценариев брандмауэра. Рекомендуется запустить ?firewalld, который довольно хорошо интегрируется в систему.

FAQ

Что такое nftables?

Is the new framework by the Netfilter Project, allowing you to perform packet filtering (firewalling), NAT, mangling and packet classification. Это новый фреймворк проекта Netfilter, который выполняет фильтрацию пакетов (firewall), NAT, искажение и классификацию пакетов.

Должен ли я настроить фаервол используя nftables?

Да. Создание новых межсетевых экранов поверх iptables не рекомендуется.

Должен ли я заменить правила iptables на nftables?

Да, nftables - это замена iptables. Есть несколько инструментов для облегчения этой задачи.

Пожалуйста, прочитайте: https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables

Почему новый фреймворк?

В предыдущем фреймворке (iptables) есть несколько проблем, которые сложно решить, в том числе масштабируемость, производительность, поддержка кода и т.д.

Какие основные отличия?

В iptables по умолчанию есть несколько таблиц (filter, nat) и цепочек (FORWARD, INPUT ...). В nftables нет таблиц/цепочек по умолчанию.

Кроме того, в iptables у вас есть только одна цель на правило (-j ACCEPT, -j LOG ...). В nftables вы можете выполнять несколько действий в одном правиле.

nftables включает в себя возможности встроенных наборов данных. В iptables это не возможно, и есть отделенный инструмент: ?ipset.

В структуре iptables есть инструменты для каждого семейства: iptables, ip6tables, arptables, ebtables. nftables позволяет вам управлять всеми семействами в одном инструменте CLI.

Этот новый фреймворк содержит новую подсистему ядра Linux, известную как nf_tables. Новый механизм движка основан на BPF-подобных системах, с набором базовых выражений, которые можно комбинировать для создания сложных правил фильтрации.

Стоит ли смешивать правила nftables и iptables/ebtables/arptablesShould?

Нет, если вы не знаете что делаете.

Я знал синтаксис iptables. В nftables новый синтаксис?

Да, и он намного лучше :-)

Помощь в переходе на nftables: https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables

Новый синтаксис

Создать базовую таблицу IPv4:

# nft add table inet filter

Создать цепочку для исходящего трафика IPv4:

# nft add chain inet filter input { type filter hook input priority 0\; }

Правило, для подсчета входящих пакетов (IPv4):

# nft add rule inet filter input counter accept

Показать результат предыдущих команд:

# nft list table inet filter

Сбросить правила для цепочки filter/input:

# nft flush chain inet filter input

Удалить цепочки filter/input:

# nft delete chain inet filter input

Удалить таблицу filter:

# nft delete table inet filter

Семейство не обязательных параметров. По умолчанию используется 'ip':

# nft add table ip6 filter
# nft add chain ip6 filter input
# nft add rule ip6 filter input counter accept

Директория с примерами конфигураций в Debian:

#/usr/share/doc/nftables/examples/

Подсчет входящего трафика на порт tcp/22:

# nft add rule inet filter input tcp dport 22 counter

Подсчет и прием трафика на 80/tcp и 443/tcp для новых и существующих соединений:

# nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept

Другие ресурсы

Посетите официальный wiki сайт nftables: http://wiki.nftables.org/


CategorySystemAdministration