您的位置:網站首頁 > 電器維修資料網 > 正文 >
為Apache Web服務器安全保駕護航
★★★★★【文章導讀】:為Apache Web服務器安全保駕護航具體內容是:怎樣在Linux、APAChe和PHP服務器端的安全性、生產力和易用性三者之間求得平衡。 好的解決辦法取決于項目的具體需求,下面是為LAMP服務器保駕護航的一些 佳實踐,涵蓋服務器配置到PHP設置微調的諸多方面。為Web服務…
來源: 日期:2013-11-23 22:18:09 人氣:標簽:
怎樣在 Linux、APAChe和PHP服務器端的安全性、生產力和易用性三者之間求得平衡。 好的解決辦法取決于項目的具體需求,下面是為LAMP服務器保駕護航的一些 佳實踐,涵蓋服務器配置到PHP設置微調的諸多方面。
為Web服務器保駕護航的任務應從加固Linux操作系統入手。加固Linux這個話題本身就可以寫整整一篇文章,但是某些概念在提供Web內容方面顯得特別重要:
◆Linux內核加固。內核是 經常被攻擊者盯上的目標。要提升用戶的權限,對內核獲得訪問權是 容易的方法。視操作系統而定,Apache在默認情況下以有限用戶nobody(在CentOS等基于紅帽的發行版上)或www-data用戶(在基于的bian的發行版上,包括Ubuntu)來運行。每個攻擊者企圖突破有限用戶的身份,利用內核存在的某個漏洞來獲得訪問root的權限。用grsecurity給內核打上補丁可以確保,你處于被保護狀態,甚至可以防范零日漏洞。此外,KsplICe可以確保你及時打上了所有的內核更新版, 大限度地減小安全風險。
◆強制性訪問控制(MAC)。在正常的Web服務器部署環境下,普通用戶不需要訪問編譯器(gCC)、系統配置文件或者像find這樣的實用工具。基于紅帽的發行版可以使用名為SELinux的MAC策略軟件;Ubuntu管理員可以使用類似的AppArmor。盡管這些MAC工具的功能特性各不一樣,但它們都能幫你限制攻擊者的破壞行動。說到不利因素,配置不當的MAC工具會削弱Web服務器的功能。這就是為什么所有MAC工具都有非執行模式,那樣你就可以跟蹤誤報,并且針對你的特定環境來重新配置工具。不過,要是你覺得MAC工具太過復雜,只要將一些可執行文件的權限改成700,只允許root可以使用它們。
◆防火墻。你必須限制入站流量和出站流量,那樣才能防止惡意連接進出服務器。對于各種類型的服務器來說,保護入站流量的安全是一種常見做法。然而對于Web服務器來說,限制出站連接以便限制惡意腳本在本地執行所帶來的影響,這一點特別重要。為此, 可靠的辦法就是將默認iptables鏈的策略設置成DROP。此外,你明確允許所需的入站連接和出站連接。不過在限制出站流量時一定要小心,因為許多Web腳本需要外部資源(RSS和外部應用編程接口)。如果你覺得iptables防火墻工具用起來不習慣,可以使用腳本來幫助生成和維護必要的規則,比如Shorewall和Firestarter。
Apache 佳安全實踐
一旦你確保了Linux操作系統的安全,就可以開始處理Apache Web服務器的安全問題了。下列指示專門針對Apache,但可能也適用于其他Web服務器,比如LiteSpeed和nginx。它們之間的差異常常就體現在模塊名稱或者配置指令上。
要加固Apache,就要完成這些步驟:
◆安裝mod_security,這個Apache模塊起到了應用防火墻的作用。它可以過濾Web請求的所有部分,并終結惡意代碼。它在Web服務器進行任何實際處理之前發揮作用,因而與Web應用程序無關。Mod_security適用于過濾從SQL注入到XSS攻擊的任何惡意流量。它也是保護易受攻擊的Web應用程序的 快速、 容易的方法。該軟件有眾多隨時可以使用的規則,但你也很容易自行編寫規則。比如設想一下:你有一個過時的Joomla版本,擔心會遭到SQL注入攻擊。這個簡單規則可以過濾含有jos_ (Joomla表的默認前綴): SecFiLTEr "jos_"的任何POST和GET內容。計算機
◆安裝mod_evasive,這是另一個重要的Apache模塊,可以保護Web應用程序遠離拒絕服務(DOS)請求。它的效果受制于這個現實:它是在應用程序層面工作的,這意味著Apache無論如何都接受連接,因而耗用帶寬和系統資源。不過,如果是源自少量遠程主機的比較弱的DOS攻擊,該模塊能有所幫助。一旦mod_evasive裝入,你需要這樣來配置它:
DOSPageCount 2 DOSSiteCount 30 DOSBLOCkingPeriod 120 這指示服務器阻止(默認情況下返回HTTP error 403 Forbid的n)兩次訪問同一頁面,或者在一秒內(默認的時間間隔)共有30次請求的任何主機。入侵者會在外面被阻擋120秒。
◆過濾訪客的IP地址。這可能被認為是很極端的措施,但結果很好。首先,考慮安裝mod_httpbl,這是用Apache實現的Project Honeypot。一旦該模塊安裝并被啟用,它可以阻止有惡意活動"前科"的IP地址。另一個辦法是使用mod_geoip,它可以用來允許只有來自某些國家的訪客才可以訪問接受留言、注冊和登錄信息等輸入內容的頁面。它甚至可以阻止和允許來自某些國家的服務器端訪客。
其他推薦的Apache選項包括將Timeout(超時)選項設置得低些,比如15秒。這縮短了Web服務器等待某些事件的時間,從而限制了DOS攻擊的影響。值得進一步閱讀的是官方的Apache說明文檔及安全提示。
PHP安全
PHP是開源領域 流行的服務器端語言。PHP是服務器端,這意味著你需要通過某些指令,比如memory_limit、execution_timeout和dISAble_functions,對它訪問服務器資源設置明確的規則和限制。然而,PHP配置指令可以在各個地方來定義和重新定義,這里作了解釋。你在全局范圍執行這些規則時,確保已清楚它們的范圍。
如果你安裝了 新版本的PHP,又使用默認設置,你的環境已經符合還算可以的安全標準。危險的選項在默認情況下已被禁用,比如register_globals和allow_url_inclu的。不過,光這還不夠。要考慮調整的 重要的選項之一是disable_functions;顧名思義,它的作用就是禁用PHP函數。下面這個示例演示了如何防止危險的外殼代碼執行: disable_functions=exec,passthru,shell_exec,system,proc_open,popen 之前為PHP引入額外的安全機制方面有過許多嘗試,無論從開發小組里面還是從外面來進行嘗試。一個不成功的嘗試就是PHP的安全模式(Safe Mo的 ),其主要想法是根據文件的所有者來限制文件的訪問權。結果證明,這項功能設計不正確,自PHP 5.3以后就被廢棄了。不過,一個名為Suhosin的外部安全項目證明了其價值。它與PHP一起捆綁在基于的bian的流行發行版中。
Suhosin有兩種安裝方法。一種是在PHP實際編譯之前給原始的PHP源代碼打上補丁。建議采用這種方法,因為它使得Suhosin成為PHP的一個必要組成部分,讓Suhosin可以通過其引擎保護功能來保護PHP核心。第二種方法比較容易,就是把它作為普通的PHP擴展來添加。Suhosin的豐富功能適用于許多安全方面,比如會議安全數據加密、請求有效載荷限制,甚至還有SQL注入預防這項試驗性功能。
默認情況下,PHP作為Apache模塊在Apache用戶下運行,這確保了性能 佳、 符合應用程序的需求。然而,如果網站有不止一個虛擬主機(vhost),它可能會帶來嚴重的安全問題,如果虛擬主機屬于不同的用戶,那就更危險了。在這種情況下,來自一個虛擬主機的腳本也許能讀取、寫入和執行來自其他虛擬主機的腳本,這危及了安全,更不用說危及隱私了。
為了緩解這個問題,你可以使用另一個Apache模塊:mod_suphp,該模塊允許PHP腳本在預先定義的用戶下運行。這種模塊對于共享的主機托管服務器來說必不可少。如果使用mod_suphp,來自某個虛擬主機的腳本甚至無法讀取來自其他虛擬主機的文件,更不用說寫入了。禁止讀取外來虛擬主機的文件對于配置文件來說極其重要,這就是為什么這類文件必須要有600個文件的許可權。要是不這么設置,你的數據庫詳細資料很容易被發現,而這是你 不想遇到的麻煩。
在mod_suphp的配置文件(默認情況下是/etc/suphp.conf)中,你可以使用allow_file_group_writeable、 allow_file_others_writeable、allow_directory_group_writeable和allow_directory_others_writeable等選項,執行全局安全文件的許可策略。在正常情況下,它們都應該被定義為false。執行不遵守這些限制的腳本會得出HTTP Error 500 Internal server error(HTTP錯誤:500,服務器內部錯誤)。
一般建議
為Web服務器保駕護航時,還要考慮下列措施:
◆把同一臺服務器上的不同Web應用程序分隔到不同的虛擬主機上,讓它們在不同的用戶下運行。
◆傳輸密碼或信用卡信息等敏感信息時,安裝SSL。你可以用免費、自己生成的非商業證書來保護管理面板。
◆不要單單依賴一種方法來限制管理員訪問。數量眾多的互聯網漏洞避開了管理員登錄要求。只要限制遠程IP地址對管理員區域的訪問,并且更改默認的管理員URL或端口,就可以限制這類威脅。
◆定期對服務器執行安全審查工作。
◆訂閱關于你已部署的Web服務和應用程序的安全新聞組。
所以上述信息充當了確保Web服務器安全的路線圖。做好這項工作需要投入大量的時間和精力。如果你沒有準備好投入這樣的時間, 好還是使用共享的主機托管服務器或完全托管的服務器。
總結
上面的這些重點就是很詳細的給我們講解了關于Web服務器的維護并非易事,但是還是需要大家注意的這上面的一些問題的。
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: 輕松找回Windows XP超級管理員的密碼
- 下一篇: 為多核處理器提升電源效率