我可能误解了如何使用 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
在文件中添加选项TCPAddr
和TCPSocket
(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 中的所有其他选项都可以省略。)