如何以编程方式确定有效的端口标签/类型/上下文

时间:2019-06-18 09:05:47

标签: selinux

假设我为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

OR

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

OR

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

0 个答案:

没有答案