OPNsense利用其高度灵活的代理和行业标准ICAP 提供HTTP(S)保护。为了最大限度地防范勒索软件、木马和病毒等恶意软件,可以通过内置的入侵防御系统和基于类别的 Web 过滤进一步增强网络安全性。
防病毒代理的功能与传统的Web代理类似,不同之处在于它们会扫描通过代理的所有内容以查找恶意软件或病毒签名。如果代理认为内容有害,则会停止下载并将用户重定向到错误页面。
直接在路由器上扫描病毒的主要好处是,可以在恶意网络数据包进入网络之前将其阻止。这种网络安全方法对于访客网络和其他无法确定所有客户端都安装了最新防病毒程序的情况特别有用。此外,即使您的每个客户端都安装了防病毒应用程序,纵深防御原则也建议通过使用中央防病毒系统来增加另一层保护。OPNsense包含一个ClamAV插件,可以与C-ICAP插件结合使用。
在本教程中,将介绍如何使用C-ICAP和ClamAV插件配置OPNsense路由平台作为防病毒代理。
在开始本文之前,必须在OPNsense设置一个基本的缓存代理服务器,为免除客户端或浏览器端配置,建议开启透明代理模式。
安装ClamAV
ClamAV® 是一款防病毒引擎,可用于电子邮件扫描、Web 扫描和端点安全。它包括一个可扩展且灵活的多线程守护程序、一个命令行扫描程序和一个用于自动更新数据库的高级工具。它根据 GNU 通用公共许可证第 2 版获得许可。ClamAV 可识别数百万种病毒、木马、蠕虫和其他类型的恶意软件。
ClamAV® 仅在签名数据库已签名的情况下才会执行受信任的签名定义。它不仅可以扫描存档和压缩文件,还可以防范存档炸弹。
- FreeBSD 和 Linux 服务器版本的最低 RAM:2 GiB
- 最低建议 CPU:1 CPU at 2.0 Ghz
- 所需的最小可用硬盘空间:5 GB
C-ICAP 是 ICAP 服务器实现。它可用于与支持 ICAP 协议的 HTTP 代理一起实现内容适配和过滤服务。它具有以下主要功能:
- 用于开发自定义内容适配和过滤服务的基本 C API
- LDAP集成
- 简单的 ICAP 客户端 API
- 插件接口
在OPNsense 防火墙中安装ClamAV插件,请按照以下步骤操作:
导航至System→ Firmware→ Plugins。在搜索字段中输入内容os-clamav,然后点击右侧的“ ”按钮进行安装。插件安装完成后,ClamAV会出现在服务菜单当中。
在启用 ClamAV® 防病毒引擎之前,必须先下载病毒签名。
导航到System→ Services→ 。ClamAV,单击页面右上角的下载签名按钮。
配置ClamAV
配置ClamAV插件,可以按照以下步骤进行操作:
- 导航到System→ Services→ ClamAV。
- 选中启用clamd 服务选项。
- 选中启用freshclam服务选项来定期更新您的恶意软件签名。
- 选中启用 TCP 端口3310选项,除了本地套接字之外还启用 TCP 端口。
- 将运行线程的最大数量选项设置为 OPNsense 的核心数量,以避免守护进程和路由器拒绝服务。
- 设置“最大排队项目数”选项。此选项用于指定可以排队等待扫描的最大文件数。如果可能,建议将此值至少设置为 MaxThreads 的两倍。
- 将空闲超时选项保留为默认值。如果连接在此时间内处于非活动状态,它将被断开。
- 将用于限制目录树深度的最大目录递归选项保留为默认值。在最坏的情况下,会出现一个循环,导致扫描无限期运行,此设置应能防止这种情况发生。
- 勾选“跟随目录符号链接”选项以强制 ClamAV® 跟随目录符号链接。由于这可能会导致循环,因此请确保在启用此选项时将递归限制设置为有用的值。
- 勾选“跟随常规文件符号链接”选项,强制 ClamAV® 跟随常规文件的符号链接。这可能会暴露用户不应访问的文件系统信息。
- 勾选“禁用缓存”选项以不缓存结果。由于这会减慢响应时间,因此它仅适用于开发环境。
- 勾选扫描可移植可执行文件选项来扫描 PE 文件,例如 *.exe、*.dll、*.bat 等等。
- 检查扫描可执行文件和链接格式选项来扫描基于 Linux 和基于 BSD 的操作系统上使用的 ELF 文件。
- 勾选“检测损坏的可执行文件”选项,如果可执行文件不符合规范,则将其标记为损坏。可执行文件可能因下载错误或操作而损坏。无论如何,没有理由传递损坏的可执行文件。
- 选中扫描 OLE2选项来分析可能包含宏以下载和安装恶意软件的 OLE2 文件。
- 如果您不使用宏并且也不期望您的合作伙伴使用宏,您可以选中OLE2 阻止宏选项。
- 选中扫描 PDF 文件选项来扫描 PDF 文件。
- 选中“扫描 SWF”选项来扫描 Flash 文件。
- 选中扫描 XMLDOCS选项来扫描 XML 文档。
- 勾选“扫描 HWP3”选项来扫描韩文文档。如果您不使用它们,建议在代理中阻止它们。
- 选中解码邮件文件选项来扫描可能包含恶意软件的电子邮件附件。
- 选中扫描 HTML选项可以扫描可能包含危险的嵌入 JavaScript 的 HTML 文件。
- 选中扫描档案选项来扫描档案内可能包含恶意软件的文件。
- 勾选“阻止加密档案”选项。请注意,ClamAV® 无法扫描加密档案并检测其中包含的有害文件。为了避免被检测到,一些恶意软件作者使用加密档案并在电子邮件文本中指导受害者如何解压它们。
- 将最大扫描尺寸选项保留为默认选项。
- 将“最大文件大小”选项保留为默认值。大于此值的文件将不会被扫描。
- 将最大递归选项保留为默认值。嵌套档案将以递归方式扫描。如果 RAR 档案包含 Zip 文件,则其中的所有文件也将被扫描。
- 保留“最大文件数”选项,该选项指定要在档案、文档或任何其他容器文件中扫描的文件数作为默认值。
- 选中Freshclam 日志详细选项以启用详细日志记录。
- 将Freshclam 数据库镜像选项保留为默认选项。
- 将Freshclam 连接超时选项保留为默认选项。
- 通过添加Malware Expert、BLURL、JURLBLA和BOFHLand签名来激活第三方签名 。
设置完成以后,单击页面底部保存按钮保存设置。通过点击版本选项卡查看 ClamAV® 引擎版本和签名总数。
安装C-ICAP
现在需要在 OPNsense 防火墙中安装C-ICAP插件,以便将Web 代理与 ClamAV® 病毒扫描程序连接起来。请按照以下步骤操作:
导航至System→ Firmware→ Plugins。在搜索字段中输入内容os-c-icap查找C-ICAP插件并安装。插件安装完成后,会在服务菜单中当出现C-ICAP。
配置C-ICAP
在OPNsense防火墙中配置C-ICAP插件,可以按照以下步骤进行操作:
- 导航到System→ Services→ 。C-ICAP
- 选中启用c-icap 服务选项来处理 ICAP 请求。
- 将超时选项保留为默认值。计时器到期后,套接字将关闭。
- 将“最大保持活动请求数”选项保留为默认值。此选项限制一个连接可以处理的最大请求数。
- 将最大保持活动超时选项保留为默认值。如果计时器到期并且套接字保持不活动状态,它将被关闭。
- 将“启动服务器”选项保留为默认值。它指定将生成的服务器进程数。每个服务器进程都会生成多个线程来处理请求。
- 将限制进程数量的最大服务器选项保留为默认值。
- 将“最小备用线程数”选项保留为默认值。如果可用线程数小于此值,则 c-icap 服务器将启动新的子进程。
- 将最大备用线程选项保留为默认值。如果可用线程数超过该值,则 c-icap 服务器将终止子进程。
- 将指定每个子进程的线程数的“每个子进程的线程数”选项保留为默认值。
- 将每个子级的最大请求数选项保留为默认值。
- 保留服务器应绑定的监听地址选项为默认值。(IPv6 为 ::1 或 IPv4 为 127.0.0.1)
- 将服务器管理员选项设置为一个电子邮件地址,作为遇到服务器问题的用户的联系人。
- 设置Servername选项来覆盖错误页面上显示的服务器名称。
- 勾选启用访问日志选项。
- 选中使用 c-icap 与本地 squid选项以从本地 squid 获取用户名设置。
- 单击Antivirus选项卡。
- 选中启用ClamAV选项以启用使用 ClamAV 进行病毒扫描。
- 在“扫描文件类型”选项字段中选择要分析的文件类型。建议扫描尽可能多的文件类型,但请记住,扫描需要有可用的资源。
- 在发送百分比数据选项中设置预览中应包含的原始文件的数据量。数据越多,扫描效果越好,安全性也越高,而数据越低,性能越好。
- 设置开始发送百分比数据选项。
- 选中允许 204 响应选项。这种方式的优点是不需要再次通过网络发送数据。如果发生预览,则不会再向 ICAP 服务器发送任何数据,而是将数据转发给客户端。
- 勾选“传递错误”选项可传递无法扫描的文件。请注意,这可能会危害您的网络。
- 设置“最大对象大小”选项,指定防病毒引擎将扫描的文件的最大大小。您可以使用 K 和 M 指标分别以千字节或兆字节为单位定义大小。
- 单击Save即可激活设置。
配置ICAP
可以按照以下步骤轻松配置 ICAP:
- 导航到Services→ Proxy → 。Administration
- 单击“正向代理”选项卡上的向下箭头图标。
- 选择ICAP Settings。
- 单击advanced mode切换按钮可查看所有选项。
- 选中启用ICAP选项以使用 ICAP 服务器来过滤或替换内容。
- 将请求修改 URL选项保留为默认值icap://[::1]:1344/avscan。
- 将响应修改 URL选项保留为默认选项icap://[::1]:1344/avscan。
- 将默认选项 TTL选项保留为默认值60。
- 可以勾选“发送客户端 IP”选项,将客户端 IP 地址发送到 ICAP 服务器。如果您想根据 IP 地址过滤流量,这可能会很有用。
- 可以勾选“发送用户名”选项,将客户端用户名发送到 ICAP 服务器。如果您想根据 IP 用户名过滤流量,这可能会很有用。使用用户名需要进行身份验证。
- 可以选中“编码用户名”选项。
- 保留用于将用户名发送到 ICAP 服务器的用户名标头选项作为默认值。
- 选中启用预览选项可以提高性能。如果使用预览,则只有部分数据会发送到 ICAP 服务器。
- 将预览大小选项保留为默认选项。
- 将目标域添加到排除列表选项中,例如unharmful.com,sunnyvalley.io等。
- 点击Apply。
测试
现在,我们可以来验证 ClamAV® 防病毒引擎是否在 OPNsense 代理服务器中运行并正常工作。要测试 OPNsense 路由器中的防病毒保护,可以按照以下步骤进行操作:
- 在客户端的电脑上打开浏览器。
- 转到https://www.eicar.org/?page_id=3950页面,您将找到几个可以测试的文件。您可以尝试下载以下文件:
- https://secure.eicar.org/eicar.com
- https://secure.eicar.org/eicar.com.txt
- https://secure.eicar.org/eicar_com.zip
- https://secure.eicar.org/eicarcom2.zip
首先测试 HTTP 协议版本。如果可以,请测试 HTTPS 版本(如果您还配置了透明 SSL 代理模式)。
如果在 OPNsense 代理服务器中成功配置了 ClamAV® 和 C-ICAP 插件,防病毒引擎应该会阻止下载这些文件。可以在日志中看到类似于图 14 的消息。
相关文章: