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

Как разрешить подключения к MySQL через SELinux?

Я хотел бы на этот раз оставить SELinux работающим на сервере для предполагаемой повышенной безопасности.
Я обычно отключаю SELinux, чтобы все заработало.
Как мне сказать SELinux разрешить соединения MySQL?
Самое большее, что я нашел в документации, - это строка с mysql.com:

Если вы работаете под Linux и включен Linux с усиленной безопасностью (SELinux), убедитесь, что вы отключили защиту SELinux для процесса mysqld.

вау ... это действительно полезно.

Чтобы проверить SELinux

sestatus

Чтобы узнать, какие флаги установлены в процессах httpd

getsebool -a | grep httpd

Чтобы разрешить Apache подключаться к удаленной базе данных через SELinux

setsebool httpd_can_network_connect_db 1

Использование опции -P делает изменение постоянным. Без этой опции логическое значение будет сброшено на 0 при перезагрузке.

setsebool -P httpd_can_network_connect_db 1

Вы получаете сообщение об ошибке? Какой вид Linux вы используете? Контекст безопасности - хорошее место для начала, если вы получаете сообщение об ошибке. ls -Z даст контекст ... Но ваш вопрос очень расплывчатый.

Очевидно, настройка selinux не является тривиальной задачей. Вы можете пожелать начало здесь.

setenforce 0

переводит selinux в разрешающий режим, в котором разрешено все, кроме того, что разрешено. Перезагрузка или

setenforce 1

возвращается к блокировке всего, что не разрешено политикой.

Посмотрите эти Документация политики selinux для mySQL в Fedora.

вы также можете создать локальную политику:

«Вы можете создать модуль локальной политики, чтобы разрешить этот доступ. Разрешите этот доступ на данный момент, выполнив:»

grep httpd /var/log/audit/audit.log | audit2allow -M mypol

semodule -i mypol.pp

или включить глобально для текущего сеанса:

setsebool httpd_can_network_connect_db 1

или постоянный:

setsebool -P httpd_can_network_connect_db 1

Вы уверены, что это селинукс? Selinux должен разрешить обычные подключения извне. Так что это тоже может быть межсетевой экран. Если у вас есть локальные службы, пытающиеся подключиться к mysqld, это нечто иное: http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/sect-Managing_Confined_Services-MySQL-Booleans.html

В ausearch команда может помочь найти журнал ошибок.