透過 docker 部署 ClamAV 線上掃毒工具

筆者最近在找開源、免費、可商用的的掃毒工具,找到了 ClamAV 這套工具,使用 GPLv2 授權(任何人都可以免費使用,修改後需要開源)。

在查詢資料的過程中在 GitHub 上發現了 ajilach/clamav-rest ,他將 ClamAV 掃毒軟體增加 API 功能,包裝成 docker ,一個指令就在本地部署完畢,從回應的 Http status code 就可以很方便的判斷是否中毒,很適合從程式中呼叫,方便和其他系統界接。

回應狀態代號:
  • 200:沒有已知病毒
  • 400:錯誤
  • 406:中毒
  • 412:無法解析文件
部署 docker :
    
docker run -p 9000:9000 -p 9443:9443 -itd --name clamav-rest ajilaag/clamav-rest
    

使用 CURL 呼叫 API 掃描檔案
假設要掃描 C:\Users\ruyut\Downloads\file.zip 檔案:
    
curl -i -F "file=@C:\Users\ruyut\Downloads\file.zip" http://localhost:9000/scan
    

執行結果
    
curl -i -F "file=@C:\Users\ruyut\Downloads\file.zip" http://localhost:9000/scan
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Tue, 16 Jul 2024 15:31:34 GMT
Content-Length: 37

{ "Status": "OK", "Description": "" }
    



參考資料:
GitHub - ajilach/clamav-rest
clamav.net

留言