Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


Показаны сообщения с ярлыком clamAV. Показать все сообщения
Показаны сообщения с ярлыком clamAV. Показать все сообщения

понедельник, 24 октября 2016 г.

ClamAV в старой Zimbra сошёл с ума

Прихожу сегодня на работу и вижу во входящей админской почте кучу сообщений о том, что почтовое сообщение такое-то доставлено без проверки - Unchecked.

В огромного размера логе clamd обнаруживаю огромное количество записей типа:

WARNING: [LibClamAV] mpool_malloc(): Attempt to allocate 8388608 bytes. Please report to http://bugs.clamav.net

В некотором недоумении пытаюсь перезапустить зимбру, но обнаруживаю, что процесс clamd не реагирует на штатный kill -15 (sigterm), и снимается только по kill -9 (sigkill). Похожие записи вижу и в логе freshclam, из чего делаю вывод, что что-то не так с антивирусными базами.
Прибиваю все зимбровские процессы, переименовываю существующие базы (например mv daily.cvd -daily.cvd), вручную запускаю зимбровский freshclam. Он отрабатывает нормально, md5 свежескачанных баз совпадает с md5 старых баз. Значит базы не повреждены.
На всякий случай - всё-таки ошибка выделения памяти - проверяю логи гипервизора, на котором крутится зимбра. Там всё в порядке.
As a very last resort вбиваю текст сообщения об ошибке в гугл, и одной из первых ссылок вижу такую страницу: ClamAV DB Update leads to **UNCHECKED** in all messages (оно же в Zimbra KB) с датой изменения 24 октября 2016, то есть сегодня. Выяснилось, что проблема глобальная и Clam-ы версий 097 более не поддерживаются (причем давно) и не умеют работать с новыми базами.

Решение - в следующей по порядку статье ZimbraKB "ClamAV - Updating clamd for releases earlier than ZCS 8.0.6":

1. остановить всё зимбровское
2. скачать (по ссылкам в KB) новый ClamAV подходящей версии
3. распаковать его (под root-ом) в каталог зимбры
4. удалить старую ссылку clamav и создать ее заново, чтобы она указывала на новый каталог
5. убедиться, что ссылка указывает на каталог с новым ClamAV
6. запустить зимбру и порадоваться за нормальную работу антивируса

суббота, 19 июля 2014 г.

Антивирусная защита файловых серверов Samba с помощью ClamFS


Существуют всякие коммерческие решения для файловых серверов под линуксом, но лично мне как-то впадлу покупать лицензию у Касперского или Данилова, учитывая всякие активации, верификации и прочую проприетарщину.

Воспользуемся, как описано здесь, кошерным ClamAV и егонной ClamFS. Я внес некоторые изменения в то, что предложил "ИТ Специалист", но в целом более чем благодарен ему за подробное и доходчивое объяснение что к чему.

1. устанавливаем нужное:

sudo apt-get install clamav clamfs


2. самбовские шары живут у меня в var, пусть и clamfs живет там же (самба еще не настроена, поэтому создаю каталог и для нее)

sudo mkdir -p /var/clamfs/data
sudo mkdir /var/samba
sudo chmod -R 777 /var/clamfs
 
Попутно создаем каталог для карантина
 
sudo mkdir /var/clamfs/quarantine

Он будет использован отдельной шарой специально для администратора, поэтому создаем его не в общем каталоге для самбы, а отдельно.

3. создаем файл конфигурации ClamFS

Распаковываем /usr/share/doc/clamfs/clamfs-sample.xml.gz в /etc/clamav/clamfs.xml любым удобным способом, я, например, предпочитаю mc.

В полученном файле правим строчку

<filesystem mountpoint="/var/samba" nonempty="yes" public="yes" root="/var/clamfs/data" />

mountpoint - куда будет монтироваться контролируемая файловая система
root - где она находится по факту.
nonempty - довольно опасный параметр, он позволит смонтировать защищенную ФС в указанный каталог даже если он не пустой, поэтому лучше не держать в настоящей /var/samba ничего - при несмонтированной ClamFS этот каталог должен быть пуст.

То есть, каталоги /var/clamfs/data и /var/samba будут содержать одно и то же, но файлы, помещаемые (локально или по сети) в /var/samba будут на лету проверяться демоном ClamD.

Настраиваем протоколирование:

<log method="file" filename="/var/log/clamav/clamfs.log" verbose="no" />

4. Во избежание неприятностей с AppArmor, делаем рекомендованное:

Теперь о ложке дегтя. Как выяснилось, в Ubuntu 10.04 ClamFS при включенном Apparmor полностью блокирует все файлы на чтение. Выходов из этой ситуации несколько, так как файловый сервер обычно является сугубо внутрисетевым ресурсом, то мы пойдем по наиболее простому пути и просто удалим профиль clamd для Apparmor:

sudo rm /etc/apparmor.d/usr.sbin.clamd

5. Устанавливаем и настраиваем самбу по своему вкусу, создавая каталоги для защищаемых шар внутри /var/samba, который, как мы помним, на самом деле - защищаемое /var/clamfs/data. Дополнительно создаем шару для карантина, указав к ней путь /var/clamfs/quarantine - эта шара не будет защищена и должна быть доступна только администраторам. Остальные пользователи не должны даже подозревать об ее существовании. Реализация - на ваше усмотрение. Например, как в оригинальной статье создать отдельного пользователя "администратор антивирусной безопасности"

6. Теперь самое вкусное. Зараженный файл, заблокированный ClamFS, будет недоступен пользователям, однако продолжит валяться в общедоступном защищенном каталоге. А это плохо. Настроим регулярное сканирование.

/etc/clamav/clamscan:

#!/bin/sh
/usr/bin/clamscan -r /var/clamfs/data --move=/var/clamfs/quarantine

Добавим его периодический запуск в кронтаб:

/etc/crontab:

0 19    * * *   root    /etc/clamav/clamscan

Теперь в 7 вечера вся наша порнография будет сканироваться и найденные бяки будут переноситься в каталог карантина.

7. Если мы работаем через прокси, то будет не лишним добавить настройки в /etc/clamav/freshclam.conf:

#(например: myproxy.mydomain.ru) 
HTTPProxyServer FQDN_вашего_прокси

#(если пользователь доменный, используем одинарный бэкслеш!) 
HTTPProxyUsername [домен\]пользователь

HTTPProxyPassword пароль_этого_пользователя


Порт прокси по умолчанию 8080, если у вас отличается, добавьте строчку

HTTPProxyPort номер_вашего_порта


Обратите внимание: freshclam - параноик и не захочет работать, если в конфиге указан пароль для подключения к прокси. Для полного счастья ему надо, чтобы разрешения на файл конфигурации в таком случае были не выше чем 700. chmod в помощь!
Если же авторизация на прокси не предусмотрена или делается не через имя/пароль, то достаточно просто указать имя узла прокси-сервера и, в случае нестандарта, номер порта.

Дополнительные несущественные (на мой взгляд) моменты можно посмотреть в исходной статье.