Как программно определить эффективную метку порта / тип / контекст - PullRequest
0 голосов
/ 18 июня 2019

Допустим, я добавил метку порта локального хранилища для 443 / tcp.

Когда я затем запрашиваю типы для 443 / tcp, я получаю список типов, которые МОГУТ быть эффективным типом.

seinfo --portcon=443 --proto=tcp
        portcon tcp 442-444 system_u:object_r:xdmcp_port_t:s0
        portcon tcp 443 system_u:object_r:http_port_t:s0
        portcon tcp 1-511 system_u:object_r:reserved_port_t:s0

ИЛИ

sepolicy network -p 443 | grep tcp
443: tcp reserved_port_t 1-511
443: tcp xdmcp_port_t 442-444
443: tcp http_port_t 443

ИЛИ

semanage port -l

и

semanage port -lC

но тогда мне также придется разделить списки портови проанализировать диапазоны портов, но, по крайней мере, он позволяет мне определить, было ли определение из локального хранилища.

ИЛИ libsemanage

semanage_port_list
semanage_port_list_local

, но опять же необходимодиапазоны разбора

/ var / log / audit / audit.log имеет эффективный тип при сбое доступа, но каков простой вызов для возврата типа для определенного порта?Действительно ли мне нужно работать со списком правил, чтобы определить эффективный тип?

  • определения локального хранилища переопределяют постоянные определения политики.
  • более конкретные определения имеют приоритет (https://danwalsh.livejournal.com/47533.html), но я не уверен, являются ли какие-либо особенные типы, например reserved_port_t, unreserved_port_t. А что более конкретно означает размер диапазона?
  • по умолчанию - port_t. (Не уверен, зависит ли это от политики).

Обновление:

Мое текущее решение - небольшая утилита libsepol для вызова sepol_port_sid

...