ClamAV – антивирус с открытым исходным кодом. Используется для обнаружения вирусов, вредоносных программ и вредоносного ПО. В основном используется на платформах под управлением Linux для проверки каталогов пользователей, доступных по ftp, samba, каталогов веб сайтов или писем на почтовых серверах в виде MTA агента.
В данной статье мы рассмотрим установку и настройку ClamAV на сервере под управлением CentOS.
Установка антвируса ClamAV на CentOS
ClamAV не доступен в базовых репозитория Linux и поэтому, для его установки на сервере потребуется репозиторий EPEL:
# yum install epel-release -y
После установки репозитория, можно перейти к установке всех нужных пакетов для ClamAV. Для установки используется менеджер пакетов yum (или dnf в CentOS 8):
# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Базовая настройка антивируса ClamAV в CentOS
Чтобы настроить собственную конфигурацию антивируса ClamAV, нужно удалить конфигурацию по умолчанию в файле /etc/clam.d/scan.conf.
# sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
После чего перейдем к самой настройке. Откройте файл конфигурации:
# nano /etc/clamd.d/scan.conf
И раскомментируйте следующую строку:
LocalSocket /run/clamd.scan/clamd.sock
Так же вы можете расскоментировать нужные строки с настройками. Например, включить логирование или настроить максимальное количество подключений.
Конфигурационный файл /etc/clamd.d/scan.conf содержит довольно подробные комментарий ко всем настройкам и каждая строка в нем описана.
Для поддержки баз антивирусных сигнатур для ClamAV в актуальном состоянии, нужно включить инструмент Freshclam. Создадим резервную копию файла конфигурации:
# cp /etc/freshclam.conf /etc/freshclam.conf.bak
После чего, запустите команду:
# sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
И запустите обновление антивирусных баз:
# freshclam
В процессе обновления, могу появляться ошибки о том, что некоторые обновления не могут быть скачаны. Freshclam автоматически подберет нужное зеркало для успешной загрузки.
Чтобы freshclam автоматически проверял обновления, можно запустить его с параметром -d:
# freshclam -d
— таким образом, каждые 2 часа будет выполняться проверка на обновления.
Для удобства запуска создадим файл службы для freshclam:
# nano /usr/lib/systemd/system/freshclam.service
И добавим содержимое:
[Unit] Description = freshclam After = network.target [Service] Type = forking ExecStart = /usr/bin/freshclam -d -c 4 Restart = on-failure PrivateTmp = true RestartSec = 10sec [Install] WantedBy=multi-user.target
Выполним перезапуск демона systemd:
# systemctl daemon-reload
После чего можно запустить и добавить в автозагрузку наш сервис:
# systemctl start freshclam.service
# systemctl enable freshclam.service
# systemctl status freshclam.service
Аналогично сервису для freshclam, создадим сервис для самого ClamAV. Конфигурационный файл уже существует, но нужно изменить его название:
# mv /usr/lib/systemd/system/clamd\@.service /usr/lib/systemd/system/clamd.service
Для удобства мы удалили
\@
.
Также, измените конфигурацию данного файла:
[Unit] Description = clamd scanner daemon After = syslog.target nss-lookup.target network.target [Service] Type = forking ExecStart = /usr/sbin/clamd -c /etc/clamd.d/scan.conf # Reload the database ExecReload=/bin/kill -USR2 $MAINPID Restart = on-failure TimeoutStartSec=420 [Install] WantedBy = multi-user.target
И можно запускать сервис антвируса и добавлять его в автозагрузку:
# systemctl start clamd.service
# systemctl enable clamd.service
Сканирование файлов с помощью антивируса ClamAV
После завершения настроек антивирусной службы, вы можете проверить любую директорию сервера на вирусы (режим сканера). Для ручного запуска проверки указанного каталога на вирусы используйте команду:
# clamscan --infected --remove --recursive /var/www/
С такими параметрами антивирус сразу удалить инфицированные файлы. Если вы хотите переместить подозрительные файлы в отдельный каталог, запустите проверку с параметром —move:
# clamscan --infected --recursive --move=/tmp/clamscan /var/www
Данная команда проверит указанную директорию со всеми вложениями на вирусы и подозрительные файлы переместит в директорию /tmp/clamscan.
Как видим, инфицированный файл был перенесен в указанную директорию:
Так же, можно добавить параметр —log=/var/log/clamscan.log, чтобы информация о сканировании писалась в указанный лог
Если вы хотите исключить из проверки какую-то из директорий, используйте параметр —exclude-dir:
# clamscan -i --recursive --move=/tmp/clamscan --log=/var/log/clamscan.log --exclude-dir="/var/www/administrator" /var/www
Для регулярной проверки на вирусы вы можете настроить задание в cron, с нужными вам параметрами.
Существует графическая оболочка для антивируса ClamAV – она называется ClamTk.