ClamAV FTP 防毒

ClamAV/mod_clamav通力合作 FTP伺服器防毒一把罩

2012-02-23
FTP伺服器的使用由來已久,而且一直都是傳送大型檔案的最佳方式,而在病毒肆虐的今日,為了與時俱進,替FTP伺服器添加病毒掃描功能似乎有其必要。本文將示範如何在常見的ProFTPD伺服器上安裝病毒掃描功能模組mod_clamav,與ClamAV防毒程式配合,以提升其自身的防護能力。
檔案傳輸協定(File Transfer Protocol,FTP)雖然是一個老舊的通訊協定,但一談到大容量檔案的傳輸,第一個想到的還是利用FTP來傳輸檔案。

因此,本文將利用ClamAV和mod_clamav為ProFTPD伺服器加上病毒防護的功能。而該解決方案所需要的套件如下表所示。

安裝ClamAV

一提到Linux系統下的防毒軟體,相信許多人的腦海裡第一個浮現的念頭就是ClamAV。ClamAV是開源碼社群中最受歡迎的防毒軟體,其軟體與病毒碼的更新皆由社群免費發布。

挾其開放原始碼的優勢,讓ClamAV不僅有Linux平台的版本,在Windows及Mac OS作業系統上也可看到它的身影。其使用介面不僅提供傳統的文字介面,更提供實用的圖形介面。

本期FTP伺服器防毒的解決方案中,即是利用mod_clamav模組透過ClamAV作為病毒掃描引擎,用來掃描往來的FTP資訊以確認是否有惡意的病毒存在。以下將簡單說明ClamAV的安裝及使用方式。

首先至「http://clamav.net/」取得ClamAV的適用版本(筆者取得的版本為0.94.1)。雖然ClamAV目前的最新版本為0.97.3,但筆者在測試過程中發現,如果使用最新的0.97.3版,會發生「Clamd didn't accept the session end request」的錯誤,而無法正常地進行病毒掃描工作。

在查閱ClamAV官方網站後,推測這個錯誤這可能是ClamAV在0.94.1版本之後改用新的通訊協定,所以mod_clamav無法正常地進行溝通所致。

改用ClamAV 0.94.1版後,即可正常地使用病毒掃描功能,因此本解決方案使用0.94.1版本。

至ClamAV官方網站下載ClamAV 0.94.1原始碼後,解壓縮並執行下列指令:

安裝成功之後,ClamAV提供如下表所示的執行檔:

基本上,ClamAV提供「常駐程式(Daemon)」及「手動執行」兩種運作模式,如下所述:

常駐程式

在常駐程式執行模式中,區分為掃描伺服器程式和掃描客戶端程式,使用者須先執行掃描伺服器端程式(clamd)後,再執行掃描客戶端程式(clamdscan),以透過掃描伺服器端程式進行病毒掃描。

在此種模式下,使用者可自行開發病毒掃描程式,因為只要透過clamd所提供的命令介面,即可控制clamd程式進行病毒掃描。

在此僅說明常用命令介面的用法,其他更進階的命令介面用法,請自行至ClamAV的官方網站查詢。

PING:檢查clamd程式是否正在執行中,如果clamd正在執行,即會回應pong訊息(也就是所謂的ping-pong的檢查)。
RELOAD:通知clamd程式,重新載入病毒碼資料庫,而毋須重新啟動clamd伺服器。 SHUTDOWN:停止伺服端程式(clamd)的執行。
SCAN:設定要掃描檔案或目錄,如果是掃描目錄,就會以遞迴的方式來掃描病毒。
MULTISCAN:設定使用多執行緒(Thread)的掃描方式,此種方式在多處理器的系統下會達到更高的掃描效率。
INSTREAM:要求伺服端程式(clamd)掃描網路上傳送的封包資料,這裡要特別注意一點的是,INSTREAM所傳送的封包不能大於在clamd設定檔中StreamMaxLength欄位的設定,否則會發生中斷連線的問題。
STATUS:要求clamd程式顯示目前執行的統計資訊,如記憶體、CPU的使用狀況等。在本解決方案中,mod_clamav就是利用透過clamd所提供的命令介面進行病毒掃描的任務。


追蹤我們Featrue us

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

我知道了!