Назад | Перейти на главную страницу

Как мне исключить MySQL из целевого списка SELinux?

Я запускаю CentOS 5.5 и пытаюсь разместить MySQL на нестандартном порту ... на который жалуется SELinux. MySQL отлично запускается с выключенным SELinux и отказывается запускаться с ним. SELinux в настоящее время использует тип "целевой"

Не желая полностью отключать SELinux, я хотел бы исключить MySQL из списка целевых демонов. Кто-нибудь может сказать мне, как отключить SELinux для этой службы?

Вам вообще не нужно отключать SELinux. Что вам нужно сделать, так это пометить порт, который вы хотите использовать.

Чтобы проверить наличие помеченных портов для MySQL в политике:


 # semanage port -l | grep mysql
mysqld_port_t                  tcp      1186, 3306, 63132-63163
mysqlmanagerd_port_t           tcp      2273

Чтобы пометить порт $ custom:


 # semanage port -a -t mysqld_port_t -p tcp $custom

Основным ориентиром для этого является semanage(8) справочная страница.

Если вы включите переход домена для MySQL с mysqld_disable_trans boolean, MySQL больше не защищен SELinux.

Подробнее: установка этого логического значения заставит mysqld работать как initrc_t, что более или менее похоже на unconfined_t. Это означает, что ограничения SELinux на то, какой порт MySQL может и не может использовать, снимаются.

Переверните логическое значение, используя:

setsebool mysqld_disable_trans 1

или сделать его постоянным с помощью

setsebool -P mysqld_disable_trans 1

Еще более подробно: логическое значение отключает переход от initrc_t домен в mysqld_t домен в момент запуска mysqld демоном инициализации во время загрузки или при переходе с unconfined_t к mysqld_t если он запускается вручную после загрузки. Таким образом, mysqld вообще не работает вне SELinux, а в домене, который имеет гораздо меньше ограничений, чем mysqld_t есть.

Многие службы, которые существуют в собственной политике RHEL5 / CentOS 5, имеют логические значения * _disable_trans, чтобы отключить переход домена для этой службы. В новых дистрибутивах и новых политиках, таких как Fedora и RHEL6, вы просто выгружаете полный модуль для mysqld, чтобы SELinux не блокировал действия вашего приложения.