我将proftpd 用于MySQL 的虚拟FTP 托管。
我已经开始编写细粒度的 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
链接到 libmysqlclient 的 MySQL客户端从
[client]
./etc/my.cnf
这是此类客户端的典型行为,当您使用其 MySQL 模块时, ProFTPD 就是这样的客户端。SELinux 布尔值
ftpd_full_access
将允许此访问,但它也有效地禁用 SELinux 以进行整个 FTP 守护程序的操作,因此不应该在不小心使用的情况下使用它。如果是我,我会提交一个功能请求,反对
selinux-policy
请求添加一个布尔值以允许添加此访问权限,或者可能将其添加到ftpd_connect_db
布尔值中。来自非文档
问题:我如何配置
mod_sql
以便它使用加密连接(例如SSL/TLS)到后端数据库服务器?答:如果您使用的是 MySQL,那么您可以在配置文件的[client]部分进行
my.cnf
配置。这就是为什么proftpd 尝试读取/etc/my.cnf
只是补充一点,源代码也提到了这一点:
我检查了最近的快照。具体来说,
proftpd-cvs-20130903/contrib/mod_sql_mysql.c
: