簡體   English   中英

使用selinux從apache + php查詢rpm

[英]query rpm from apache+php with selinux

我有一個在RHEL5安裝的apache服務器中運行的php腳本。 該腳本在“ rpm -q --info軟件包名稱”上運行exec。

關鍵是它可以在許可模式下與selinux一起正常工作,但在完全啟用時則不能。 因此,我認為這是一個selinux問題。

我已經開始使用audit2allow基於我發現的被拒絕條目創建規則,但是現在審核日志中不再有被拒絕,但是在啟用selinux的情況下仍然無法運行。

在我的世界中,它似乎在查詢系統是否允許運行,並且當selinux說“如果您嘗試這樣做,我會阻止您”。 因此系統不會運行exec。 如果可以的話,我想我將獲得一個“被拒絕”的信息,我可以基於它創建一個新的selinux規則。 使用selinux時,我也不會拒絕任何東西,但是它可以工作。

因此,看來我將不得不處理這一難題,並為selinux創建自定義規則。 說完了,我做了一個:

module php_rpm 1.0;

require {
    type httpd_t;
    type bin_t;
    type rpm_exec_t;
    type rpm_var_lib_t;
    class file { execute execute_no_trans getattr read execmod };
    class dir { getattr search };
}

#============= httpd_t ==============
allow httpd_t rpm_exec_t:file { execute execute_no_trans getattr read execmod };
allow httpd_t rpm_var_lib_t:dir { getattr search };

不幸的是,這對我的問題沒有任何幫助,但是假設我弄亂了我的selinux規則:P

有沒有人試圖從啟用了selinux的php執行rpm並擺脫它?

我確實找到了解決方法。 也許不是最好的方法,但是還有一點。

我的audit2allow不起作用的原因是,在審計日志中未顯示所有消息。 閱讀此文件后,我將其激活以顯示所有日志: http : //docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3028826

一旦我在日志中收到更多被拒絕的消息,就可以弄清楚該使它起作用的方法。

最終的te文件如下所示:

module php_rpm 1.0;

require {
    type selinux_config_t;
    type httpd_script_exec_t;
    type security_t;
    type httpd_t;
    type rpm_exec_t;
    type rpm_var_lib_t;
    class dir { search getattr };
    class file { getattr read execute_no_trans execute lock };
}

#============= httpd_t ==============
allow httpd_t httpd_script_exec_t:file { read getattr execute_no_trans };
allow httpd_t rpm_exec_t:file { read getattr execute_no_trans execute };
allow httpd_t rpm_var_lib_t:dir { getattr search };
allow httpd_t rpm_var_lib_t:file { read getattr lock };
allow httpd_t security_t:dir search;
allow httpd_t security_t:file read;
allow httpd_t selinux_config_t:dir search;
allow httpd_t selinux_config_t:file { read getattr };

我感覺這里有點開着門,所以我仍然會嘗試將其縮小一些。 但是SELINUX規則不是我的主要關注,但它是次要的。

如果有人有更好的建議,也許有更具體的規定,請隨時分享!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM