自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何加強(qiáng)Apache Web服務(wù)器的安全防范?

譯文
安全 網(wǎng)站安全
在Linux上安裝安全的Web服務(wù)器并加以維護(hù)并非易事。這需要深入了解Linux、Apache和PHP服務(wù)器端的選項(xiàng)。主要問題之一是,如何在安全性、生產(chǎn)力和易用性三者之間求得平衡。

【51CTO.com 獨(dú)家譯稿】在Linux上安裝安全的Web服務(wù)器并加以維護(hù)并非易事。這需要深入了解Linux、Apache和PHP服務(wù)器端的選項(xiàng)。主要問題之一是,如何在安全性、生產(chǎn)力和易用性三者之間求得平衡。最好的解決辦法取決于項(xiàng)目的具體需求,但是安裝的所有服務(wù)器都有某些共同的特點(diǎn)。下面是為LAMP服務(wù)器保駕護(hù)航的一些最佳實(shí)踐,涵蓋服務(wù)器配置到PHP設(shè)置微調(diào)的諸多方面。

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

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

◆強(qiáng)制性訪問控制(MAC)。在正常的Web服務(wù)器部署環(huán)境下,普通用戶不需要訪問編譯器(gcc)、系統(tǒng)配置文件或者像find這樣的實(shí)用工具?;诩t帽的發(fā)行版可以使用名為SELinux(http://olex.openlogic.com/packages/selinux)的MAC策略軟件;Ubuntu管理員可以使用類似的AppArmor(http://olex.openlogic.com/packages/apparmor)。盡管這些MAC工具的功能特性各不一樣,但它們都能幫你限制攻擊者的破壞行動(dòng)。說到不利因素,配置不當(dāng)?shù)腗AC工具會(huì)削弱Web服務(wù)器的功能。這就是為什么所有MAC工具都有非執(zhí)行模式,那樣你就可以跟蹤誤報(bào),并且針對你的特定環(huán)境來重新配置工具。不過,要是你覺得MAC工具太過復(fù)雜,只要將一些可執(zhí)行文件的權(quán)限改成700,只允許root可以使用它們。

◆防火墻。你必須限制入站流量和出站流量,那樣才能防止惡意連接進(jìn)出服務(wù)器。對于各種類型的服務(wù)器來說,保護(hù)入站流量的安全是一種常見做法。然而對于Web服務(wù)器來說,限制出站連接以便限制惡意腳本在本地執(zhí)行所帶來的影響,這一點(diǎn)特別重要。為此,最可靠的辦法就是將默認(rèn)iptables鏈的策略設(shè)置成DROP。此外,你明確允許所需的入站連接和出站連接。不過在限制出站流量時(shí)一定要小心,因?yàn)樵S多Web腳本需要外部資源(RSS和外部應(yīng)用編程接口)。如果你覺得iptables防火墻工具用起來不習(xí)慣,可以使用腳本來幫助生成和維護(hù)必要的規(guī)則,比如Shorewall和Firestarter。

Apache最佳安全實(shí)踐

一旦你確保了Linux操作系統(tǒng)的安全,就可以開始處理Apache Web服務(wù)器的安全問題了。下列指示專門針對Apache,但可能也適用于其他Web服務(wù)器,比如LiteSpeed和nginx。它們之間的差異常常就體現(xiàn)在模塊名稱或者配置指令上。

要加固Apache,就要完成這些步驟:

◆安裝mod_security,這個(gè)Apache模塊起到了應(yīng)用防火墻的作用。它可以過濾Web請求的所有部分,并終結(jié)惡意代碼。它在Web服務(wù)器進(jìn)行任何實(shí)際處理之前發(fā)揮作用,因而與Web應(yīng)用程序無關(guān)。Mod_security適用于過濾從SQL注入到XSS攻擊的任何惡意流量。它也是保護(hù)易受攻擊的Web應(yīng)用程序的最快速、最容易的方法。該軟件有眾多隨時(shí)可以使用的規(guī)則,但你也很容易自行編寫規(guī)則。比如設(shè)想一下:你有一個(gè)過時(shí)的Joomla版本,擔(dān)心會(huì)遭到SQL注入攻擊。這個(gè)簡單規(guī)則可以過濾含有jos_ (Joomla表的默認(rèn)前綴): SecFilter "jos_"的任何POST和GET內(nèi)容。

◆安裝mod_evasive,這是另一個(gè)重要的Apache模塊,可以保護(hù)Web應(yīng)用程序遠(yuǎn)離拒絕服務(wù)(DOS)請求。它的效果受制于這個(gè)現(xiàn)實(shí):它是在應(yīng)用程序?qū)用婀ぷ鞯模@意味著Apache無論如何都接受連接,因而耗用帶寬和系統(tǒng)資源。不過,如果是源自少量遠(yuǎn)程主機(jī)的比較弱的DOS攻擊,該模塊能有所幫助。一旦mod_evasive裝入,你需要這樣來配置它:

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

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

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

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

PHP安全

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

如果你安裝了最新版本的PHP,又使用默認(rèn)設(shè)置,你的環(huán)境已經(jīng)符合還算可以的安全標(biāo)準(zhǔn)。危險(xiǎn)的選項(xiàng)在默認(rèn)情況下已被禁用,比如register_globals和allow_url_include。不過,光這還不夠。要考慮調(diào)整的最重要的選項(xiàng)之一是disable_functions;顧名思義,它的作用就是禁用PHP函數(shù)。下面這個(gè)示例演示了如何防止危險(xiǎn)的外殼代碼執(zhí)行:

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

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

Suhosin有兩種安裝方法。一種是在PHP實(shí)際編譯之前給原始的PHP源代碼打上補(bǔ)丁。建議采用這種方法,因?yàn)樗沟肧uhosin成為PHP的一個(gè)必要組成部分,讓Suhosin可以通過其引擎保護(hù)功能來保護(hù)PHP核心。第二種方法比較容易,就是把它作為普通的PHP擴(kuò)展來添加。Suhosin的豐富功能適用于許多安全方面,比如會(huì)議安全數(shù)據(jù)加密、請求有效載荷限制,甚至還有SQL注入預(yù)防這項(xiàng)試驗(yàn)性功能。

默認(rèn)情況下,PHP作為Apache模塊在Apache用戶下運(yùn)行,這確保了性能最佳、最符合應(yīng)用程序的需求。然而,如果網(wǎng)站有不止一個(gè)虛擬主機(jī)(vhost),它可能會(huì)帶來嚴(yán)重的安全問題,如果虛擬主機(jī)屬于不同的用戶,那就更危險(xiǎn)了。在這種情況下,來自一個(gè)虛擬主機(jī)的腳本也許能讀取、寫入和執(zhí)行來自其他虛擬主機(jī)的腳本,這危及了安全,更不用說危及隱私了。

為了緩解這個(gè)問題,你可以使用另一個(gè)Apache模塊:mod_suphp,該模塊允許PHP腳本在預(yù)先定義的用戶下運(yùn)行。這種模塊對于共享的主機(jī)托管服務(wù)器來說必不可少。如果使用mod_suphp,來自某個(gè)虛擬主機(jī)的腳本甚至無法讀取來自其他虛擬主機(jī)的文件,更不用說寫入了。禁止讀取外來虛擬主機(jī)的文件對于配置文件來說極其重要,這就是為什么這類文件必須要有600個(gè)文件的許可權(quán)。要是不這么設(shè)置,你的數(shù)據(jù)庫詳細(xì)資料很容易被發(fā)現(xiàn),而這是你最不想遇到的麻煩。

在mod_suphp的配置文件(默認(rèn)情況下是/etc/suphp.conf)中,你可以使用allow_file_group_writeable、 allow_file_others_writeable、allow_directory_group_writeable和allow_directory_others_writeable等選項(xiàng),執(zhí)行全局安全文件的許可策略。在正常情況下,它們都應(yīng)該被定義為false。執(zhí)行不遵守這些限制的腳本會(huì)得出HTTP Error 500 Internal server error(HTTP錯(cuò)誤:500,服務(wù)器內(nèi)部錯(cuò)誤)。

一般建議

為Web服務(wù)器保駕護(hù)航時(shí),還要考慮下列措施:

◆把同一臺服務(wù)器上的不同Web應(yīng)用程序分隔到不同的虛擬主機(jī)上,讓它們在不同的用戶下運(yùn)行。

◆傳輸密碼或信用卡信息等敏感信息時(shí),安裝SSL。你可以用免費(fèi)、自己生成的非商業(yè)證書來保護(hù)管理面板。

◆不要單單依賴一種方法來限制管理員訪問。數(shù)量眾多的互聯(lián)網(wǎng)漏洞避開了管理員登錄要求。只要限制遠(yuǎn)程IP地址對管理員區(qū)域的訪問,并且更改默認(rèn)的管理員URL或端口,就可以限制這類威脅。

◆定期對服務(wù)器執(zhí)行安全審查工作。

◆訂閱關(guān)于你已部署的Web服務(wù)和應(yīng)用程序的安全新聞組。

所以上述信息充當(dāng)了確保Web服務(wù)器安全的路線圖。做好這項(xiàng)工作需要投入大量的時(shí)間和精力。如果你沒有準(zhǔn)備好投入這樣的時(shí)間,最好還是使用共享的主機(jī)托管服務(wù)器或完全托管的服務(wù)器。 

【51CTO.com獨(dú)家譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及出處!】

責(zé)任編輯:佟健 來源: 51CTO.com
相關(guān)推薦

2009-02-27 14:05:00

2010-05-17 15:38:57

IIS服務(wù)器

2018-04-02 15:07:01

LinuxApacheWeb服務(wù)器

2011-03-22 14:57:07

2013-01-28 16:44:50

2009-08-29 08:12:05

安全策略黑客服務(wù)器安全

2009-02-02 21:47:51

2012-12-10 10:59:29

2012-02-17 09:29:57

2017-12-27 10:18:09

ApacheNginx服務(wù)器

2012-02-20 09:18:28

2012-12-17 15:07:54

Apache服務(wù)器安全Apache服務(wù)器

2009-07-05 11:20:04

2018-05-04 12:22:47

2011-09-20 09:15:11

2010-10-09 10:05:04

2012-05-21 10:16:53

2010-08-04 09:39:09

2012-04-01 09:42:22

2009-12-30 10:09:08

Ubuntu Apac
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號