我想一次离开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会给出上下文…但是你的问题非常模糊。
显然configurationselinux是不平凡的。 你不妨从这里开始 。
setenforce 0
把selinux放到宽松的模式,它允许任何东西,但logging它允许的。 重新启动或
setenforce 1
返回阻止任何政策不允许的。
在Fedora中查看这些针对mySQL的selinux策略文档 。
你确定它是selinux? 来自外部的正常连接应由selinux允许。 所以它也可能是防火墙。 如果你有本地服务试图连接到mysqld,那是不同的: http : //docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/sect-Managing_Confined_Services-MySQL-Booleans.html
ausearch命令可以帮助查找错误日志。
你也可以build立本地政策:
“你可以生成一个本地策略模块来允许这个访问。现在通过执行:”允许这个访问
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