我的系统是CentOS5-5。
我想用 clamfs 监视指定根目录下的子目录,并在检测到任何可疑文件时立即删除。
到目前为止,我已经安装了 clamav,然后安装了 clamfs。我的问题是,当我将带有病毒签名的文件放在我的根目录下时,clamfs 没有反应,我怀疑 clamfs 和 clamd 之间没有通信。
下面我将详细介绍如何配置 clamav 和 clamfs :
/etc/clamd.conf:
LogFile /var/log/clamav/clamd.log
...
LogVerbose yes
...
LocalSocket /var/run/clamav/clamd.sock
...
User clamav
...
AllowSupplementaryGroups yes
...
我使用以下命令以 root 身份启动 clamd(由于上述文件,进程 clamd 属于用户蛤蜊):
service clamd start
在/etc/clamfs/clamfs.xml, 我设置 :
- 与文件 clamd.conf 中的套接字相同
- 要扫描的目录的根目录根范围
- 该目录将是根目录的副本挂载点范围
- clamfs 的日志文件
clamd 套接字="/var/run/clamav/clamd.sock
...
文件系统根目录="MyPathToScan" 挂载点="CopyOfMyPathToScan" 公共="yes" 非空="yes"
...
日志方法=“文件”文件名=“PathToLogFile”详细=“是”
我想要使用 clamfs 扫描的根目录及其所有子目录和文件都属于 user01(属于 user01 组)。因此,我还将用户 clamav 设置在组“user01”中。
我使用 root 身份启动 clamfs 如下:
clamfs /etc/clamfs/clamfs.xml
我补充说我的病毒数据库是最新的。
我注意到的问题如下:
- 在 clamfs 的日志文件中,当我将带有病毒特征的文件放入根目录时没有任何内容出现,但当我运行“clamscan”时它会被检测到。
- 如果我在这个根目录中运行“clamdscan”,我会出现以下错误(我补充说 SELinux 已“禁用”,所以这不是问题):
lstat() 失败:权限被拒绝。错误
- 如果我使用以下命令运行clamd根用户而不是蛤蜊,我没有出现上面的“Permission denied”,但是clamfs还是不起作用。
感谢您的帮助 !
西尔万
答案1
我注意到问题可能来自 apparmor。我试图为我的主目录设置 clamfs,但它一直在抱怨。然后我创建了一个 apparmor 配置文件,它就正常工作了 :)
$ cat /etc/apparmor.d/usr.bin.clamfs
为了简单起见,我复制了 clamav armor 并修改为 clamfs - 猜测:
#include <tunables/global>
/usr/bin/clamfs {
#include <abstractions/base>
#include <abstractions/nameservice>
# LP: #433764:
capability dac_override,
@{PROC}/filesystems r,
owner @{PROC}/[0-9]*/status r,
/etc/clamfs/* r,
/etc/fuse.conf r,
/usr/bin/clamfs mr,
/tmp/ rw,
/tmp/** krw,
/var/run/clamav/clamd.ctl rw,
# Allow home dir to be scanned
/media/disk/* rw,
/media/disk/** rw,
# Site-specific additions and overrides. See local/README for details.
#include <local/usr.bin.clamfs>
}
我还将 /etc/init.d/skeleton 复制到 /etc/init.d/clamfs-home,并根据我的直觉进行编辑,使其可执行并调用 update-rc.d clamfs-home defaults。然后使用 /etc/init.d/clamfs-home start 执行,耶!让我们看看它是否会在重启后恢复。我想知道的是如何使用非 root 用户运行 clamfs...