Перейти к основному содержанию
nftables — система фильтрации пакетов в современных ядрах Linux. В Debian она используется как стандартная основа межсетевого экрана. Это руководство описывает базовую настройку сервера Debian/Ubuntu, управляемого по SSH.
Неправильный набор правил может прервать SSH-соединение. Разрешите в правилах фактический порт SSH и держите консоль VNC доступной, пока не проверите новое подключение.

Перед началом

  • Используйте только один менеджер межсетевого экрана. Не управляйте правилами напрямую через nftables, пока работает UFW или firewalld. Если предпочитаете более простой инструмент, см. UFW (Uncomplicated Firewall).
  • Docker, WireGuard, панели VPN и другое ПО могут добавлять собственные правила. Пример ниже начинается с flush ruleset: эта команда удалит такие правила, пока соответствующее ПО не добавит их снова.

Установка и проверка nftables

Изучите существующие правила, прежде чем заменять их.

Создание базового набора правил

Сохраните резервную копию текущего файла конфигурации:
Откройте /etc/nftables.conf для редактирования:
Следующий пример блокирует входящий трафик, кроме SSH, HTTP, HTTPS, ICMP и ответов на соединения, инициированные VPS. Таблица inet охватывает IPv4 и IPv6:
Замените 22 на фактический порт SSH. Добавьте или удалите порты служб по необходимости. Сохраните правило ICMP, поскольку для работы IPv6 необходим ICMPv6.
Цепочка forward блокирует маршрутизируемый трафик. Если VPS маршрутизирует трафик VPN или контейнеров, добавьте для него правила пересылки либо используйте правила из руководства по вашей VPN.

Проверка и применение правил

Проверьте синтаксис без применения правил:
Примените правила и включите их загрузку при запуске системы:
Откройте второе SSH-соединение со своего компьютера и убедитесь, что оно работает, прежде чем закрывать исходный сеанс. Также проверьте разрешённые порты приложений.

Ограничение доступа к службе доверенным адресом

Например, замените правило SSH правилом, разрешающим SSH только с известного адреса администратора:
Замените приведённые для примера адрес и порт своими. Для IPv6-адреса используйте ip6 saddr. Удаляйте более широкое правило tcp dport 22 accept только после проверки доступа с доверенного адреса.

Восстановление доступа при блокировке соединения

  1. Войдите через консоль VNC.
  2. Исправьте /etc/nftables.conf или восстановите резервную копию командой sudo cp /etc/nftables.conf.bak /etc/nftables.conf.
  3. Загрузите правила заново: sudo nft -f /etc/nftables.conf.
Если VPS не загружается или войти через VNC не получается, воспользуйтесь руководством по аварийному диску Linux, чтобы смонтировать установленную систему и исправить настройки её межсетевого экрана. Полный синтаксис описан в вики nftables.
Последнее изменение 7 ноября 2026 г.