OPNsense中的插件C-ICAP是ICAP服务器的实现,可与Squid 3.x HTTP代理服务器等支持ICAP协议的HTTP代理协同工作,实现内容适配/过滤服务。ClamAV则提供针对恶意软件(如勒索软件、特洛伊木马和病毒)的有效防护。内置的入侵防御系统和基于类别的Web过滤可进一步增强防护能力。
需要说明的是,尽管反病毒引擎可保护客户端免受来自网络的恶意网站威胁,但无法保护本地客户端免受通过电子邮件或U盘等途径传播的病毒,因此加强本地客户端保护同样重要。
本文介绍如何使用OPNsense中的C-ICAP和ClamAV插件提升防火墙的防病毒保护能力。
第1步 – 设置代理
第2步 – 设置透明模式
要设置透明模式,请参阅:安装透明代理。
第3步 – 安装配置插件
注意: 尽量使用C-ICAP和ClamAV的默认值,不正确的修改可能会影响安全性或防火墙性能。如果不清楚某项设置的影响,请保持默认。
ClamAV
防火墙至少需要1.5 GB内存。建议使用至少2 GB内存。
警告: 有些技术可以规避AV软件的检测与扫描,且AV产品无法识别所有恶意软件。基于签名的AV软件可以降低已知恶意软件的攻击风险,但无法完全保证计算机不受感染。教会用户正确处理从互联网下载的文件并确保不可信设备的安全更为重要。同时,定期备份重要文件,确保正确使用ACL并尽快应用补丁,以尽可能减少攻击面和损失。
注意: 要使ClamAV正常工作,需要下载签名。如果这些文件存储在内存磁盘上,则需在重启后重新获取。
1、安装
首先,从插件视图安装ClamAV插件(os-clamav)。

页面重新加载后,您将在ClamAV服务下看到新的菜单条目。点击进入以下页面:

2、配置
启用clamd服务: 勾选后启用clamd,以便用于扫描文件。
启用freshclam服务: Freshclam用于更新恶意软件签名。若使用ClamAV,建议定期更新签名。
启用TCP端口: 如需通过网络使用clamd或通过TCP连接本地服务,需勾选此项。
最大运行线程数: 限制线程数以避免守护进程及计算机遭受拒绝服务攻击。通常线程数接近或等于核心数是一个较好的选择。
最大排队项目数: 允许排队等待扫描的文件最大数量,理由同线程数限制。
空闲超时: 若连接在此时间内无活动则断开。若对端为另一台机器,该值可设低;若用于开发调试,可设更高。
最大目录递归: 限制目录树深度。在最坏情况下(如出现循环导致扫描永不停止),此设置可阻止该现象。
按照目录符号链接: 若勾选,ClamAV将跟随目录符号链接,可能导致循环。如果启用,请确保设置了合理的递归限制。
遵循常规文件符号链接: 若勾选,ClamAV将跟随指向常规文件的符号链接。这可能暴露用户无权访问的文件系统信息。
禁用缓存: 勾选后不缓存结果。此设置仅适用于开发环境,因为它会缩短响应时间。
扫描可移植的执行文件: 如需扫描PE文件(如.exe、.dll),请勾选。若网络中存在此类文件,建议启用。
扫描可执行和链接格式: 如需扫描ELF文件(Linux及*BSD系统中使用),请勾选。
检测损坏的可执行文件: 若可执行文件与规范不符,此设置将将其标记。损坏的可执行文件可能源于下载问题或操作,传输损坏的可执行文件通常不应发生。
扫描OLE2: 勾选后将分析OLE2文件(如Microsoft Office文件)。建议分析这些文件,因为它们可能包含用于下载和安装恶意软件(通常是勒索软件)的宏。
OLE2阻止宏: 若需阻止含有宏的文档,请勾选。如果不使用宏,并希望阻止商业伙伴或朋友使用宏,建议启用此设置。
扫描PDF文件: 勾选后扫描PDF文件。PDF可携带其他文件、多媒体、JavaScript和字体,建议扫描。
扫描SWF: 勾选后扫描Flash文件。Flash常用于视频播放器或交互式内容,现应被HTML5取代。
扫描XMLDOCS: 扫描XML文档。
扫描HWP3: HWP是一种韩国文档格式。若不使用,最好在代理中直接阻止而非扫描;若使用,则应扫描。
解码邮件文件: 勾选后将读取邮件的各个部分,从而扫描附件。邮件附件扫描很重要,因为附件可能包含恶意软件,例如某些恶意软件广告系列将JScript文件打包在邮件的ZIP附件中。
扫描HTML: 扫描可能包含危险嵌入式JavaScript的HTML文件。
扫描档案: 扫描档案(压缩包)中的文件。此设置非常重要,因为档案可能包含恶意软件。注意,攻击者可能利用嵌套归档绕过扫描,扫描程序会在特定递归级别检测并阻止此类归档。
阻止加密存档: 加密存档通常用于传输本身不支持加密的文件,或发件人不知道如何加密。像7z这样的工具可根据密码导出密钥加密压缩数据,ClamAV因缺少密钥/密码而无法扫描。部分恶意软件作者利用加密存档绕过扫描,并在邮件中告知受害者解压密码。
C-ICAP
1、安装
首先,需从插件视图安装C-ICAP插件(新版本已更名为os-c-icap)。

页面重新加载后,您将在C-ICAP服务下看到新的菜单条目。点击进入以下页面:

2、常规设置
- Enable c-icap service:启用C-ICAP服务以处理ICAP请求。
- Timeout:套接字关闭的时间。
- Max keepalive timeout:套接字保持不活动状态达到此时长后关闭。
- Start servers:将生成的服务器进程数量。
- Max servers:限制最大进程数。
- Listen address:服务器绑定的地址,通常是环回地址(IPv6为::1,IPv4为127.0.0.1),默认为::1。
- Server admin:设置为电子邮件地址,作为与服务器问题联系的管理员联系人。
- Servername:如需覆盖错误页面上显示的服务器名称,可在此输入。
3、防病毒

- Enable ClamAV:启用反病毒扫描插件。
- Scan for filetypes:指定应分析的文件类型。建议扫描尽可能多的类型,但需注意扫描会消耗资源。
- Send percentage data:原始文件包含在预览中的数据量百分比。比例越高,扫描结果越好、安全性越强;较低的值则能提升性能。
- Allow 204 response:204响应可避免再次通过线路回传数据。当使用预览且ICAP服务器已接收全部数据时,无需返回数据。ICAP客户端必须支持204响应。
- Pass on error:若扫描失败,仍可放行文件。此设置降低安全性,但在故障时保持业务连续性。注意,这可能使网络面临风险。
第4步 – 配置ICAP
转到 Services → Proxy → Administration,在“Forward Proxy”选项卡中选择“ICAP Settings”。
勾选“启用ICAP”,并填写请求和响应URL。对于C-ICAP插件,默认URL如下:
| 请求修改URL | icap://[::1]:1344/avscan |
|---|---|
| 响应修改URL | icap://[::1]:1344/avscan |
点击应用更改。
第5步 – 测试
访问EICAR测试文件下载页面,下载任意测试文件以验证引擎是否正常工作。首先测试HTTP协议版本;如果还配置了透明SSL代理模式,那么HTTPS版本同样适用。
注意: 下载这些包含病毒测试代码的文件存在一定风险!如果一切正常,浏览器中应显示类似以下内容:

下面的视频详细介绍了ClamAV的设置过程:
觉得内容不错?我要