基于Windows Server的ClamAV远程局域网主机扫描及自动化实现咨询
基于Windows Server的ClamAV远程局域网主机扫描及自动化实现咨询
嗨Nathan,你的需求完全可以实现,不用非得依赖付费工具,我给你整理了两种基于ClamAV的免费实现思路,还有自动化夜间扫描的具体步骤,你可以参考下:
方案一:SMB共享挂载+本地ClamAV扫描(适用于所有支持共享的VM)
这种方式上手简单,不需要在VM上额外装ClamAV,核心是把VM的目录共享出来,让Windows Server上的ClamAV直接扫描共享目录:
- 先在每台VM上配置共享:Windows VM直接设置文件共享,Linux VM用Samba搭建共享,记得给Windows Server的运行账户开读取权限(如果是敏感目录,建议用只读共享更安全)
- 在Windows Server上挂载共享:可以用命令
net use \\VM-IP\目标共享名 Z: /user:VM的用户名 密码,为了安全,最好先在Windows凭据管理器里存好VM的登录信息,这样脚本里就不用明文写密码了 - 写扫描脚本:新建一个批处理文件(比如
Scan_All_VMs.bat),内容大概是这样的:@echo off set LOG_DIR=C:\ClamAV\Scan_Logs if not exist "%LOG_DIR%" mkdir "%LOG_DIR%" :: 扫描VM1的共享目录 net use \\192.168.1.10\Shared D: /persistent:no clamscan -r --log="%LOG_DIR%\VM1_Scan_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log" D: net use D: /delete :: 扫描VM2的共享目录,以此类推 net use \\192.168.1.11\Shared E: /persistent:no clamscan -r --log="%LOG_DIR%\VM2_Scan_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log" E: net use E: /delete - 自动化定时:打开Windows任务计划程序,新建一个任务,触发器设为“每天”的凌晨2点(或者你想的夜间时间),操作选择“启动程序”,选中刚才的批处理文件,记得给任务分配足够权限的账户(能访问共享、能运行ClamAV)
方案二:ClamAV客户端-服务器模式(更适合长期批量管理)
如果VM数量固定且打算长期维护,这种模式更高效,相当于在每台VM上装ClamAV客户端,让Windows Server作为控制端远程触发扫描:
- 在每台VM上部署ClamAV客户端:
- Windows VM:安装ClamAV,修改
clamd.conf,启用TCPSocket 3310,并添加Allow 你的Windows Server的局域网IP,然后启动clamd服务 - Linux VM:安装clamav-daemon,修改
/etc/clamav/clamd.conf,同样开启TCP端口3310,允许Windows Server的IP连接,重启clamav-daemon服务
- Windows VM:安装ClamAV,修改
- 在Windows Server上远程扫描:用
clamdscan命令直接扫描VM,比如:
把所有VM的扫描命令写到脚本里,同样用任务计划程序定时执行clamdscan --host=192.168.1.10 --port=3310 --log="C:\ClamAV\Logs\VM1_Remote_Scan.log" C:\ - 优势:不用挂载共享,扫描过程在VM本地执行,网络传输的只是扫描指令和日志,更省带宽
额外小提示
- 日志汇总:可以在扫描脚本末尾加一段代码,把所有VM的日志合并成一个总报告,方便你快速查看结果
- 病毒库更新:一定要在Windows Server(或各VM客户端)设置
freshclam自动更新,比如每天凌晨1点在任务计划里执行freshclam --quiet,保证病毒库是最新的 - 权限检查:不管用哪种方式,都要测试下扫描账户能不能访问到所有需要扫描的目录,避免漏扫
如果觉得ClamAV的配置有点繁琐,也可以试试OpenVAS(免费开源的漏洞和恶意软件扫描工具),不过部署起来比ClamAV复杂一点,你可以根据自己的情况选。
备注:内容来源于stack exchange,提问作者NathanExact
相关产品推荐
相关产品推荐

