Page tree
Skip to end of metadata
Go to start of metadata

Подробнее про классификационные метки см. статью Метка безопасности: структура и состав
При настройках ОС, принятых по умолчанию, изменения в правилах iptables не сохраняются после перезагрузки.
Порядок действий по обеспечению восстановления правил см. Сохранение и восстановление правил iptables

Эта статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • с установленным оперативным обновлением БЮЛЛЕТЕНЬ № 20200327SE16 (оперативное обновление 5)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
    с установленным оперативным обновлением Бюллетень № 20201007SE16


Установка модулей iptables, поддерживающих работу с классификационными метками

В состав Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)с установленным оперативным обновлением БЮЛЛЕТЕНЬ № 20200327SE16 (оперативное обновление 5) включёны пакеты iptables, поддерживающие работу с  классификационными метками. Работа с  классификационными метками реализована с помощью дополнительного модуля тестирования  astralabel, обеспечивающего тестирование значений мандатных атрибутов  с помощью опций "–maclev", "–maccat" (подробности см. ниже).

Названия пакетов:

  • iptables-astralabel-generic - для использования с ядром generic;
  • iptables-astralabel-hardened - для использования с ядром hardened;
  • iptables-astralabel-common - общие для generic и hardened модули;

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

По умолчанию при установке ОС эти пакеты не устанавливаются. Установка пакетов для загруженной версии ядра может быть выполнена с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:

# для ядра generic
sudo apt install iptables-astralabel-common iptables-astralabel-`uname -r`

# для ядра hardened
sudo apt install iptables-astralabel-common iptables-astralabel-`uname -r`

При необходимости версии generic и hardened могут быть установлены одновременно. Набор вариантов пакетов в дистрибутиве конкретного обновления ОС соответствует набору доступных ядер. Проверить полный список доступных вариантов пакетов можно командой:
apt policy iptables-astralabel*


Использование модулей iptables, поддерживающих работу с классификационными метками

Модули iptables-astralabel поддерживают стандартный синтаксис командной строки, используемый в iptables, и предоставляют следующие дополнительные опции для контроля мандатных атрибутов сетевых пакетов:

ОпцияКомментарийПримеры
-m astralabelУказание на использование модуля astralabel для обработки сетевого трафика
--maclev <уровень>[:<уровень>]

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


Не принимать пакеты с иерархическими уровнями конфиденциальности от 1 до 3-х:

sudo iptables -A INPUT -m astralabel --maclev 1:3 -j DROP


Значение фильтра, задаваемого опцией maclev, может быть инверсировано с помощью модификатора "!".


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

sudo iptables -A OUTPUT -m astralabel ! --maclev 0 -j DROP

Такое правило будет пропускать исходящие пакеты, имеющие нулевой иерархический уровень конфиденциальности и ненулевые неиерархические категории конфиденциальности.
--maccat <бит_категории>

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

Нумерация битов категорий начинается с единицы.

Не пропускать исходящие пакеты с установленными одновременно битами категорий 1 и 2:

sudo iptables -A OUTPUT -m astralabel --maccat 1 --maccat 2 -j DROP


Опции maclev и maccat могут применяться одновременно в одном правиле.
Результирующий фильтр будет представлять собой объединение фильтров, заданных этими опциями.

Не принимать пакеты с установленными битами категорий 1 и 2 и уровнем конфиденциальности 3:

sudo iptables -A INPUT -m astralabel --maclev 3 --maccat 1 --maccat 2 -j DROP


Если не указаны никакие опции для фильтрации пакетов то правило применяется ко всем пакетам, имеющим ненулевую классификационную метку. Т.е. правило

sudo iptables -A OUTPUT -m astralabel -j DROP

запретит все исходящие пакеты, имеющие ненулевую классификационную метку (т.е. имеющие ненулевой уровень конфиденциальности и/или ненулевые категории конфиденциальности).

Использование ufw для работы с классификационными метками

Для управления сетевыми соединениями с учетом классификационных меток в межсетевой экран ufw добавлены опции maclev и maccat, по действию аналогичные соответствующим опциям iptables. Для того, чтобы эти опции работали, в системе должен быть установлен пакет iptables-astralabel-common и один из пакетов iptables-astralabel-generic или iptables-astralabel-hardened, соответствующий используемому ядру.

Примеры использования приведены ниже. В примерах используется протокол HTTP (TCP-порт 80):

ПримерКомментарийАналог в iptables
sudo ufw deny out 80/tcp macЗапрет отправки пакетов с ненулевой классификационной меткой-A OUTPUT -p tcp --dport 80 -m astralabel -j DROP
sudo ufw deny out 80/tcp maclev 2Запрет отправки пакетов, имеющих уровень конфиденциальности 2-A OUTPUT -p tcp --dport 80 -m astralabel --maclev 2 -j DROP
sudo ufw deny out 80/tcp maccat 3Запрет отправки пакетов, имеющих категорию конфиденциальности 3

-A OUTPUT -p tcp --dport 80 -m astralabel --maccat 3 -j DROP

Приведенные примеры работают с исходящим трафиком (указано направление out). Правила для входящего трафика создаются аналогично, только направление указывается не out, а in.
Возможность инверсии правил и возможность одновременного указания нескольких категорий в одном правиле текущей реализацией ufw не поддерживаются.


  • No labels