用SELinux保護你的Apache

來源:互聯網
上載者:User

你的Web伺服器確實有可能遭受攻擊,但是SELinux可以用來確保你的網站不用承受真正的傷害。

你可以運用SELinux類型來建立一個確切定義:一個服務可以做什麼和它在哪裡完成要做的事情。預設情況下,httpd_sys_content類型被設為/var/www,它規定httpd進程可以在該目錄中工作。如果攻擊者破壞了Apache Web伺服器並嘗試在別處寫入,就像紅帽和Fedora以及CentOS等相似Linux版本的預設/tmp,你需要知道你正在處理什麼。如果你配置Apache來為/data目錄中的內容服務,SELinux也會預設地防止這種情況。

由於這些預設設定可能造成複雜的情況,很多Linux管理員關閉SELinux。雖然關閉SELinux的確讓你的伺服器提供服務時更容易,但是它還是增加了安全風險。

為Apache管理SELinux設定

為Apache等服務管理SELinux設定並不難。問題是並沒有簡單的圖形工具可以讓你快速安裝。但只要用三條命令,你就可以配置它。

為了在你想讓服務訪問到的目錄上設定檔案類型,你首先必須決定要使用的檔案系統類型。要這麼做,只需在服務使用的預設目錄上輸入ls –ldZ。

對於Apache,你會使用ls –ldZ /var/www。你會注意到在這種情況下,–Z選項給出了額外的檔案屬性,而–t選項才是最關鍵的一個。這個進程規定現有的檔案系統類型,這個系統類別型是Apache設定的httpd_sys_content_t)。這也是你需要按照新檔案根設定的檔案類型。

你可以用兩條命令設定你的內容形式:用chcon你可以做一次暫時的變更,它在重啟後消失;用followed by緊跟著的semanage,你可以做永久的變更。

semanage命令似乎有些複雜,但它實際上非常簡單,因為你只需要改變你想要用的類型和目標目錄。在下面的例子中,你只需要改變兩個參數。

semanage fcontext -a -t httpd_sys_content_t /web(/.*)/?

在運用semanage設定預設檔案類型之後,運用restorecon命令來確保它得到應用了。在上面的例子中,針對目錄/web的檔案類型被變更來允許到那個目錄上伺服器檔案的Apache,運行以下命令來應用該變更:

restorecon -R -v /web

在這一點上,Apache將能服務於新的非預設檔案根目錄上的檔案。

為SELinux管理布爾值

你需要管理的SELinux的另一個方面是SELinux布爾值。這些都是開啟或關閉某些功能的二進位值。布爾值可以在多種服務中獲得。運用getsebool –a命令來概觀整個現有的布爾值。該命令通常會將你能應用的設定列成一個長長的列表。

要為你想配置的服務找到所有布爾值,通過grep傳輸所有getsebool –a的輸出。舉例來說,運用getsebool –a | grep http來找到所有與行http匹配的布爾值。即使你並不是對所有布爾值都有明確認識,你通常還是可以通過觀察它們的名字和它們可能做的事情查明白。

使用getsebool -a來找出哪個SELinux可以用來修改服務行為:

[root@bia Desktop]# getsebool -a | grep httpallow_httpd_anon_write --> offallow_httpd_mod_auth_ntlm_winbind --> offallow_httpd_mod_auth_pam --> offallow_httpd_sys_script_anon_write --> offhttpd_builtin_scripting --> onhttpd_can_check_spam --> offhttpd_can_network_connect --> offhttpd_can_network_connect_cobbler --> offhttpd_can_network_connect_db --> offhttpd_can_network_relay --> offhttpd_can_sendmail --> offhttpd_dbus_avahi --> onhttpd_enable_cgi --> onhttpd_enable_ftp_server --> offhttpd_enable_homedirs --> offhttpd_execmem --> offhttpd_read_user_content --> offhttpd_setrlimit --> offhttpd_ssi_exec --> offhttpd_tmp_exec --> offhttpd_tty_comm --> onhttpd_unified --> onhttpd_use_cifs --> offhttpd_use_gpg --> offhttpd_use_nfs --> off

學會了你想用哪個布爾值後,運用setsebool -P來應用它們。如果你想允許Apache運用nfs,在上面運用setsebool -P http_use_nfs。想要得到所有可用布爾值的完整列表,諮詢一下httpd_selinux頁面,這個頁面解釋了Apache特有的檔案標籤和布爾值。 

原文:http://www.searchsv.com.cn/showcontent_53067.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.