Kodomo

Пользователь

Домашнее задание №6

Задание выполняется на виртуальных машинах. После выполнения нужно записаться в очередь на проверку. Дедлайн – 01:00 AM 24 декабря (ночь перед занятием).

Настройка файервола nftables

В Debian для фильтрации пакетов используется nftables – подсистема ядра Linux, заменившая устаревшие iptables/arptables/ebtables.

Её настройка осуществляется с помощью утилиты nft, которая имеет собственный язык команд. Для удобства использования, в systemd присутствует юнит nftables.service, который при активации выполняет команды nft, записанные в файл /etc/nftables, который, таким образом, является одновременно файлом конфигурации системного файервола и сценарием на языке команд nft.

По умолчанию systemd-сервис nftables не активен, а файл /etc/nftables содержит только команду сброса старых правил (она необходима, чтобы при перезапуске сервиса правила изменялись, а не накапливались) и заготовки пустых цепочек для входящих, исходящих и пересылаемых пакетов.

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

ВНИМАНИЕ! Удаленная настройка файервола очень опасна, вы можете лишить себя сетевого доступа к узлу, внеся неверную конфигурацию.

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

   1 #!/usr/bin/env bash
   2 sleep 60
   3 systemctl stop nftables

Скрипт советую запускать в фоновом режиме с игнорированием сигналов SIGHUP, иначе он может быть прерван при потере соединения.

Правила фильтрации пакетов

Вам надо будет настроить фильтрацию только входящих пакетов для семейств адресов IPv4/IPv6, используя семейство адресов inet. Других правил фильтрации в конфигурации быть не должно. Пустые цепи для исходящих и пересылаемых пакетов можете оставить или удалить.

Нужно настроить следующие правила.

На каждое добавленное правило, кроме последнего, должен быть установлен счетчик срабатываний.

Справочная страница nft(8) очень объемная и содержит множество деталей, понятных только опытным сетевым администраторам. Советую начинать поиск ответа на интересующий вопрос на страницах wiki проекта nftables.

Для зачета задания нужно создать файл /root/task6.log с выдачей команды nft list ruleset, выполненой после настройки и активации файервола. Хотя бы для некоторых счетчиков должны быть ненулевые числа срабатываний.

Main/AdmLin/task6 (последним исправлял пользователь is_rusinov 2025-12-17 22:21:34)