netlabelctl(8) | Документация по NetLabel | netlabelctl(8) |
netlabelctl - утилита управления NetLabel
netlabelctl [<global_flags>] <module> [<module_commands>]
Утилита управления NetLabel, netlabelctl, это программа командной строки, которая позволяет системным администраторам настраивать систему NetLabel в ядре. Утилита основана на различных "модулях", которые соответствуют различным типам поддерживаемых ядром команд NetLabel.
Модуль управления используется для выполнения общих запросов о подсистеме NetLabel внутри ядра. Различные команды и их синтаксис перечислены ниже.
version
Показать
версию
протокола
управления
NetLabel ядра.
protocols
Показать
список
поддерживаемых
ядром
протоколов
проставления
меток.
Модуль сопоставления доменов используется для сопоставления различных протоколов проставления меток NetLabel либо с конкретными доменами LSM, либо с сопоставлением доменов по умолчанию. Каждый модуль LSM отвечает за определение того, что представляет собой домен. При использовании SELinux следует использовать обычный домен SELinux, то есть "ping_t". Выбор протокола возможен не только исключительно на основе домена LSM; при выборе протокола проставления меток можно одновременно учитывать как домен LSM, так и адрес назначения. Селекторы сетевых адресов могут определять либо отдельные узлы, либо целые сети. Они работают как для IPv4, так и для IPv6 (но выбранный протокол проставления меток должен поддерживать выбранную версию IP). При указании протокола проставления меток, который следует использовать для каждого сопоставления, доступно необязательное поле "extra"; оно используется для дальнейшего определения конфигурации конкретного протокола проставления меток. Если указывается протокол без меток, "unlbl", можно использовать дополнительное значение: "4" или "6". В этом случае сопоставляться будут только адреса IPv4 или IPv6. Если дополнительное значение не указано, сопоставление будет выполняться для всех семейств адресов. При указании протокола CIPSO/IPv4 или CALIPSO/IPv6, "cipso" или "calipso", необходимо указать значение DOI (domain of interpretation, область интерпретации); подробные сведения доступны в разделе ПРИМЕРЫ. Ниже перечислены различные команды и их синтаксис.
add default|domain:<domain>
[address:<ADDR>[/<MASK>]]
protocol:<protocol>[,<extra>]
Добавить
новый
домен LSM /
сетевой
адрес к
сопоставлению
протоколов
NetLabel.
del default|domain:<domain>
Удалить
существующий
домен LSM из
сопоставления
протоколов
NetLabel.
list
Показать
все
настроенные
сопоставления
доменов LSM с
протоколами
NetLabel.
Модуль без меток (unlbl) управляет протоколом без меток, который используется, когда не требуется проставлять метки для исходящего трафика, а также когда система получает трафик без меток. Этот модуль позволяет администраторам блокировать все исходящие пакеты без меток с помощью флага "accept" и назначать трафику без меток статические (резервные) метки безопасности на основе входящего сетевого интерфейса и адреса источника.
accept on|off
Переключить
флаг
принятия
трафика
без меток.
add default|interface:<dev>
address:<addr>[/<mask>] label:<label>
Добавить
новую
статическую/резервную
запись.
del default|interface:<dev>
address:<addr>[/<mask>]
Удалить
существующую
статическую/резервную
запись.
list
Показать
состояние
флага
принятия
трафика
без меток.
Модуль CIPSO/IPv4 (cipso) управляет подсистемой проставления меток CIPSO/IPv4 в ядре. Подсистема CIPSO/IPv4, которую предоставляет NetLabel, поддерживает несколько областей интерпретации (DOI), а модуль CIPSO/IPv4 позволяет использовать различные конфигурации для каждой DOI. В настоящее время имеется три типа конфигураций: "trans" (позволяет преобразовывать метки конфиденциальности MLS в режиме реального времени), "pass" (не выполняет преобразование меток конфиденциальности MLS) и "local" (передаёт полную метку безопасности LSM по соединениям localhost/loopback). Независимо от того, какой тип конфигурации выбран, необходимо указать значение DOI, а также (если выбрана конфигурация "trans" или "pass") список типов тегов CIPSO/IPv4 для использования при создании меток пакетов CIPSO/IPv4. Список тегов CIPSO/IPv4 выстроен в определённом порядке: если возможно, при создании метки CIPSO/IPv4 используется первый тип тегов в списке. Если первый тип тегов невозможно использовать, по порядку будут проверены все остальные типы тегов, пока не будет найден подходящий. Если корректный тип тегов не удастся найти, операция создания метки CIPSO/IPv4 завершится неудачно; обычно это происходит при создании нового сокета. Ниже перечислены различные команды и их синтаксис.
add trans doi:<DOI> tags:<T1>,<Tn>
levels:<LL1>=<RL1>,<LLn>=<RLn>
categories:<LC1>=<RC1>,<LCn>=<RCn>
Добавить
новую
конфигурацию
CIPSO/IPv4, в
которой
используется
стандартное/преобразованное
сопоставление
с
указанными
преобразованиями
уровня и
категории.
Преобразование
уровней
выполняется
таким
образом,
что
локальный
уровень "LLn"
преобразовывается
в
удалённый
уровень "RLn";
для
входящих
пакетов
выполняется
обратное
преобразование.
Такое же
преобразование
выполняется
для
категорий
с помощью
"LCn" и "RCn".
Чтобы
пакет был
принят или
чтобы
приложением
был создан
сокет, в
метке
конфиденциальности
MLS должно
присутствовать
преобразование
уровня
конфиденциальности
и всех
категорий;
если не
удастся
преобразовать
запрошенную
метку
конфиденциальности
целиком,
произойдёт
сбой
приложения.
add pass doi:<DOI> tags:<T1>,<Tn>
Добавить
новую
конфигурацию
CIPSO/IPv4 без
преобразований
уровня или
категорий.
add local doi:<DOI>
Добавить
новую
конфигурацию
CIPSO/IPv4 для
соединений
localhost/loopback.
del doi:<DOI>
Удалить
существующую
конфигурацию
CIPSO/IPv4 с
указанным
значением
DOI. Если
имеются
какие-либо
сопоставления
доменов LSM,
которые
используют
эту DOI, они
также
будут
удалены.
list [doi:<DOI>]
Показать
список
всех
конфигураций
CIPSO/IPv4 или
только
конфигурацию,
соответствующую
указанной
(необязательно)
DOI.
Модуль CALIPSO/IPv6 (calipso) управляет подсистемой проставления меток CALIPSO/IPv6 в ядре. Работа этого модуля похожа на работу подсистемы CIPSO/IPv4, но протокол указывает только один тип тегов (эквивалентно типу тегов 1 CIPSO), поэтому тип тегов не нужно задавать. Кроме того, отсутствует поддержка конфигураций "local" и "trans". Ниже перечислены различные команды и их синтаксис.
add pass doi:<DOI>
Добавить
новую
конфигурацию
CALIPSO/IPv6 без
преобразований
уровня или
категорий.
del doi:<DOI>
Удалить
существующую
конфигурацию
CALIPSO/IPv6 с
указанным
значением
DOI. Если
имеются
какие-либо
сопоставления
доменов LSM,
которые
используют
эту DOI, они
также
будут
удалены.
list [doi:<DOI>]
Показать
список
всех
конфигураций
CALIPSO/IPv6 или
только
конфигурацию,
соответствующую
указанной
(необязательно)
DOI.
Возвращает ноль при успешном завершении или значения errno при ошибках.
netlabelctl cipso add trans doi:8 tags:1 levels:0=0,1=1
categories:0=1,1=0
Добавить
конфигурацию
CIPSO/IPv4 со
значением DOI
"8",
используя
тег CIPSO "1"
(разрешительный
битовый
тег).
Указанное
сопоставление
преобразует
локальные
уровни LSM "0" и
"1",
соответственно,
в уровни CIPSO
"0" и "1", в то
время как
локальные
категории LSM
"0" и "1",
соответственно,
сопоставляются
с
категориями
CIPSO "1" и "0".
netlabelctl -p cipso list
Показать
все
конфигурации
CIPSO/IPv4 в
доступном
для
прочтения
человеком
формате.
netlabelctl -p cipso list doi:16
Показать
конкретные
сведения о
конфигурации
CIPSO/IPv4 DOI 16.
netlabelctl cipso del doi:8
Удалить
конфигурацию
CIPSO/IPv4,
назначенную
для DOI 8. Все
сопоставления
доменов,
которые
используют
эту
конфигурацию,
также
будут
удалены.
netlabelctl map add domain:lsm_domain protocol:cipso,8
Добавить
сопоставление
доменов,
чтобы для
всех
исходящих
пакетов,
которые
отправляются
из "lsm_domain",
проставлялись
метки в
соответствии
с
протоколом
CIPSO/IPv4 с DOI 8.
netlabelctl map add domain:lsm_domain address:192.168.1.0/24
protocol:cipso,8
Добавить
сопоставление,
чтобы для
всех
исходящих
пакетов,
которые
отправляются
из "lsm_domain" в
сеть 192.168.1.0/24,
проставлялись
метки в
соответствии
с
протоколом
CIPSO/IPv4 с DOI 8.
netlabelctl -p map list
Показать
все
сопоставления
доменов в
доступном
для
прочтения
человеком
формате.
netlabelctl del domain:lsm_domain
Удалить
сопоставление
доменов
для "lsm_domain".
Пакеты,
которые
отправляются
из "lsm_domain",
будут
направляться
согласно
сопоставлению
NetLabel по
умолчанию.
netlabelctl unlbl add interface:lo address:::1 label:foo
Добавить
статическую/резервную
метку,
чтобы
назначить
метку
безопасности
"foo" пакетам
без меток,
которые
поступают
в систему
через
интерфейс
"lo" (loopback) с
IPv6-адресом
источника
"::1" (localhost).
netlabelctl unlbl add default address:192.168.0.0/16
label:bar
Добавить
статическую/резевную
метку,
чтобы
назначить
метку
безопасности
"bar" пакетам
без меток,
которые
поступают
в систему
через
любой
интерфейс
с IPv4-адресом
источника
в сети 192.168.0.0/16.
Подсистема NetLabel поддерживается в ядре Linux версии 2.6.19 и выше. Статические (резервные) метки поддерживаются только в ядре Linux версии 2.6.25 и выше. Селекторы адресов для сопоставления доменов поддерживаются только в ядре Linux версии 2.6.28 и выше, а CALIPSO/RFC5570 поддерживается только в ядре Linux версии 4.8.0 и выше.
Веб-сайт проекта NetLabel, на котором доступны дополнительные сведения, включая репозиторий исходного кода, находится по адресу https://github.com/netlabel. Пожалуйста, отправляйте сообщения об ошибках через сайт проекта или напрямую автору.
Paul Moore <paul@paul-moore.com>. Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
31 мая 2013 | paul@paul-moore.com |