開源網站雲查殺方案,搭建本身的雲殺毒html
搭建ClamAV服務器git
在上一篇咱們已經演示了整個方案,傳送門《開源網站雲查殺方案,搭建本身的雲殺毒》:https://www.cnblogs.com/dengjiahai/p/12437360.html#4514940。接着我就寫一個文章來演示如何搭建ClamAV服務器,開始以前,我先說說關於陸陸續續收到一些同行的交流對話和疑問的這個問題,發表一些我我的的看法和見解:github
答:的確,在服務器直接安裝殺軟也是一種防禦方案。咱們之因此弄了這個東西,確定是由於殺軟有一些地方知足不了咱們的要求。我簡單的說說咱們能想到的應用情形。若是你看完了,以爲該方案對你有幫助,那麼你能夠繼續往下探討,若是你以爲毫無心義。那麼說明這個東西知足不了大家,能夠不用往下看了。數據庫
首先,來個簡單的例子說明咱們應用的情形。咱們要作的其實就是相似VirSCAN這個網站的一些功能:傳送門:https://www.virscan.org/antivirusvendor/clamavwindows
咱們要主要是考慮到一下幾個方面,因此作出了這個選擇。緩存
• 咱們主要是掃描,而不是爲了殺毒,簡單的說,咱們是想從源頭上面去防禦。而不是等病毒入侵了,咱們纔去殺毒。你要知道,咱們這個方案是不殺毒的,只是掃描病毒。根據clamav的解釋,殺毒對於上傳附件來講是毫無心義的,由於它既然檢查出來病毒,把一些關鍵的文件殺掉了,剩下的文件應該也不能用了,即便能用,你信得過嘛?安全
• 咱們在實驗中發現,部分壓縮包病毒下載到服務器,殺軟竟然不去掃描,手動一掃,病毒就出來了,具體什麼緣由我也不瞭解,固然不排除我設置的不對,可是我都安裝的時候都是直接默認的。還有就是殺軟每每清楚病毒還要重啓才能清楚乾淨,不少時候,你體檢電腦完了,殺軟是否是提醒你重啓電腦?服務器
•有密碼的壓縮包應該是沒有辦法掃描的,可是咱們上傳附件的時候,咱們是在流文件裏面用密碼打開壓縮包,而後去掃描,是否是安全不少。而不是等用戶直接在服務器解壓到本地才觸發殺軟。網絡
• 還有就是,殺軟沒法即便把殺毒狀況反饋給用戶,咱們考慮這個方案的時候,主要是考慮附件上傳的狀況,若是說我是用戶,而且我是無心去攻擊的,而後我卻發現,我上傳了附件以後,系統提示我成功了,好,而後我安心的去幹其餘事情了,而後服務器纔會去殺毒。把文件幹掉。這個時侯用戶徹底不知情啊。個人東西爲何沒了呢,你看像不少郵箱上傳附件,都會當即查殺,並告知你結果,若是查殺不經過,不會給你發送的。多線程
• 殺軟還有一個侷限是必須安裝在本地服務器,假如服務器壓力很大,殺毒掃描據我所知也比較耗費性能,據我之前的舊電腦的體驗,特別是內存不是很足的時候,在線看視頻,電腦很卡,把殺軟推出後,竟然快了不少。因此咱們就用這個分佈式部署的方案,單獨一個服務器掃描。
• ClamAV的®是郵件網關掃描軟件的開源標準。
• 高性能,ClamAV包括一個多線程掃描程序守護程序,用於按需文件掃描和自動簽名更新的命令行實用程序。
• ClamAV支持多種文件格式,文件和存檔解壓縮以及多種簽名語言。
• 開源
咱們主要是考慮以上情形。工做原理咱們主要是
若是看完了上邊的,你以爲該方案對你有用,那麼你能夠繼續關注,假若該方案對你而言毫無心義。那麼你能夠無需看後面的了。
ClamAV官網:https://www.clamav.net/
ClamAV文檔:https://www.clamav.net/documents/clam-antivirus-user-manual
ClamAV 源碼:https://github.com/Cisco-Talos/clamav-devel
目前最新版是0.102.2.我關注過官方,最近一直有更新維護的,並且挺頻繁的。
操做系統:我演示使用的是windows 10.(官方支持不少系統Unix / Linux / macOS/ Debian/ Ubuntu/Redhat/CentOS)等,源碼是開源的,若是不支持,自行編譯。
硬件配置:要求很低,感受絕大部分電腦都能支持,至於在生產環境,則要根據本身的使用狀況具體分配資源。
官方文檔應該本身看一遍,有個總體瞭解。
第一步,咱們先去官網下載安裝包或者壓縮包。若是是下載安裝包,則界面安裝的方式安裝。若是是壓縮包,則解壓到響應的目錄便可。我演示的是使用ClamAV Windows Installer進行安裝。首先下載安裝包,下載地址: http : //www.clamav.net/downloads/production/ClamAV-0.102.1.exe。可能網絡比較慢,若是網絡太慢可能須要跳板下載。我公司的測試網絡仍是能夠的。
右鍵單擊ClamAV-0.102.1.exe並選擇以管理員身份運行,切記要用管理員身份,不然可能安裝失敗,或者運行不正常。您可能會收到「 Windows保護您的PC」的警告消息。選擇更多信息,而後選擇老是容許。
選擇I accept the agreement並單擊Next。
Next再點擊一次。若是您刪除了之前安裝的ClamAV,則可能會收到提示「文件夾...已存在...」。若是這樣作,請選擇Yes。點擊Install。就開始安裝。
到此,ClamAV服務器就安裝完成了。
首先咱們要把conf_examples文件夾裏面的clamd.conf.sample和freshclam.conf.sample兩個文件複製到根目錄外面,並用記事本或者文本編輯工具打開配置文件。
首先看clamd.conf文件
找到Example 這一行。把它註釋掉。不然運行會報錯。
接着找到如下幾行,把前面的註釋(#)去掉
#LogFile "C:\Program Files\ClamAV\clamd.log"
#PidFile "C:\Program Files\ClamAV\clamd.pid"
配置數據庫,我這裏是默認路徑,若是你須要更高數據庫路徑自行設置對應的盤符目錄。後面須要把病毒庫放在這裏。
#DatabaseDirectory "C:\Program Files\ClamAV\database"
設置服務器端口,默認3310端口
#TCPSocket 3310
設置監聽地址,能夠設置多個地址。支持IPv6
#TCPAddr 127.0.0.1
這些是必須的配置,更多其餘配置請本身根據配置文件的說明,按需開啓。
接着配置freshclam.conf,這個主要是對病毒庫的更新。
#註銷Example 一行
#DatabaseDirectory "C:\Program Files\ClamAV\database"
#UpdateLogFile "C:\Program Files\ClamAV\freshclam.log"
#DatabaseMirror database.clamav.net
#PidFile "C:\Program Files\ClamAV\freshclam.pid"
病毒庫地址,若是本身搭建鏡像,則可使用本身的鏡像。
#DatabaseCustomURL http://myserver.example.com/mysigs.ndb
其餘配置請本身按需開啓。注意最好能及時的更新病毒庫,不然新型病毒沒法掃描出來。
在服務安裝目錄下面按ctrl +鼠標右鍵,在此處打開命令窗口,主要要用管理員打開,若是你打開的不是管理員身份,能夠經過windows鍵,查找cmd,而後右鍵->管理員身份運行。進入到服務安裝目錄,執行 freshclam.exe.等待安裝完成。
安裝完成打開database文件夾。會看到三個病毒庫。
若是你的服務器網絡不通,能夠本身搭建鏡像,亦或本身手動下載病毒庫。地址:https://www.clamav.net/downloads#collapseCVD
下載完成放到database裏面去。
病毒庫默認12小時更新一次,若是須要更改,自行更改配置文件。
Clamscan
掃描指定位置的文件。以下是掃描了一個a.zip 文件。發現了一個病毒
有太多選項沒法在此處列出全部選項。所以,咱們將僅介紹一些常見且更有趣的內容:
--log=FILE -將掃描報告保存到FILE
--database=FILE/DIR -從FILE加載病毒數據庫或從DIR加載全部受支持的db文件
--official-db-only[=yes/no(*)] -僅加載官方簽名
--max-filesize=#n -大於此大小的文件將被跳過並認爲是乾淨的
--max-scansize=#n -每一個容器文件要掃描的最大數據量
--leave-temps[=yes/no(*)]-不要刪除臨時文件
--file-list=FILE -從FILE掃描文件
--quiet -僅輸出錯誤消息
--bell -檢測病毒的聲音
--cross-fs[=yes(*)/no] -掃描其餘文件系統上的文件和目錄
--move=DIRECTORY -將受感染的文件移至目錄
--copy=DIRECTORY -將受感染的文件複製到目錄中
--bytecode-timeout=N -設置字節碼超時(以毫秒爲單位)
--heuristic-alerts[=yes(*)/no] -切換啓發式警報
--alert-encrypted[=yes/no(*)] -提醒加密的檔案和文件
--nocerts -在PE文件中禁用Authenticode證書鏈驗證
--disable-cache -禁用對掃描文件的哈希和進行緩存和緩存檢查
Clamdscan
須要啓動clamd服務,掃描速度快;
若不使用-r 參數指定路徑,默認遞歸掃描子目錄;
定時殺毒
#定製任務計劃,凌晨3:00開始更新病毒庫,3:30開始殺毒,掃描/home目錄以及子目錄文件,將掃描出來的病毒文件直接刪除,並保存殺毒日誌
簽名測試與管理
許多工具可用於測試和管理簽名。值得注意的是如下內容:
clambc -專門用於測試字節碼
sigtool -用於通常簽名測試和分析
freshclam -用於將簽名數據庫集更新爲最新版本
還有更多的更能就不一一列舉,若是我都所有列舉了,那麼跟翻譯官方文檔有什麼區別。並且不是咱們本文的關鍵。
若是上面的用法你都不會,那麼不要緊,咱們均可以不用,可是,下面的用法必定要會,由於直接決定咱們的方案成功與否
clamd是一個多線程守護程序,它使用libclamav掃描文件中的病毒。能夠經過修改將掃描行爲徹底配置爲適合大多數需求clamd.conf。
因爲clamd須要一個病毒庫運行,咱們建議運行以前設置的ClamAV的官方簽名clamd使用freshclam。
該守護程序經過偵聽在中指定的套接字上的命令來工做clamd.conf。Unix本地套接字和TCP套接字都支持偵聽。
重要說明: clamd當前不保護或認證經過TCP套接字的通訊,這意味着它將接受來自任何來源的任何如下全部命令。所以,咱們強烈建議您在設置clamd實例時遵循最佳聯網實踐。即不要將您的TCP套接字暴露給Internet。
這是clamd套接字接受的命令的快速列表。
PING
VERSION
RELOAD
SHUTDOWN
SCAN 文件/目錄
RAWSCAN 文件/目錄
CONTSCAN 文件/目錄
MULTISCAN 文件/目錄
ALLMATCHSCAN 文件/目錄
INSTREAM
FILDES
STATS
IDSESSION, END
與大多數ClamAV工具同樣,您能夠經過調用如下命令來查找有關這些工具的更多信息:
上面一段是直接翻譯官方的,是否是看的蒙?看不懂也不要緊。你只要會一句命令就好了。
Clamd
在服務根目錄用管理員打開cmd,輸入Clamd.exe或者Clamd
如圖所示就是已經成功啓動服務了,而後就能夠去咱們的代碼調試了。經過WebAPI,咱們能夠看到ClamAV 的版本。這就說明方案也使用成功了。而後你就能夠愉快的實現本身的雲殺毒業務了。
代碼已經開源,代碼託管到Gitee。傳送門:https://gitee.com/Jesai/JESAI.ClamAV.NetScanner.git