Установка и настройка антивируса ClamAV на CentOS

Установка и настройка антивируса ClamAV на CentOS

ClamAV – антивирус с открытым исходным кодом. Используется для обнаружения вирусов, вредоносных программ и вредоносного ПО. В основном используется на платформах под управлением Linux для проверки каталогов пользователей, доступных по ftp, samba, каталогов веб сайтов или писем на почтовых серверах в виде MTA агента.

В данной статье мы рассмотрим установку и настройку ClamAV на сервере под управлением CentOS.

В этой инструкции:

  • Установка антвируса ClamAV на CentOS
  • Базовая настройка антивируса ClamAV в CentOS
  • Сканирование файлов с помощью антивируса ClamAV

Установка антвируса 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]%MINIFYHTMLeecafeca2e075c3b7692f4830b47b9787%
%MINIFYHTMLeecafeca2e075c3b7692f4830b47b9788%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.

20:03
751