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

proftpd обращается к my.cnf

Я использую proftpd для виртуального FTP-хостинга с MySQL.

Я начал писать детальные политики SELinux и обнаружил, что он пытается получить доступ к файлам my.cnf.

Вопрос в том, зачем и почему?

type=AVC msg=audit(1378191337.059:153431): avc:  denied  { getattr } for  pid= comm="proftpd" path="/etc/my.cnf" dev="dm-1" ino=1180081 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=file
type=AVC msg=audit(1378191337.059:153432): avc:  denied  { read } for  pid=50590 comm="proftpd" name="my.cnf" dev="dm-1" ino=1180081 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=file
type=AVC msg=audit(1378191337.059:153432): avc:  denied  { open } for  pid=50590 comm="proftpd" path="/etc/my.cnf" dev="dm-1" ino=1180081 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=file

Выход ps auxwf|grep 50590 сейчас пусто - процесса больше не существует. Похоже, он пытается делать это при каждой попытке входа в систему.

Обновить: Заполнен запрос об ошибке / функции, патч отправлен разработчиком: http://bugs.proftpd.org/show_bug.cgi?id=3971

Клиенты MySQL, которые связываются с libmysqlclient читать глобальные параметры из [client] раздел /etc/my.cnf. Это типичное поведение для таких клиентов, и ProFTPD - такой клиент когда вы используете его модуль MySQL.

Логическое значение SELinux ftpd_full_access разрешит этот доступ, но также эффективно отключает SELinux для всех операций FTP-демона, поэтому его не следует использовать без особой осторожности.

Если бы это был я, я бы подал запрос функции против selinux-policy запросить логическое значение, разрешающее этот доступ, или, возможно, добавить его в ftpd_connect_db логическое.

Из оф. Документа

Вопрос: Как мне настроить mod_sql чтобы он использовал зашифрованные соединения (например SSL / TLS) на сервер базы данных?
Ответ: Если вы используете MySQL, вы можете настроить это в [клиент] раздел вашего my.cnf Файл конфигурации.

Вот почему proftpd пытается прочитать /etc/my.cnf

Просто добавлю, что в исходном коде также упоминается это:

Я проверил недавний снимок. В частности, proftpd-cvs-20130903/contrib/mod_sql_mysql.c:

485   /* Make sure the MySQL config files are read in.  This will read in
486    * options from group "client" in the MySQL .cnf files.
487    */
488   mysql_options(conn->mysql, MYSQL_READ_DEFAULT_GROUP, "client");