Apache服務器安全防範

Apache服務器走到那裏,unix/linux就跟到那裏,這足以說明在WEB服務器領域Apache的優良性能與市場佔有率 這今天互聯網的大環境下,web服務已經成爲公司企業必不可少的業務,大多數的安全問題也跟隨而來,攻擊重點也轉移爲web攻擊,許多web與很有價值的客戶服務與電子商業活動結合在一塊兒,這也是吸引惡意攻擊重要緣由。 先來了解下web所面臨的安全風險 HTTP拒絕服務攻擊 攻擊者經過某些手段使服務器拒絕對http應答,這使Apache對系統資源(cup時間與內存)需求巨增,最終形成系統變慢甚至徹底癱瘓,Apache服務器最大的缺點是,它的廣泛性使它成爲衆矢之的,Apache服務器無時無刻不受到DoS攻擊威脅,主要有下邊幾種 1.數據包洪水攻擊 一種中斷服務器或本地網絡的方法是數據包洪水攻擊,它一般使用internet控制報文協議(ICMP,屬於網絡層協議) 包或是udp包,在最簡單的形式下,這些攻擊都是使服務器或網絡負載太重,這意味這攻擊者的網絡速度必須比目標主機網絡速度要快,使用udp包的優點是不會有任何包返回到黑客的計算機(udp效率要比tcp高17倍),而使用ICMP包的優點是攻擊者能讓攻擊更加富與變化,發送有缺陷的包會搞亂並鎖住受害者的網絡,目前流行的趨勢是攻擊者欺騙服務器,讓其相信正在受來自自身的洪水攻擊 2.磁盤攻擊 這是一種很不道德的攻擊,它不只影響計算機的通訊,還破壞其硬件,僞造的用戶請求利用寫命令攻擊目標計算機硬盤,讓其超過極限,並強制關閉,結局很悲慘 3.路由不可達 一般DoS攻擊,集中在路由器上,攻擊者首先得到控制權並操縱目標機器,當攻擊者能更改路由表條目時候,會致使整個網絡沒法通訊,這種攻擊很陰險,隱蔽,由於網絡管理員須要排除的網絡不通緣由不少,其中一些緣由須要詳細分辨 4.分佈式拒絕服務攻擊 這也是最具備威脅的DDoS攻擊,名稱很容易理解,簡單說就是羣歐,不少客戶機同時單條服務器,你會發現你將傷痕累累,Apache服務器特別容易受到攻擊,不管是DDos仍是隱藏來源的攻擊,由於Apache無處不在,特別是爲Apache特地打造的病毒(特選SSL蠕蟲),潛伏在許多主機上,攻擊者經過病毒能夠操縱大量被感染的機器,對特定目標發動一次浩大的DDoS攻擊,經過將蠕蟲散播到大量主機,大規模的點對點攻擊得以進行,除非你不提供服務,要否則幾乎沒法阻止這樣的攻擊,這種攻擊一般會定位到大型的網站上。 緩衝區溢出,這種攻擊很廣泛,攻擊者利用CGI程序編寫一些缺陷程序偏離正常的流程,程序使用靜態的內存分配,攻擊者就能夠發送一個超長的請求使緩衝區溢出,好比,一些perl編寫的處理用戶請求的網關腳本,一但緩衝區溢出,攻擊者就能夠執行惡意指令 非法獲取root權限 若是Apache以root權限運行,系統上一些程序的邏輯缺陷或緩衝區溢出漏洞,會讓攻擊者很容易在本地系統獲取linux服務器上的管理者權限,在一些遠程狀況下,攻擊者會利用一些以root身份執行的有缺陷的系統守護進程來取得root權限,或利用有缺陷的服務進程漏洞來取得普通用戶權限,以遠程登錄,進而控制整個系統。 這邊這些都是服務將會遇到的攻擊手段,下邊來講,如何打造安全的Apache服務器 若是你能遵照下邊這些建議,那麼你將獲得一臺相對安全的apache服務器 一:勤打補丁 你必需要相信這個是最有用的手段,緩衝區溢出等漏洞都必須使用這種手段來防護,勤快點相信對你沒有壞處 在http:www.apache.org上最新的changelog中都寫有:bug fix ,security bug fix的字樣,作爲負責任的管理員要常常關注相關漏洞,及時升級系統添加補丁。使用最新安全版本對增強apache相當重要 二:隱藏和假裝Apache的版本 打亂攻擊者的步驟,給攻擊者帶來麻煩,相信是管理員願意看到的。軟件的漏洞信息和版本是相關的,在攻擊者收集你服務軟件信息時候給與迷惑是個不錯的選擇,況且版本號,對攻擊者來講至關與GPS定位同樣重要 默認狀況,系統會把apache版本模塊都顯示出來(http返回頭),若是列舉目錄的話,會顯示域名信息(文件列表正文),去除Apache版本號的方法是修改配置文件,找到關鍵字,修改成下邊 ServerSignature off ServerTokens prod 經過分析web服務器類型,大體能夠推測操做系統類型,win使用iis,linux廣泛apache,默認的Apache配置裏沒有任何信息保護機制,而且容許目錄瀏覽,經過目錄瀏覽,一般能夠獲得相似「apache/1.37 Server at apache.linuxforum.net Port 80」或「apache/2.0.49(unix)PHP/4.3.8」的信息 經過修改配置文件中的ServerTokens參數,能夠將Apache的相關信息隱藏起來,若是不行的話,多是提示信息被編譯在程序裏了,要隱藏須要修改apache的源代碼,而後從新編譯程序,以替換內容 編輯ap_release.h文件, 修改」#define AP_SERVER_BASEPRODUCT\」Apache\」"爲 「#define AP_SERVER_BASEPRODUCT\」Microsoft-IIS/5.0\」 編輯os/unix/os.h文件 修改」#define PLATFORM\」Unix\」"爲 「#define PLATFORM\’Win32″ 修改完成後,從新編譯,安裝apache,在修改配置文件爲上邊作過的,再次啓動apache後,用工具掃描,發現提示信息中已經顯示爲windows操做系統了 順便說下,如今這個論壇,就有點不太講究,這是論壇錯誤的返回信息,看了有點汗地感受 Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_ssl/2.2.8 OpenSSL/0.9.8g Server at forum.ubuntu.org.cn Port 80 這個等於告訴惡意用戶不少有用信息,雖說不算開了門,但等於被告訴了門在那裏,仍是至關危險的 三:創建安全的目錄結構apache服務器包括四個目錄結構 ServerRoot #保存配置文件,二進制文件與其餘服務器配置文件 DocumentRoot #保存web站點內容,包括HTML文件和圖片等 ScripAlias #保存CGI腳本 Customlog 和 Errorlog #保存日誌和錯誤日誌 建議的目錄結構爲,以上四種目錄相互獨立而且不存在父子邏輯關係 注: ServerRoot目錄只能爲root用戶訪問 DocumentRoot目錄應該可以被管理web站點內容的用戶訪問和使用apache服務器的apache用戶與組訪問 ScripAlias目錄應該只能被CGI開發人員和apache用戶訪問 Customlog 和 Errorlog只能被root訪問 下邊是一個安全目錄結構的事例 +——-/etc/ | | +—-/http (ServerRoot) | +—-/logs (Customlog 和 Errorlog) | +——-var/www | | +—/cgi-bin (ScripAlias) | +—/html (DocumentRoot) 這樣的目錄結構是比較安全的,由於目錄之間獨立,某個目錄權限錯誤不會影響到其餘目錄 四:爲apache使用專門的用戶與組 按照最小特權的原則,須要給apache分配一個合適的權限,讓其可以完成web服務 注: 最小特權原則是系統安全中最基本的原則之一,限制使用者對系統及數據進行存取所須要的最小權限,保證用戶能夠完成任務,同時也確保被竊取或異常操做所形成的損失 必須保證apache使用一個專門的用戶與組,不要使用系統預約的賬戶,好比nobody用戶與nogroup組 由於只有root用戶能夠運行apache,DocumentRoot應該可以被管理web站點內容的用戶訪問和使用apache服務器的apache用戶與組訪問,例如,但願「test」用戶在web站點發布內容,而且能夠以httpd身份運行apache服務器,能夠這樣設定 groupadd webteam usermod -G webteam test chown -R httpd.webteam /www/html chmod -R 2570 /www/htdocs 只有root能訪問日誌,推薦這樣的權限 chown -R [...]
相關文章
相關標籤/搜索