将文件发送到远程 clamd 实例

将文件发送到远程 clamd 实例

我可能误解了如何使用 clamd。我遇到的情况是,我的媒体服务器功能不够强大,无法扫描文件以及托管它正在运行的其他服务(树莓派)。当我查看 clamd.conf 和手册页时,似乎有一个选项可以让 clamd 监听指定的 IP 地址和套接字。有没有办法将文件从远程文件服务器流式传输到另一台运行 clamd 的机器进行扫描?

我也遇到过“远程 Clamd 扫描”,尽管它甚至在代码中指出

您必须使用本地套接字来扫描本地文件

(它也设计为一次扫描一个文件,而不是一个目录,这样就好了)

有人问过类似的问题这里尽管安卓系统指出

Clamd 会等待并监听需要扫描哪些文件的指令,即它通过 TCP 接收的通信。我们需要知道它如何访问要扫描的邮件文件...

那么,clamd 不支持远程文件扫描吗?如果不支持,扫描远程文件的最佳方法是什么?我可以临时 rsync 文件并扫描它们,或者将 raspbian 配置为文件服务器并将其安装到我托管 clamd 服务的机器上。如果有更好的建议,我将不胜感激。

答案1

我同意 jezzaaaa 的上述回答,您确实可以根据自己的需要配置客户端/服务器。例如:

如果您希望 clamaV 作为执行扫描并捕获受感染文件的服务器,这里是 Ubuntu 20.04 的配置...

服务器端

# Install the 'daemon and freshclam'
sudo apt install -y clamav-daemon clamav-freshclam

在‘/etc/clamav/clamd.conf’文件中添加选项‘TCPSocket 3310’,使其可以接收在端口 3310 上监听的请求。

完成后,服务器现在正在监听并等待请求。

客户端

# Install the 'clamdscan', this will install other things, you can remove them
sudo apt install -y clamdscan

# Remove the extra from the client machine
sudo apt remove -y clamav-daemon clamav-freshclam

在文件中添加选项TCPAddrTCPSocket(TCPAddr 1.2.3.4 TCPSocket 3310)并从客户端中删除(LocalSocket) /etc/clamav/clamd.conf

客户端测试

~$ clamdscan -v ~/infected-file.txt
~$ clamdscan -v ~/document-file.pdf

如果服务器和客户端机器可以通过端口 3310 进行通信,则输出应该记录在正在运行的服务器机器上clamav-daemon

答案2

ClamAV 支持使用带有“--stream”选项的 clamdscan。您可以将文件提供给 clamdscan 客户端,它会通过网络将文件发送到 clamd 实例进行扫描。

通过指定 TCPSocket 和 TCPAddr,配置 clamd 以侦听通过 TCP 的远程连接。TCPAddr 告诉 clamd 要侦听哪个 IP 地址。

然后在您的 Pi 上,为 TCPSocket 和 TCPAddr 配置相同的设置。运行 clamdscan 时,它将连接到运行 clamd 的服务器,并以流的形式发送文件。(在您的 Pi 上,您只需指定 TCPSocket 和 TCPAddr;clamd.conf 中的所有其他选项都可以省略。)

相关内容