文件病毒扫描

Seafile 可以在后台扫描上传的文件,检测其中是否包含恶意内容。当配置为定期运行时,扫描进程会检查服务器上的所有现有资料库。在每次扫描中,进程只会扫描自上次扫描以来新增或更新的文件。对于每个文件,Seafile 会调用用户指定的病毒扫描命令来判断文件是否为病毒。大多数 Linux 下的杀毒软件都提供命令行工具。
要启用该功能,请在 seafile.conf 中添加以下配置:
            
                
                
[virus_scan]
scan_command = (用于检查病毒的命令)
virus_code = (当文件为病毒时的退出码)
nonvirus_code = (当文件无病毒时的退出码)
scan_interval = (扫描间隔,单位为分钟,默认 60 分钟)
选项说明:
在 Linux/Unix 上,大多数病毒扫描命令会使用不同的退出码来区分病毒和非病毒。具体信息请参考所使用的杀毒软件文档。
以下提供了 ClamAV ( http://www.clamav.net/ ) 的示例:
            
                
                
[virus_scan]
scan_command = clamscan
virus_code = 1
nonvirus_code = 0
可以手动触发扫描来测试配置是否正确:
            
                
                
cd seafile-server-latest
./pro/pro.py virus_scan
如果检测到病毒,可以在管理后台的“病毒扫描”页面查看记录并删除感染的文件。
提示 :采用以上模式运行clamav时每次都会重新加载病毒库,所以运行起来会消耗过多时间,如果您无法忍受这个弊端,我们建议您将clamav运行为daemon模式, 请参考 守护进程运行Clamav
当以守护进程方式运行 ClamAV 时,scan_command 应该设置为 clamdscan。例如:
            
                
                
[virus_scan]
scan_command = clamdscan
virus_code = 1
nonvirus_code = 0
从专业版 6.0.0 开始,增加了更多配置选项:
            
                
                
[virus_scan]
......
scan_size_limit = (要扫描文件的大小上限,单位 MB)
scan_skip_ext = (要忽略的文件扩展名列表,多个扩展名用逗号分隔)
threads = (扫描时并发线程数,每个线程处理一个文件,默认 4)
扩展名应以 . 开头,不区分大小写。默认会忽略以下类型的文件:
            
                
                
.bmp, .gif, .ico, .png, .jpg, .mp3, .mp4, .wav, .avi, .rmvb, .mkv
如果提供了自定义扩展名列表,将会覆盖默认列表。
扫描上传文件
Seafile 还可以在文件上传时进行病毒扫描。该功能仅适用于通过网页界面或 Web API 上传的文件。通过同步客户端或 SeaDrive 上传的文件不会在上传时扫描,以避免性能开销。
如果希望扫描通过共享上传链接上传的文件,可以在 seahub_settings.py 中添加以下配置:
            
                
                
ENABLE_UPLOAD_LINK_VIRUS_CHECK = True
从专业版 11.0.7 开始,还可以通过 seafile.conf 设置扫描所有通过 Web API 上传的文件:
            
                
                
[fileserver]
check_virus_on_web_upload = true