В настоящее время нам нужно запускать что-то вроде этого каждый раз при запуске:
/usr/sbin/semanage port -a -t memcache_port_t -p tcp ${special-snowflake-port}
Было бы здорово, если бы мы могли сохранять это при перезагрузках. Ответ - скомпилировать остроту, но большой вопрос в том, как это сделать? Я ничего не видел в .fc
файловая документация предполагает, что это может быть закодировано там, а .te
синтаксис файла сложно читать. Тем не менее, очевидно, что составленные политики действительно устанавливают вещи, я просто не могу найти, как это сделать.
Что мне не хватает?
Я только что проверил команду, которую вы предоставляете в системе 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
Что вы не понимаете? Что заставляет вас думать, что это непостоянно?
Оказывается, они действительно сохраняются, и я этого не заметил. 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.