img

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

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

ClamAV является антивирусом с открытым исходным кодом. Его используют для обнаружения вирусов, вредоносных программ и вредоносного программного обеспечения на компьютерах под управлением Linux и даже в решениях именитых вендоров, так как эта разработка была выкуплена компанией Cisco, но все же оставлена в виде open-source. Угроза со стороны вирусов, троянов и других вредоносных программ всегда возможна, их количество растет в геометрической прогрессии как по количеству, так и по сложности, и антивирусное программное обеспечение всегда должно использовать сложные методы обнаружения. Никогда нельзя дать гарантии, что ваша система не станет жертвой этих нежелательных фрагментов кода, так что важно оставаться внимательным при использовании Интернета и совместном использовании файлов. Ну и отсюда вытекает необходимость реализации политик безопасности на основе здравого смысла и использовании современных антивирусных программ.

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

Установка ClamAV

Чтобы установить ClamAV в CentOS / RHEL 7, нам нужно установить репозиторий EPEL:

# yum install epel-release

Затем необходимо установить ClamAV со всеми его полезными инструментами:

# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

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

Для настройки ClamAV в первую очередь нам нужно удалить конфигурацию по умолчанию, чтобы создать свою:

# sed -i '/^Example/d' /etc/clamd.d/scan.conf

После удаления строк примера нужно сделать некоторые правки, чтобы определить тип сервера TCP и предоставить root права для запуска антивируса:

# vim /etc/clamd.d/scan.conf

Значение, данное с LocalSocket, является файлом, использующим связи с внешними процессами. Следует выполнить следующую строку:

LocalSocket /var/run/clamd.scan/clamd.sock

Добавляем эти две строки в конец файла и сохраняем:

User root
LocalSocket /var/run/clamd.<SERVICE>/clamd.sock

Чтобы поддерживать базу данных сигнатур ClamAV в актуальном состоянии, необходимо включить инструмент под названием Freshclam. Поэтому нужно создать файл резервной копии из его файла конфигурации:

# cp /etc/freshclam.conf /etc/freshclam.conf.bak

Freshclam читает свою конфигурацию из /etc/freshclam.conf. Файл содержит строку со словом Пример, чтобы пользователи не могли использовать значения по умолчанию, их необходимо удалить их или закомментировать, прежде чем сможем использовать freshclam. А так как не все настройки по умолчанию не подходят для наших целей, придется внимательно проверить файл и решить, что нам понадобится. Каждая команда также будет прокомментирована.

# sed -i '/^Example/d' /etc/freshclam.conf

Нам нужно запустить Freshclam, чтобы обновить базу данных и проверить, успешно ли задана конфигурация:

# freshclam
ClamAV update process started at Tue Nov 6 15:51:59 2018
WARNING: Can't query current.cvd.clamav.net
WARNING: Invalid DNS reply. Falling back to HTTP mode.
Reading CVD header (main.cvd): OK (IMS)
main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Reading CVD header (daily.cvd): OK
Downloading daily-25006.cdiff [100%]
Downloading daily-25092.cdiff [100%]
Downloading daily-25093.cdiff [100%]
Downloading daily-25094.cdiff [100%]
Downloading daily-25095.cdiff [100%]
daily.cld updated (version: 25095, sigs: 2143057, f-level: 63, builder: neo)
Reading CVD header (bytecode.cvd): OK
bytecode.cvd is up to date (version: 327, sigs: 91, f-level: 63, builder: neo)
Database updated (6709397 signatures) from database.clamav.net (IP: 104.16.186.138)

Процесс выводит свой прогресс-бар в терминал, и вы можете увидеть несколько сообщений об ошибках. Например, он может сообщить, что ему не удалось загрузить нужный файл. Не паникуйте - freshclam попробует несколько зеркал. Он сообщает, что main.cvd, daily.cvd и bytecode.cvd обновляются, и по завершении, вы будете знать, что у вас есть последние сигнатуры.

Мы можем запустить freshclam в любое время, когда необходимо убедиться, что базы данных сигнатур обновлены, но было бы неудобно всегда запускать его вручную. При запуске с аргументом -d freshclam будет работать и периодически проверять наличие обновлений в течение дня (по умолчанию каждые два часа).

Чтобы сохранить некий порядок в системе, мы создали файл службы для запуска freshclam и зарегистрировали его в systemd:

# vim /usr/lib/systemd/system/clam-freshclam.service

Затем мы помещаем следующий код в файл и сохраняем его:

[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true
RestartSec = 20sec
[Install]
WantedBy=multi-user.target

Раздел [Unit] определяет основные атрибуты сервиса, такие как его описание и его зависимость от сетевого соединения. Раздел [Service] определяет сам сервис, ExecStart будет запускать freshclam с аргументом -d, Type сообщает systemd, что процесс будет разветвляться и запускаться в фоновом режиме, а при перезапуске systemd отслеживает сервис и перезапускает его автоматически в случае. Раздел [Install] определяет, как он будет связан, когда запустится systemctl enable.

Перезагрузите systemd, чтобы применить изменения:

# systemctl daemon-reload

Далее запустите и включите сервис freshclam:

# systemctl start clam-freshclam.service
# systemctl status clam-freshclam.service
clam-freshclam.service - freshclam scanner
oaded: loaded (/usr/lib/systemd/system/clam-freshclam.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2018-11-06 15:56:53 IST; 3s ago
Process: 7926 ExecStart=/usr/bin/freshclam -d -c 4 (code=exited, status=0/SUCCESS)
Main PID: 7927 (freshclam)
CGroup: /system.slice/clam-freshclam.service
L-7927 /usr/bin/freshclam -d -c 4
Nov 06 15:56:53 node2.example.com systemd[1]: Starting freshclam scanner...
Nov 06 15:56:53 node2.example.com systemd[1]: Started freshclam scanner.
Nov 06 15:56:53 node2.example.com freshclam[7927]: freshclam daemon 0.100.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Nov 06 15:56:53 node2.example.com freshclam[7927]: ClamAV update process started at Tue Nov 6 15:56:53 2018

Если все работает нормально, добавляем его в службу запуска системы:

# systemctl enable clam-freshclam.service
Created symlink from /etc/systemd/system/multi-user.target.wants/clam-freshclam.service to /usr/lib/systemd/system/clam-freshclam.service.

Теперь для настройки ClamAV необходимо создать файл сервиса ClamAV. У нас есть пример файла службы, который нам нужно скопировать в папку системных служб. Нам нужно изменить его имя на что-то понятное. Затем нам нужно внести в него небольшие изменения:

# mv /usr/lib/systemd/system/clamd@.service /usr/lib/systemd/system/clamd.service

Поскольку мы изменили имя, нам нужно изменить его в файле, который также использует этот сервис:

# vim /usr/lib/systemd/system/clamd@scan.service

Мы изменили первую строку, удалив @, чтобы это выглядело так:

.include /lib/systemd/system/clamd.service

В том же месте нам нужно изменить файл сервиса Clamd:

# vim /usr/lib/systemd/system/clamd.service

Мы добавляем следующие строки в конце:

[Install]
WantedBy=multi-user.target

Удаляем % i из опций Description и ExecStart. Затем изменяем их, чтобы они выглядели следующим образом:

Description = clamd scanner daemon
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/scan.conf
TimeoutSec=5min
Restart = on-failure
RestartSec=10sec

Далее запустите сервис clamv

# systemctl start clamd.service
# systemctl status clamd.service
clamd.service - clamd scanner daemon
Loaded: loaded (/usr/lib/systemd/system/clamd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2018-11-06 19:48:17 IST; 16s ago
Docs: man:clamd(8)
man:clamd.conf(5)
https://www.clamav.net/documents/
Process: 1460 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/scan.conf (code=exited, status=0/SUCCESS)
Main PID: 1461 (clamd)
CGroup: /system.slice/clamd.service
L-1461 /usr/sbin/clamd -c /etc/clamd.d/scan.conf
Nov 06 19:48:15 node2.example.com clamd[1461]: ELF support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: Mail files support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: OLE2 support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: PDF support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: SWF support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: HTML support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: XMLDOCS support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: HWP3 support enabled.
Nov 06 19:48:15 node2.example.com clamd[1461]: Self checking every 600 seconds.
Nov 06 19:48:17 node2.example.com systemd[1]: Started clamd scanner daemon.

Если все хорошо, то включите сервис clamd.

# systemctl enable clamd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/clamd.service to /usr/lib/systemd/system/clamd.service.

Для проверки текущей папки мы запускаем следующую команду:

# clamscan --infected --remove --recursive ./
----------- SCAN SUMMARY -----------
Known viruses: 6702413
Engine version: 0.100.2
Scanned directories: 7
Scanned files: 9
Infected files: 0
Data scanned: 0.01 MB
Data read: 0.00 MB (ratio 2.00:1)
Time: 25.439 sec (0 m 25 s)

Мы надеемся вы правильно выполнили все этапы настройки ClamAV в RHEL / CentOS 7 Linux и они оказались полезны для вас в том или ином виде.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
21 ноября
20:00
Бесплатный вебинар
Введение в Docker