ѕоговорим?јлиса это умеет

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

ќпен сорс ѕќ дл€ борьбы с вирусами

ћерион Ќетворкс

7 минут чтени€

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 и они оказались полезны дл€ вас в том или ином виде.


ѕолезна ли ¬ам эта стать€?


Ёти статьи могут быть вам интересны: