使用 Postfix 在 Fedora Core 21 上配置 ClamAV

使用 Postfix 在 Fedora Core 21 上配置 ClamAV

我在任何地方都找不到关于在现代 Fedora 系统上安装 Clamav 的任何帮助。那里的所有建议都很旧而且不适用 - 至少就我所发现的而言。

而且,它还不够直接,我不知道该怎么做!最重要的缺失环节似乎是我告诉 Postfix 如何调用 ClamAV。然而,配置选项应该在哪里定义也完全不清楚。

我已经安装了这些版本:

clamav-0.98.6-1.fc21.x86_64 
clamav-filesystem-0.98.6-1.fc21.noarch 
clamav-data-0.98.6-1.fc21.noarch 
clamav-lib-0.98.6-1.fc21.x86_64

再次强调,这是 Fedora Core 21。安装的 Postfix 是:

postfix-2.11.3-1.fc21.x86_64

我似乎找不到名为 的文件clamav-milter.conf,尽管有它的手册页(尝试“ man clamav-milter.conf”)我在某处找到一个参考,暗示该文件属于 /etc。

我认为需要在 Postfix 中创建一个条目main.cf来创建或添加一个名为的条目,smtpd_milters以包含所需的任何链接来说明Postfix如何调用clamav。目前我有一个条目openDKIM

# This is for openDKIM - missing are clamav and spamassassin:
smtpd_milters = inet:localhost:8891

显然应该有安装说明,但我找到的这些版本都没有。请告诉我应该怎么做,或者告诉我在哪里可以找到确实适用的合格文章!

答案1

事实证明,这其中有很多事情。

首先,不熟悉此问题的人指出,也许我没有安装足够的软件。我安装的软件在上面的问题中列出。但是,我执行了 yum list clamav-* 并发现有一些我没有安装的软件包,其中包括 milter 等。

当我尝试时yum install clamav-*,它失败了,如下所示:

# yum install clamav-*
Loaded plugins: langpacks
pgdg94                                                      | 3.6 kB  00:00
updates/21/x86_64/metalink                                  |  14 kB  00:00
pgdg94/21/x86_64/primary_db                                 |  91 kB  00:05
Package clamav-data-0.98.6-1.fc21.noarch already installed and latest version
Package clamav-0.98.6-1.fc21.x86_64 already installed and latest version
Package clamav-lib-0.98.6-1.fc21.x86_64 already installed and latest version
Package clamav-filesystem-0.98.6-1.fc21.noarch already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package clamav-data-empty.noarch 0:0.98.6-1.fc21 will be installed
---> Package clamav-devel.x86_64 0:0.98.6-1.fc21 will be installed
---> Package clamav-milter.x86_64 0:0.98.6-1.fc21 will be installed
---> Package clamav-milter-systemd.noarch 0:0.98.6-1.fc21 will be installed
---> Package clamav-scanner.noarch 0:0.98.6-1.fc21 will be installed
---> Package clamav-scanner-systemd.noarch 0:0.98.6-1.fc21 will be installed
---> Package clamav-server.x86_64 0:0.98.6-1.fc21 will be installed
---> Package clamav-server-systemd.noarch 0:0.98.6-1.fc21 will be installed
---> Package clamav-server-sysvinit.noarch 0:0.98.6-1.fc21 will be installed
---> Package clamav-unofficial-sigs.noarch 0:3.7.1-12.fc21 will be installed
---> Package clamav-update.x86_64 0:0.98.6-1.fc21 will be installed
--> Processing Conflict: clamav-data-0.98.6-1.fc21.noarch conflicts data(clamav) < full
--> Processing Conflict: clamav-data-empty-0.98.6-1.fc21.noarch conflicts data(clamav) > empty
--> Finished Dependency Resolution
Error: clamav-data-empty conflicts with clamav-data-0.98.6-1.fc21.noarch
Error: clamav-data conflicts with clamav-data-empty-0.98.6-1.fc21.noarch
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
#

因此,我没有使用 --skip-broken 或其他选项,而是选择使用yum install clamav-* -x clamav-data-empty- 排除有问题的包,这样效果很好。

这给了我一些我知道明显缺失的文件,所以我想我已经找到了答案。经过一番摸索,我注意到 serverfault 的 masegaloeh 的评论指出了这个页面:http://pantestmb.blogspot.com/2013/10/fedora-19-systemctl-sendmail-clamav.html

这很有帮助!在这里,我不会重复上面说的所有内容,而是评论重点或不足之处。

这里有很多移动部件,比我预期的要多。例如,我根本没有让 clamav-milter 启动,只有在我给它一个更新的数据库和一个运行的程序来保持该数据库的更新后,它才终于正常了。这是通过运行freshclam然后启动来完成的[email protected]。(我猜“数据清空”包以某种方式解决了这个问题。)

我还获得了很多让 milter 和 scan 服务交流的“乐趣”,其中大部分是我的错;值得指出的是,两个关键设置文件 /etc/clamd/scan.conf 和 /etc/mail/clamav-milter.conf 中给出的默认值不匹配。

我遇到的另一个非常奇怪的问题让我非常沮丧,那就是即使按照说明一切正常,研磨器也拒绝启动。只有当我放慢速度并暂停几秒钟后,这该死的东西才开始工作!# systemctl start [email protected]# systemctl start clamav-milter.service想象一下,在启动研磨机前只需等待片刻,就会产生很大的不同!就因为这个小问题,我可能花了两个小时的时间!我简直不敢想象我的打字速度竟然比系统跟上的速度还快!因此,当然,我不断地改变一些东西,认为还有一些事情需要修复......

这就是我上面引用的网页的帮助程度。

虽然这还没有为我带来一个可以工作的系统,但至少 ClamAV 组件已经启动并准备就绪。最后一个剩余功能是与 Postfix 的集成。

到目前为止,情况至少比以前好多了;不是没有套接字,而是权限显然是错误的。错误消息是:

postfix/smtpd[31665]: warning: connect to Milter service unix:/var/run/clamav-milter/clamav-milter.socket: Permission denied

...我尝试了所有能想到的方法来让套接字工作,但最终我放弃了,转而使用端口连接。为此,我配置了以下内容clamav-milter.conf

# 7357 appears to be the standard port for this...
milterSocket inet:7357

并将后缀改为main.cf

smtpd_milters = inet:localhost:7357

而且它成功了。我知道本地套接字速度更快,所以我想让它工作,但只要让它工作起来就好了。

相关内容