歡迎您光臨本站 註冊首頁

SeLinux下VSFTP伺服器的PAM_MYSQL認證

←手機掃碼閱讀     火星人 @ 2014-03-05 , reply:0

SeLinux下VSFTP伺服器的PAM_MYSQL認證

按照帖子上方法,在關閉SeLinux情況下,已成功設置PAM_MYSQL虛擬用戶的VSFTP,但是當重新將SeLinux設置為強制時,VSFTP就無法進行用戶認證了,查了錯誤日誌:

message日誌:
localhost kernel: audit(1179060097.966:58): avc:  denied  { connectto } for  pid=16135 comm="vsftpd" name="mysql.sock" scontext=system_u:system_r:ftpd_t:s0 tcontext=system_u:system_r:mysqld_t:s0 tclass=unix_stream_socket

Secure日誌:
localhost vsftpd: pam_mysql - MySQL error (Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13))

哪位高手能否幫忙解決一下,謝謝!
《解決方案》

哪位對SeLinux有深的研究的,幫幫忙吧
《解決方案》

最簡單的就是關掉selinux.正在研究selinux.但還沒有搞明白完整構架.chcon可以修改文件的策略,但不知道給什麼可以讓其正常運行.關注中....
《解決方案》

查了很多文檔,發現是MYSQL的POLICY造成的,主要是pam_mysql.so的SELINUX的角色不能使用MYSQL造成的。但我有沒有本事改策略,只好想了個笨辦法,因為PHP也需要調用MYSQL,於是我找到PHP當中的MYSQL.so的角色,textrel_shlib_t,將pam_mysql.so原來的lib_t角色改成了textrel_shlib_t角色。呵呵~~,那個煩人的avc:denied再也沒出現了,測試了一下,FTP工作正常。

還請高手指點,改成textrel_shlib_t后,有沒有什麼隱患?謝謝!

命令是chcon -t testrel_shlib_t /lib/security/pam_mysql.so
《解決方案》

如果你用的是Redhat RHEL5的話,可使用audit2allow和semodule命令建立local policy,並載入到內核中,十分方便。只需:
grep setsebool /var/log/audit/audit.log | audit2allow -M <your_module_name>
semodule -i <your_module_name>

[火星人 ] SeLinux下VSFTP伺服器的PAM_MYSQL認證已經有556次圍觀

http://coctec.com/docs/service/show-post-39082.html