Можно ли сохранить утверждения портов selinux при перезагрузке?

В настоящее время нам нужно запускать что-то подобное каждый раз при запуске:

/usr/sbin/semanage port -a -t memcache_port_t -p tcp ${special-snowflake-port}

Было бы здорово, если бы мы могли сохранить это после перезагрузки. Ответ состоит в том, чтобы скомпилировать poicy, но главный вопрос в том, как это сделать? Ничего, что я видел в .fc документация файла предполагает, что это может быть закодировано там и .te Синтаксис файла довольно сложен для чтения. Тем не менее, ясно, что политики для каждого скомпилированы, я просто не могу найти как.

Что мне не хватает?

2 ответа

Решение

Оказывается, они на самом деле сохранились, и я этого не заметил. semanage хранит файловые представления политик в /etc/selinux/${config-file}/modules/active, В моем случае список портов находится в:

/etc/selinux/targeted/modules/active/ports.local

Это заполнено записями, подобными этому:

portcon tcp 11222 system_u:object_r:memcache_port_t:s0

Этот каталог восстанавливается каждый раз, когда правило добавляется (-a) или удаляется (-d) с помощью semanage.

file_contexts это файл, сохраняющий контексты файла.

Это удобно, так как эти файлы работают быстрее, чем вывод semanage -l.

Я только что проверил команду, которую вы предоставляете в системе CentOS 6.5, она работает как положено и добавляет ${special-snowflake-port} к tcp memcache_port_t список. Перезагрузка тестовой виртуальной машины не изменила это, как видно

semanage port -l | grep memcache_port_t
memcache_port_t                tcp      11311, 11211
memcache_port_t                udp      11211

Это сохраняется, пока вы не удалите его

semanage port -d -t memcache_port_t -p tcp 11311
semanage port -l | grep memcache_port_t
memcache_port_t                tcp      11211
memcache_port_t                udp      11211

Что вы не так поняли? Что заставляет вас думать, что это не постоянно?

Другие вопросы по тегам