Можно ли сохранить утверждения портов 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
Что вы не так поняли? Что заставляет вас думать, что это не постоянно?