Apache服務器監控系統的研究

Apache服務器監控系統的研究

 

 

劉波  代亞非吳非

 

(哈爾濱工業大學計算機系哈爾濱 150001)

 

(北京大學計算機科技繫系統結構教研室北京 100871)

 

 

  要:針對Apache服務器介紹了一個遠程監控系統。它提供了有效的監控機制,使管理者及時瞭解服務器的工作狀態及工作性能;其友好的管理界面使管理者從繁雜的命令行工作方式解脫出來,方便地進行管理;其安全的通信機制使監控系統與服務器異地運行而減少對服務器性能的影響。

關鍵詞:Web server, Apache, Web安全, 監控系統

0  引言

Web服務器是目前大多數業務最關鍵的部分。它提供了公司的公共門面、發佈內部信息並通過在線的購買和推薦帶來真實的收入。因此,Web服務器的安全與高性能成爲人們期待的目標。但隨着Web服務器功能不斷增加,Web所面臨的威脅亦在增加[2],建設與管理它必須要有豐富的經驗和知識[1]

本文針對當前流行的Apache服務器,研究實現了一個具有統一用戶接口的監控系統,使管理員隨時瞭解Web server的性能及安全狀況,通過友好的遠程管理界面在任意地點對服務器進行管理,脫離繁瑣的命令行工作方式,提高了Web server管理者的工作效率,從而爲Web se

rver始終處於高性能、高安全性的工作狀態提供了一種措施。

1 系統功能及實現

本所介紹的Apache服務器監控系統是基於Web的Client/Server技術,應用Java語言實現的可視化監控系統。其主要功能是:(1)監視Web server的工作狀況,如當前在線連接的個數、請求響應時間等。當出現異常情況緊急響應並自動報警。(2)服務器管理,如遠程配置、重啓動等。系統實現模型如圖1。

 

 

監控系統將瀏覽器作爲統一的用戶界面,通過Applet使用戶與監控系統進行交互。用戶可通過監視界面(Applet)設置或得到Web server運行時監控系統所獲得的性能參數,設置性能參數的正常值,也可通過管理界面(Applet)遠程配置、重啓Web server。監視服務器運行在與服務器所在主機同一網段的其他任意主機上,完成監視功能。代理服務器(Agent)主要負責與Web服務器所在主機打交道,包括讀寫監控系統配置文件、Web server配置文件、日誌文件以及主機上的其他文件,並在需要時提供給監視服務器。監視服務器/Applet與Agent通訊的協議採用TCP或UDP,而具體的操作請求包含於協議數據體中。

1.1 監視服器

監視服務器的功能是獲得Web server的性能參數,然後與相應的正常值進行比較,若發生顯著偏差(由管理員定義偏差範圍),則緊急響應,自動報警。監視服務器蒐集的性能參數主要來源於模擬客戶請求所得數據、Web server日誌和網絡傳輸數據,包括[2]

服務器響應時間  監視服務器週期地(10min)向Web server發送HTTP的HEAD方法請求包,記錄響應時間,若響應時間過長則報警,以進行Web server的性能配置。

主機系統負載狀況  代理服務器週期地(10min)將Web server所在主機系統的CPU負載及內存使用狀況的參數提交給監視服務器,監視服務器進行數據精簡及分析,當出現超載情況則報警。

Web server日誌分析  [HT]Web server日誌包括error-logaccess-log。代理服務器定期15min統計一次最新的Web server日誌信息提交給監視服務器。監視服務器進行數據精簡,以檢測授權用戶假冒(即非授權用戶訪問特定Web內容),Web頁面被惡意刪除等攻擊行爲。

網絡數據分析監視服務器進行網絡偵聽,分析網絡傳輸數據,以保護Web服務器免於拒絕服務、緩衝區溢出等攻擊。如,可能導致系統崩潰的碎片,假IP包,或製造大量的半連接,SYNFlooding等。

1.2 代理服務器

代理服務器的功能是代理監視服務器、Applet與Web server所在主機交互的請求。當用戶要求瞭解Web server當前運行狀態時,Agent將作爲前端界面與監視服務器的中轉,爲Applet和監視服務器傳遞請求包和響應包。

監視界面的請求主要爲設置Web server的性能參數正常值及其範圍,代理服務器將其寫入監控系統的配置文件;顯示當前運行狀況。管理界面的請求包括對Web server進行配置,並在必要時重新啓動。根據配置內容的目的及屬性[3]作者將其分爲3類,因此管理功能具體爲:  文件管理  對服務器用到的文件、目錄進行配置,包括服務器運行根目錄(ServerRoot)、用戶目錄(UserDir)、日誌文件位置(ErrorLog,TransferLog,AgentLog)以及文檔根目錄(DocumentRoot)等。

性能管理  在Apache運行時,可以通過修改配置文件對server的性能進行調整,如選擇服務器運行類型(ServerType),是獨立運行的方式(Standalone)或是inetd運行方式;通過改變MaxServer和StartServer的數目改變服務器所佔有的資源;設置恰當的Redirect功能以使服務器負載均衡等。

安全管理  爲了對某些文件的訪問權限加以控制,可以在Access.conf(缺省的文件名稱)文件中對整個server的訪問策略進行配置,如各目錄及文件的訪問權限,並可在選擇Standalone運行方式時,設置有效的用戶和組(它們都可設置相應的密碼),對某些信息進行保護。

重啓  Web server被重新配置後必須重新啓動才能使某些配置生效。管理模塊首先根據PidFile中的進程號殺死Web server主進程然後重啓Web server

除此之外,代理服務器負責檢測HTML頁面正確性。此項功能爲管理員動態設定,因爲此項檢查佔用Web服務器主機的系統資源較大。當管理員設定此項時,代理服務器將製作現有文件的備份,並定期檢查各HTML文件的大小、修改時間和校驗和,若出現改動,則將當前HTML文檔和日誌文件保存至指定目錄,用備份文件進行自動恢復,並報警。

2 監控系統安全性

監控系統的加入不應增加Web server的不安全性,因此,監控系統自身的安全是作者考慮的一個關鍵問題。

首先,選擇了Java語言實現監控系統,是因爲在網絡編程方面它有其他程序設計語言難以比擬的特點[4-6]

(1)面向對象的網絡程序語言,編程簡單,易於處理網絡協議,減少了編程錯誤;多線程機制,提高了編程質量。

(2)編譯時和運行時的語法檢查和例外檢查,垃圾回收機制,集成的面向對象的例外處理機制等,增強系統的魯棒性。

(3)可移植性。

其次,監控系統中各部分的通信採用密文傳輸。因爲JDK1.2的加密結構(Java Cryptograghy Architecture,JCA)提供了全面的加密服務和算法以保證網上信息的安全,本文的監控系統均採用java.security包中類實現。

3 對Web服務器性能的影響

監控系統的運行是否會對Web sever所在主機的性能產生影響?影響的程度多大?這是監控系統也要考慮的一個關鍵問題。在本文的監控系統中,Agent是對Web server所在主機的性能產生影響的因素。因此,作者在Agent的實現過程中如下設計:

(1)將Agent(代理服務器)加入inetd中,因爲其被請求頻率不高。

(2)監控系統配置文件在管理員設置後全部上載至監視服務器,監視服務器不再有與配置文件有關的請求,直至下一次更改。

(3)監控系統中的週期長短可以由Web管理員根據Web server的運行情況進行配置,從而比較接近降低資源消耗和減少漏報率之間的平衡。

(4)當前端要顯示Web server運行參數時,Agent只對包做轉發,而不進行加密和解密。

(5)如果Web管理員配置了檢查HTML文件正確性的選項,則需設置HTML文件檢查模塊的運行方式,選擇cron daemon激活的形式或遠程消息激活的形式。cron daemon激活的方式是指Agent寫crontab文件,由cron daemon每分鐘檢查是否該執行文件檢查,這種方式比較浪費主機的資源,但執行及時,不依賴網絡;遠程消息激活的方式是指文件檢查模塊被Agent初始化後進入休眠狀態,由監視模塊定時發UDP包給Agent,由Agent喚醒文件檢查模塊,這種方式對Web server所在主機影響小。

上述實現手段使監控系統對Web server所在主機的性能影響可以只來源於Agent對網絡數據包的處理。

4 結論

Web安全是一種動態的錯綜複雜的安全政策和安全產品的組合。Web server性能及安全的保證應構建在主機及網絡安全的基礎之上,由完整的安全策略評估和管理各種實施和支持Web安全的部件,包括保護、評估、檢測與響應等步驟。本文的監控系統實現了檢測與響應,監視服務器實質上是一個基於主機和網絡的IDS的簡單實現(包括部分自動響應功能),而代理服務器則實現了一個響應系統(人工響應和自動響應)的功能;統一的前端界面(瀏覽器)使管理員不受地點限制,隨時掌握服務器運行狀況,遠程管理Web server,配置監控服務器。

參考文獻:

[1]http://www.wrqwam.com/prodserv/namonitors.html

[2]張小斌,嚴望佳.黑客分析與防範技術.北京:清華大學出版社, 1999,5

[3]http://www.apache.org/docs/mod/directives.html

4Gosling J, McGilton H. The JavaTM Language Environment. Sun Microsystems, Inc., 19965

5http://developer.java.sun.com/developer/technicalArticles/Security/Crypto/index.html

6http://developer.java.sun.com/developer/technicalArticles/Security/JCE/index.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章