病毒、DoS沒在怕 Apache2防護實戰

2010-11-05
網際網路四通八達,網站伺服器無可避免地都會遭遇到拒絕服務攻擊及病毒攻擊等危害系統的安全問題。本文將結合開源碼社群中的相關資源,實作一個具有防禦拒絕服務攻擊並即時掃描病毒的網站伺服器。
上一期網管人雜誌中介紹過mod_security模組(為Apache2偵測過濾),這主要是用來阻擋因Web程式設計不良所產生的安全問題,如SQL injec tion、X.S.S等等相關問題,有興趣的讀者可進一步查詢OWASP網站等相關的文件取得當年度最具威脅的Web安全漏洞。  

其實,除了程式設計不良所造成的安全問題外,網站伺服器同樣也會遭遇到系統相關的安全問題,如拒絕服務攻擊(Denial of Service,DoS)及病毒攻擊等危害。本文將結合開源碼社群中的相關資源,實作一個具有防禦拒絕服務攻擊和能夠即時掃描病毒的網站伺服器,所需套件如下表所示。

ClamAV簡介  

Linux系統需要防毒軟體嗎?相信很多讀者都有相同的疑問,甚至有些讀者會有Linux系統下不會有病毒的迷思,但就像程式設計師的宿命一樣,「只要是程式,就一定有臭蟲(Bug),只是尚未被發現而已!」而系統也具有相同的命運,「只要是系統,就避免不了病毒的攻擊。」  

Linux系統之所以較少聽到病毒,或許只是因為市占率的關係。畢竟目前絕大多數人所使用的作業系統還是以微軟為主,以投資報酬率的角度來看,實作微軟系統的病毒是較佳的選擇,或許這也是微軟系統病毒層出不窮的原因。但隨著Linux系統日漸普及,當使用者人數跨過所謂的「甜蜜點」後,誰能保證Linux的病毒日後不會如雨後春荀般的遍地開花。  

ClamAV即是用來因應Linux病毒問題的解決方案。簡單地說,ClamAV是Linux系統下的病毒掃描軟體。在本解決方案中,mod_clamav即是利用ClamAV作為病毒掃描引擎,用來掃描往來的HTTP資訊以確認是否有惡意的病毒,以下筆者將簡單的說明ClamAV的安裝及使用方式。首先至「http://clamav.net/」網站取得ClamAV的最新版本(筆者取得的版本為0.96.3)後,解壓縮並執行下列指令:

 

基本上,ClamAV提供常駐程式(Daemon)和手動執行兩種執行方式。常駐程式的執行模式分為掃描伺服器程式與掃描客戶端程式,使用者須先執行掃描伺服器端程式(clamd)後,再執行掃描客戶端程式(clamdscan)以透過掃描伺服器端程式進行掃描。在此種模式下,使用者可自行開發病毒掃描程式(只要透過clamd所提供的命令介面,即可控制clamd程式,相關的命令介面資訊,可在ClamAV的官方網站取得)。在本解決方案中,mod_clamav即是利用clamd所提供的命令介面進行病毒掃描任務。  

至於手動執行,顧名思義就是以手動方式的執行,即是簡單使用clamscan程式來掃描。簡單地利用「clamscan <目錄/檔案>」指令格式來掃描目錄或檔案是否有感染病毒。相關的進階用法,請自行參閱相關文件說明。  

在使用ClamAV之前,必須先設定ClamAV相關組態檔,由於將使用常駐程式方式執行,因此以下說明將以常駐程式設定為主,以下先說明ClamAV相關的組態檔:

 

基本上,僅須設定clamd執行時的IP、埠和SOCKET的相關資訊即可,如下所示:

 

然後,設定更新病毒碼的目錄,並更新病毒碼的日誌(LOG)即可,如下所示:

 

設定完成後,即可開始使用ClamAV,請先行更新病毒碼。ClamAV提供freshclam程式來更新病毒碼。建議將freshclam加入crontab中,每日定時地更新病毒碼資訊。更新完成後,啟動clamd程式。利用「netstat –an | grep 3310」指令檢查是否有類似下列字句,以確認clamd已正常地啟動:

 

接下來,執行如下的指令開始掃描病毒。如果看到相關的掃描結果資訊,即表示ClamAV已成功安裝。

 

(更多精彩文章詳見網管人第58期﹚


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!