开源网站云查杀方案,搭建本身的云杀毒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