很多系统都自带邮件服务器,比如最常见的办公系统。一般邮件服务器都建立在Linux设备上,但是杀毒软件往往很少有支持Linux平台的,即使支持,操作往往也很麻烦或者需要图形界面,而人们一般不会再邮件服务器上特意去装一个图形界面的。所以不妨换个思路,在局域网中再来几台Windows设备,装上杀毒软件专门提供病毒检测服务。邮件服务器把需要检测的文件发送给Windows杀毒服务器进行扫描,获得一个扫描结果后入库。Windows服务器和邮件服务器不共享存储,虽然降低了效率但是安全性保密性得到提高。而且邮件附件不会每天都去扫一遍,发邮件的时候实时扫描就可以了。对于小规模的邮件服务器非常方便,搭建成本极低,也就是买个服务器的成本。要是虚拟化平台可以直接打到零成本部署杀毒服务器。
一、基于卡巴斯基免费版命令行使用说明
测试了国内国外很多杀毒软件,包括收费的和免费的。这里要隆重表扬一下卡巴斯基,在大多数杀毒大厂都设为收费服务的命令行查毒工具卡巴斯基竟然在他的免费版本里提供了。这个命令行查毒工具是邮件服务器的核心,卡巴斯基真乃良心企业。
首先到卡巴斯基官网下载最新的免费版,当然你要下收费版更好。https://www.kaspersky.com.cn/free-antivirus
我下载的版本是kfa18.0.0.405abzh-hans_12797.exe
安装完毕是这个样子的,就是普通的家用版,然而我们现在要把它当成服务器级别的来使用了。
重要的是卡巴斯基安装目录下的命令行杀毒程序,他的位置是C:\Program Files (x86)\Kaspersky Lab\Kaspersky Free 18.0.0\avp.com,几乎所有的Windows电脑都只能安装在这个位置。
然后我们使用命令行尝试一下查杀功能,注意,如果你电脑上卡巴斯基程序没有运行的话,那么执行avp.com会开启卡巴斯基防护服务和图形界面
avp.com SCAN 文件或文件夹路径
可以看出卡巴斯基把文件扫描的具体清单打印了出来,包括扫描的哪个文件,这个文件是不是ok,最下面有一个总扫描文件数,总安全文件数和被发现病毒文件数。在读取报文的时候我们可以先检查总病毒文件数是不是为0,如果不为0再向上寻找是哪个文件没有检测通过。
注意:有些文件虽然只是单个文件,但是卡巴斯基会拆成一块一块的扫描,典型的就是zip,rar等压缩文件,exe安装包,Word Excel等办公文件,如下图只扫描了一个excel文。件但是他扫描了4个,估计把工作簿里每一个sheet都算做一个文件。很多时候word文档能扫描出30多个文件
中文出现乱码是很正常的事,不会影响扫描结果。
1.1 NodeJS服务器调用卡巴斯基过程说明
既然有了这么好用的命令行工具,那么我们找一个中间件,对外提供一个可访问的接口,让其他服务器把要查毒的文件上传上来,然后扫描完把这个报文发送回去,让其他的服务器自己去解析报文各取所需就好了,报文格式就是上面的截图所示案例,一般如下
AV bases release date: 2017-09-15 19:55:00 (full)
; --- Settings ---
; Action on detect: Ask after scan
; Scan objects: All objects
; Use iChecker: Yes
; Use iSwift: Yes
; Try disinfect: Yes
; Try delete: Yes
; Try delete container: No
; Exclude by mask: No
; Include by mask: No
; Objects to scan:
; "E:\54\" Enable = Yes Recursive = Yes
; ------------------
2017-09-16 15:58:01 Scan_Objects$0320 starting 1%
2017-09-16 15:58:01 E:\54\Save003.sav ok
2017-09-16 15:58:01 Scan_Objects$0320 running 1%
2017-09-16 15:58:01 E:\54\saves.ini ok
2017-09-16 15:58:01 E:\54\Save001.sav ok
2017-09-16 15:58:01 E:\54\Save002.sav ok
2017-09-16 15:58:01 Scan_Objects$0320 completed
Info: task 'ods' finished, last error c