Мне не удалось найти никакой помощи по установке Clamav в современной системе Fedora. Все советы старые и неприменимы, насколько я понял.
И недостаточно просто знать, что делать! Самым важным недостающим звеном является то, что я говорю 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
Ясно, что где-то должны быть инструкции по установке, но НИЧТО из того, что я нашел, не относится к этим версиям. Пожалуйста, либо скажите мне, как это должно быть сделано, либо укажите, где я могу найти компетентное описание, которое ДЕЙСТВИТЕЛЬНО применимо!
Оказывается, в этом МНОГО.
Во-первых, кто-то, НЕ знакомый с этой конкретной проблемой, указал, что, возможно, у меня недостаточно установленного программного обеспечения. То, что я установил, указано в вопросе выше. Тем не менее, я сделал список yum 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
а затем начиная clamd@scan.service
. (Я предполагаю, что пакет 'data empty' каким-то образом решает эту проблему.)
Я также получил массу удовольствия от разговоров с сервисами milter и scan, большая часть из которых была моей ошибкой; Стоит отметить, что значения по умолчанию, указанные в двух ключевых файлах настройки, /etc/clamd/scan.conf и /etc/mail/clamav-milter.conf, НЕ СООТВЕТСТВУЮТ.
Еще одна очень странная проблема, которая меня до бесконечности расстраивала, заключалась в том, что milter просто отказывался запускаться, даже когда ВСЕ казалось в порядке, согласно указаниям. Это было только тогда, когда я ЗАМЕДЛЕННО и сделал паузу в несколько секунд между # systemctl start clamd@scan.service
и # systemctl start clamav-milter.service
что черт возьми начало работать! ПРЕДСТАВЛЯЙТЕ, просто подождав момент перед запуском milter сделал ВСЕ РАЗНИЦА! Одна эта причуда стоила мне, наверное, двух часов! Я просто не мог себе представить, что могу печатать быстрее, чем система может за ним идти! Так что, конечно, я все время менял, думая, что есть еще кое-что, что нужно исправить ...
И это о степени полезности веб-страницы, которую я цитировал выше.
Это еще НЕ привело к созданию для меня рабочей системы, но по крайней мере компоненты 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
И ЭТО Сработало. Я понимаю, что локальные сокеты быстрее, поэтому я хотел бы, чтобы это работало, но просто чтобы это было облегчением.