News:

Успех — это способность идти от поражения к поражению, не теряя оптимизма. Уинстон Черчилль

Main Menu

Clamav On Access Scanning

Started by oermolaev, 27 June 2022, 14:20

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

oermolaev

Всё таки я его уговорил работать. Тестовый вирус eicar.com во всех вариациях и архивах обнаруживается при доступе и перемещается в архив.
Краткое HowTo:
1. Устанавливаем clamav-daemon
apt install clamav-daemon
2. Редактируем freshclam.conf на приватное зеркало, или прокси, или другое ещё не заблокированное зеркало.
chmod 644 /etc/clamav/freshclam.conf
vim /etc/clamav/freshclam.conf
3.   Перезапускаем сервис freshclam и убеждаемся что всё впорядке:
systemctl restart clamav-freshclam.service
systemctl status clamav-freshclam.service
4. Редактируем   файл конфигурации clamav-daemon.service:
vim /etc/clamav/clamd.conf Дописываем параметры:
OnAccessIncludePath /home/nameuser/Download # Каталог рекурсивного сканирования. Симлинки не работают
OnAccessPrevention yes                   # Включение блокировки доступа
OnAccessExcludeUname clamav                   # Исключение для пользователя clamav
OnAccessExtraScanning yes            # Сканирование на основе inotify

5. Создадим юнит для сервиса clamonacc:
vim /etc/systemd/system/clamonacc.service[Unit]
Description=ClamAV On Access Scanner
Requires=clamav-daemon.service
After=clamav-daemon.service syslog.target network.target

[Service]
Type=simple
User=root
ExecStart=/usr/sbin/clamonacc -F --log=/var/log/clamav/clamonacc --move=/root/quarantine
Restart=on-failure
RestartSec=7s

[Install]
WantedBy=multi-user.target
Каталог для карантина должен существовать
Файл для лога я тоже создавал сам для пользователя clamav.

6. Перечитать конфигурацию systemd после любых изменений
systemctl daemon-reload

7. Активируем сервис
systemctl enable clamonacc.service
systemctl start clamonacc.service

oermolaev

Дополнение:
В юнит в ExecStart нужно добавить параметр  --fdpass. Иначе в логах clamav будет: "Can't open file or directory ERROR".
В итоге должно получиться:
[Unit]
Description=ClamAV On Access Scanner
Requires=clamav-daemon.service
After=clamav-daemon.service syslog.target network.target

[Service]
Type=simple
User=root
ExecStart=/usr/sbin/clamonacc -F --fdpass --log=/var/log/clamav/clamonacc --move=/root/quarantine
Restart=on-failure
RestartSec=7s

[Install]
WantedBy=multi-user.target