ИМЯ
netlabelctl - утилита управления NetLabel
ОБЗОР
netlabelctl [<global_flags>] <module> [<module_commands>]
ОПИСАНИЕ
Утилита управления NetLabel, netlabelctl, это программа командной строки, которая позволяет системным администраторам настраивать систему NetLabel в ядре. Утилита основана на различных "модулях", которые соответствуют различным типам поддерживаемых ядром команд NetLabel.
ПАРАМЕТРЫ
Глобальные флаги
-h |
Показать справку | ||
-p |
Попытаться сделать вывод понятным для пользователя или "форматированным" |
-t <seconds>
Задать период ожидания ответа от подсистемы NetLabel (в секундах)
-v |
Включить подробный вывод |
|||
-V |
Показать сведения о версии |
Модули и команды
mgmt |
Модуль управления используется для выполнения общих запросов о подсистеме NetLabel внутри ядра. Различные команды и их синтаксис перечислены ниже.
version |
Показать версию протокола управления NetLabel ядра.
protocols |
Показать список поддерживаемых ядром протоколов проставления меток.
map |
Модуль сопоставления доменов используется для сопоставления различных протоколов проставления меток 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
Модуль без меток (unlbl) управляет протоколом без меток, который используется, когда не требуется проставлять метки для исходящего трафика, а также когда система получает трафик без меток. Этот модуль позволяет администраторам блокировать все исходящие пакеты без меток с помощью флага "accept" и назначать трафику без меток статические (резервные) метки безопасности на основе входящего сетевого интерфейса и адреса источника.
accept on|off |
Переключить флаг принятия трафика без меток.
add default|interface:<dev> address:<addr>[/<mask>] label:<label> |
Добавить новую статическую/резервную запись.
del default|interface:<dev> address:<addr>[/<mask>] |
Удалить существующую статическую/резервную запись.
list |
Показать состояние флага принятия трафика без меток.
cipso
Модуль 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
Модуль 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 pass doi:16 tags:1
Добавить конфигурацию CIPSO/IPv4 со значением DOI "16", используя тег CIPSO "1" (разрешительный битовый тег). Уровни/категории CIPSO и LSM передаются через подсистему NetLabel без преобразования.
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 [AT] paul-moore.com>. Перевод на русский язык выполнила Герасименко Олеся <gammaray [AT] basealt.ru>.