亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

如何加強Apache Web服務器的安全防范

添加時間:2011-11-23  添加: admin 

  在Linux上安裝安全的Web服務器并加以維護并非易事。這需要深入了解Linux、Apache和PHP服務器端的選項。主要問題之一是,如何在安全性、生產力和易用性三者之間求得平衡。最好的解決辦法取決于項目的具體需求,但是安裝的所有服務器都有某些共同的特點。下面是為LAMP服務器保駕護航的一些最佳實踐,涵蓋服務器配置到PHP設置微調的諸多方面。

  為Web服務器保駕護航的任務應從加固Linux操作系統入手。加固Linux這個話題本身就可以寫整整一篇文章,但是某些概念在提供Web內容方面顯得特別重要:

  ◆Linux內核加固。內核是最經常被攻擊者盯上的目標。要提升用戶的權限,對內核獲得訪問權是最容易的方法。視操作系統而定,Apache在默認情況下以有限用戶nobody(在CentOS等基于紅帽的發行版上)或www-data用戶(在基于Debian的發行版上,包括Ubuntu)來運行。每個攻擊者企圖突破有限用戶的身份,利用內核存在的某個漏洞來獲得訪問root的權限。用 grsecurity(http://olex.openlogic.com/packages/grsecurity)給內核打上補丁可以確保,你處于被保護狀態,甚至可以防范零日漏洞。此外,Ksplice(http://www.ksplice.com/)可以確保你及時打上了所有的內核更新版,最大限度地減小安全風險。

  ◆強制性訪問控制(MAC)。在正常的Web服務器部署環境下,普通用戶不需要訪問編譯器(gcc)、系統配置文件或者像find這樣的實用工具。基于紅帽的發行版可以使用名為SELinux(http://olex.openlogic.com /packages/selinux)的MAC策略軟件;Ubuntu管理員可以使用類似的AppArmor(http://olex.openlogic.com/packages/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裝入,你需要這樣來配置它:


  1. DOSPageCount 2  
  2. DOSSiteCount 30  
  3. DOSBlockingPeriod 120

  這指示服務器阻止(默認情況下返回HTTP error 403 Forbidden)兩次訪問同一頁面,或者在一秒內(默認的時間間隔)共有30次請求的任何主機。入侵者會在外面被阻擋120秒。

  ◆過濾訪客的IP地址。這可能被認為是很極端的措施,但結果很好。首先,考慮安裝mod_httpbl,這是用 Apache實現的Project Honeypot。一旦該模塊安裝并被啟用,它可以阻止有惡意活動"前科"的IP地址。另一個辦法是使用mod_geoip,它可以用來允許只有來自某些國家的訪客才可以訪問接受留言、注冊和登錄信息等輸入內容的頁面。它甚至可以阻止和允許來自某些國家的服務器端訪客。

  其他推薦的Apache選項包括將Timeout(超時)選項設置得低些,比如15秒。這縮短了Web服務器等待某些事件的時間,從而限制了DOS 攻擊的影響。值得進一步閱讀的是官方的Apache說明文檔及安全提示(http://httpd.apache.org/docs/2.3/misc/security_tips.html)。

  PHP安全

  PHP是開源領域最流行的服務器端語言。PHP是服務器端,這意味著你需要通過某些指令,比如memory_limit、 execution_timeout和disable_functions,對它訪問服務器資源設置明確的規則和限制。然而,PHP配置指令可以在各個地方來定義和重新定義,這里作了解釋(http://www.php.net/manual/en/ini.list.php)。你在全局范圍執行這些規則時,確保已清楚它們的范圍。

  如果你安裝了最新版本的PHP,又使用默認設置,你的環境已經符合還算可以的安全標準。危險的選項在默認情況下已被禁用,比如 register_globals和allow_url_include。不過,光這還不夠。要考慮調整的最重要的選項之一是 disable_functions;顧名思義,它的作用就是禁用PHP函數。下面這個示例演示了如何防止危險的外殼代碼執行:

 
  1. disable_functions=exec,passthru,shell_exec,system,proc_open,popen

  之前為PHP引入額外的安全機制方面有過許多嘗試,無論從開發小組里面還是從外面來進行嘗試。一個不成功的嘗試就是PHP的安全模式(Safe Mode),其主要想法是根據文件的所有者來限制文件的訪問權。結果證明,這項功能設計不正確,自PHP 5.3以后就被廢棄了。不過,一個名為Suhosin的外部安全項目證明了其價值。它與PHP一起捆綁在基于Debian的流行發行版中。

  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服務器安全的路線圖。做好這項工作需要投入大量的時間和精力。如果你沒有準備好投入這樣的時間,最好還是使用共享的主機托管服務器或完全托管的服務器。

關鍵字:服務器、Apache、虛擬主機

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站