綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門(mén)排行|軟件分類|軟件專題|論壇轉(zhuǎn)帖|廠商大全

綠色資源網(wǎng)

技術(shù)教程
您的位置:首頁(yè)服務(wù)器類Linux服務(wù)器 → 教你用SELinux來(lái)保護(hù)你的Apache

教你用SELinux來(lái)保護(hù)你的Apache

我要評(píng)論 2011/09/21 13:17:29 來(lái)源:綠色資源網(wǎng) 編輯:downcc.com [ ] 評(píng)論:0 點(diǎn)擊:178次

你的Web服務(wù)器確實(shí)有可能遭受攻擊,但是SELinux可以用來(lái)確保你的網(wǎng)站不用承受真正的傷害。

你可以運(yùn)用SELinux類型來(lái)創(chuàng)建一個(gè)確切定義:一個(gè)服務(wù)可以做什么和它在哪里完成要做的事情。默認(rèn)情況下,httpd_sys_content類型被設(shè)為/var/www,它規(guī)定httpd進(jìn)程可以在該目錄中工作。如果攻擊者破壞了Apache Web服務(wù)器并嘗試在別處寫(xiě)入,就像紅帽和Fedora以及CentOS等相似Linux版本的默認(rèn)/tmp,你需要知道你正在處理什么。如果你配置Apache來(lái)為/data目錄中的內(nèi)容服務(wù),SELinux也會(huì)默認(rèn)地防止這種情況。

由于這些默認(rèn)設(shè)置可能造成復(fù)雜的情況,很多Linux管理員關(guān)閉SELinux。雖然關(guān)閉SELinux的確讓你的服務(wù)器提供服務(wù)時(shí)更容易,但是它還是增加了安全風(fēng)險(xiǎn)。

為Apache管理SELinux設(shè)置

為Apache等服務(wù)管理SELinux設(shè)置并不難。問(wèn)題是并沒(méi)有簡(jiǎn)單的圖形工具可以讓你快速安裝。但只要用三條命令,你就可以配置它。

為了在你想讓服務(wù)訪問(wèn)到的目錄上設(shè)置文件類型,你首先必須決定要使用的文件系統(tǒng)類型。要這么做,只需在服務(wù)使用的默認(rèn)目錄上輸入ls –ldZ。

對(duì)于Apache,你會(huì)使用ls –ldZ /var/www。你會(huì)注意到在這種情況下,–Z選項(xiàng)給出了額外的文件屬性,而–t選項(xiàng)才是最關(guān)鍵的一個(gè)。這個(gè)進(jìn)程規(guī)定現(xiàn)有的文件系統(tǒng)類型,這個(gè)系統(tǒng)類型是Apache設(shè)置的(httpd_sys_content_t)。這也是你需要按照新文件根設(shè)置的文件類型。

你可以用兩條命令設(shè)置你的內(nèi)容形式:用chcon你可以做一次暫時(shí)的變更,它在重啟后消失;用followed by緊跟著的semanage,你可以做永久的變更。

semanage命令似乎有些復(fù)雜,但它實(shí)際上非常簡(jiǎn)單,因?yàn)槟阒恍枰淖兡阆胍玫念愋秃湍繕?biāo)目錄。在下面的例子中,你只需要改變兩個(gè)參數(shù)。

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

在運(yùn)用semanage設(shè)置默認(rèn)文件類型之后,運(yùn)用restorecon命令來(lái)確保它得到應(yīng)用了。在上面的例子中,針對(duì)目錄/web的文件類型被變更來(lái)允許到那個(gè)目錄上服務(wù)器文件的Apache,運(yùn)行以下命令來(lái)應(yīng)用該變更:

restorecon -R -v /web

在這一點(diǎn)上,Apache將能服務(wù)于新的非默認(rèn)文件根目錄上的文件。

為SELinux管理布爾值

你需要管理的SELinux的另一個(gè)方面是SELinux布爾值。這些都是開(kāi)啟或關(guān)閉某些功能的二進(jìn)制值。布爾值可以在多種服務(wù)中獲得。運(yùn)用getsebool –a命令來(lái)概觀整個(gè)現(xiàn)有的布爾值。該命令通常會(huì)將你能應(yīng)用的設(shè)置列成一個(gè)長(zhǎng)長(zhǎng)的列表。

要為你想配置的服務(wù)找到所有布爾值,通過(guò)grep傳輸所有g(shù)etsebool –a的輸出。舉例來(lái)說(shuō),運(yùn)用getsebool –a | grep http來(lái)找到所有與行http匹配的布爾值。即使你并不是對(duì)所有布爾值都有明確認(rèn)識(shí),你通常還是可以通過(guò)觀察它們的名字和它們可能做的事情查明白。

使用getsebool -a來(lái)找出哪個(gè)SELinux可以用來(lái)修改服務(wù)行為:

[root@bia Desktop]# getsebool -a | grep http allow_httpd_anon_write --> off allow_httpd_mod_auth_ntlm_winbind --> off allow_httpd_mod_auth_pam --> off allow_httpd_sys_script_anon_write --> off httpd_builtin_scripting --> on httpd_can_check_spam --> off httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_relay --> off httpd_can_sendmail --> off httpd_dbus_avahi --> on httpd_enable_cgi --> on httpd_enable_ftp_server --> off httpd_enable_homedirs --> off httpd_execmem --> off httpd_read_user_content --> off httpd_setrlimit --> off httpd_ssi_exec --> off httpd_tmp_exec --> off httpd_tty_comm --> on httpd_unified --> on httpd_use_cifs --> off httpd_use_gpg --> off httpd_use_nfs --> off

學(xué)會(huì)了你想用哪個(gè)布爾值后,運(yùn)用setsebool -P來(lái)應(yīng)用它們。如果你想允許Apache運(yùn)用nfs,在上面運(yùn)用setsebool -P http_use_nfs。想要得到所有可用布爾值的完整列表,咨詢一下httpd_selinux頁(yè)面,這個(gè)頁(yè)面解釋了Apache特有的文件標(biāo)簽和布爾值。

關(guān)鍵詞:SELinux,Apache

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視