2. Manually update the feshclam database
To update the database for the first time we need to run to update the database manually and to check whether the configuration is successfully set:
# 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 Downloading daily-25092.cdiff Downloading daily-25093.cdiff Downloading daily-25094.cdiff Downloading daily-25095.cdiff 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)
This will add or update the existing database file inside
# ls -l /var/lib/clamav/ total 442156 -rw-r--r-- 1 clamupdate clamupdate 296388 Sep 5 17:16 bytecode.cvd -rw-r--r-- 1 clamupdate clamupdate 334600704 Sep 5 14:44 daily.cld -rw-r--r-- 1 clamupdate clamupdate 117859675 Nov 25 2019 main.cvd
Настройка
Программа антивируса
После установки в директории /etc появится файл конфигурации clamd.conf.
В принципе, ничего менять там не надо, за исключением того, что нужно закомментировать (если они раскомментированы, конечно)опции TCPAddr и TCPSocket, и раскомментировать строку LocalSocket /var/run/clamav/clamd.sock
Таким образом укажем антивирусу, что работать он будет только на локальной машине.
Затем запустить сервис clamd:
# service clamd start.
И также поместить его в автозагрузку (в консоли запустить drakxconf, зайти в раздел «службы» и отметить звёздочкой сервис clamd).
Программа обновления баз
Для обновления антивирусных баз используется демон freshclam, которая входит в состав пакета clamav.
Для того, чтобы базы обновлялись два раза в день и при этом в логи записывались результаты обновления,
freshclam нужно установить в файле /etc/freshclam.conf:
checks = 2
С установкой и настройкой clamav все.
clamsmtpd
# cp clamsmtp-1.8.tar.gz /usr/local/src # cd /usr/local/src # tar -xvzf clamsmtp-1.8.tar.gz # cd clamsmtp-1.8 # ./configure --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share \ --sysconfdir=/etc --libdir=/usr/lib --mandir=/usr/share/man # make # make install # cp /usr/local/src/clamsmtp-1.8/doc/clamsmtpd.conf /etc/clamsmtpd.conf
После этого копируем пример конфигурационного файла clamsmtpd.conf из директории с исходниками (находится в подкаталоге doc/)в директорию /etc (именно в этой директории clamsmtpd будет искать свой конфигурационный файл).
После правки этот файл будет выглядеть следующим образом:
# cat /etc/clamsmtpd.conf OutAddress: 10026 Listen: 0.0.0.0:10025 ClamAddress: /var/lib/clamav/clamd.socket TempDirectory: /tmp User: clamav
На самом деле, параметров в этом файле может быть больше, но я указал лишь необходимые.
Для более подробного изучения рекомендую почитать man clamsmtpd.conf.
Для запуска clamsmtpd нужно создать файл /etc/init.d/clamsmtpd сщ следующим содержимым.
#!/bin/sh ########################################################################### # CONFIGURATION # Most configuration options are found in the clamsmtpd.conf file. # For more info see: # man clamsmtpd.conf # chkconfig: 345 17 90 # description: This startup script launches the courier imap daemon ### BEGIN INIT INFO # Provides: clamsmtpd # Required-Start: courier-authdaemon # Required-Start: $network # Required-Stop: $network # Default-Start: 345 # Short-Description: clamsmtpd daemon # Description: This startup script launches the clamsmtpd daemon ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # The prefix clamsmtpd was installed to prefix=/usr # The location for pid file piddir=/var/run/clamav NAME=clamsmtpd ########################################################################### # SCRIPT case $1 in start) mkdir -p $piddir $prefix/sbin/clamsmtpd -p $piddir/clamsmtpd.pid echo -n "clamsmtpd " ;; stop) [ -f $piddir/clamsmtpd.pid ] && kill `cat $piddir/clamsmtpd.pid` echo -n "clamsmtpd " ;; *) echo "usage: clamsmptd.sh {start|stop}" >&2 ;; esac
Далее
# chmod 740 /etc/init.d/clamsmtpd # chgrp adm /etc/init.d/clamsmtpd
Таким образом clamsmtpd будет открывать 10025-ый порт, на который postfix будет как бы отсылать почту для
проверки антивирусом (соответствующая настройка будет описана ниже), а затем, после проверки, clamsmtpd будет возвращать её обратно postfix’у на порт 10026.
Тестирование
Для проверки работоспособности будем использовать EICAR строку. Создаем файл virus.com со следующим содержанием:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Сохраняем его и выполняем
# clamscan virus.com virus.com: Eicar-Test-Signature FOUND ----------- SCAN SUMMARY ----------- Known viruses: 30736 Scanned directories: 0 Scanned files: 1 Infected files: 1 Data scanned: 0.00 MB I/O buffer size: 131072 bytes Time: 1.356 sec (0 m 1 s)
Если вы видите что то подобное, значит все прошло успешно и ClamAV благополучно установлен на вашем компьютере.
Настраиваем антивирусный фильтр ClamAV
15 марта, 2014 aqis
Антивирусная защита корпоративной сети одна из наиболее актуальных задач для системного администратора. Одним из основных путей проникновения вирусов и прочих вредоносных программ является Интернет, поэтому весьма логично будет проверять проходящий HTTP трафик на наличие вирусов еще на роутере, до того как потенциально опасное ПО попадет во внутреннюю сеть.
Такой подход позволяет существенно повысить безопасность сети, особенно для небольших организаций, где у администратора зачастую нет инструментов централизованного контроля и управления антивирусной защитой на клиентских ПК.
В UNIX-like системах весьма популярен антивирусный сканер ClamAV, во многом благодаря своей бесплатности. Он неплохо подойдет для учебных и некоммерческих организаций, а также при ограниченном бюджете
В иных случаях стоит обратить внимание на коммерческие решения, например от «Лаборатории Касперского», потому что эффективность ClamAV довольно низка, хотя вполне приемлема для бесплатного продукта
В качестве примера будем использовать роутер из нашей тестовой лаборатории, настройку которого мы рассматривали здесь.
Кроме антивируса ClamAV мы будем использовать HAVP — HTTP Antivirus Proxy — специализированный прокси-сервер для антивирусной проверки трафика. Общая схема будет выглядеть следующим образом: клиентский запрос поступает кэширующему прокси-серверу Squid, который либо выдает результат из кэша, либо передает запрос вышестоящему прокси HAVP, тот обрабатывает запрос, проверяет трафик антивирусным сканером и передает его обратно Squid’у который отдает запрос клиенту и помещает его в кэш. Этим достигается высокое быстродействие — кэш Squid’а не проверяется антивирусом. Преимуществами HAVP, по сравнению с редиректорами (squidclamav и т.п.) является более высокая скорость работы и поддержка широкого спектра антивирусных приложений, что дает возможность сменить антивирус без кардинального перестроения всей системы.
Итак, приступим. Установим ClamAV:
Shell
sudo apt-get install clamav
1 | sudo apt-getinstall clamav |
Приложение в настройке не нуждается. По умолчанию обновление антивирусных баз происходит один раз в час.
Установим HAVP:
sudo apt-get install havp
1 | sudo apt-get install havp |
HAVP по умолчанию настроен на работу с ClamAV и практически не требует настройки. В первую очередь ограничим только локальными соединениями, это необходимо для того, чтобы клиенты не могли подключаться напрямую к HAVP, явно указав его порт. Для этого в /etc/havp/havp.config найдите и раскомментируйте следующую опцию:
BIND_ADDRESS 127.0.0.1
1 | BIND_ADDRESS127.0.0.1 |
Также раскомментируйте и измените указанным образом опцию:
TEMPLATEPATH /etc/havp/templates/ru
1 | TEMPLATEPATHetchavptemplatesru |
Это позволит выводить страницы ошибок и сообщений о найденных вирусах на русском языке. Также может потребоваться изменить опцию PORT. По умолчанию HAVP работает на порту 8080, что не всегда приемлемо, данный порт часто бывает занят другими программами (например DansGuardian). Перезапускаем HAVP:
sudo /etc/init.d/havp restart
1 | sudoetcinit.dhavp restart |
Теперь настроим Squid на использование вышестоящего прокси и сканирование только HTTP трафика. В конец файла /etc/squid/squid.conf добавляем следующие строки:
INI
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP
1 |
cache_peer127.0.0.1parent8080no-queryno-digestno-netdb-exchangedefault cache_peer_access127.0.0.1allowall aclScan_HTTPprotoHTTP never_directallowScan_HTTP |
Перезапускаем Squid:
sudo /etc/init.d/squid3 restart
1 | sudoetcinit.dsquid3 restart |
Теперь с клиентского ПК заходим на страничку http://eicar.org/anti_virus_test_file.htm и пробуем скачать тестовый вирус (не опасен, представляет собой специальную сигнатуру для проверки антивирусного ПО). Если все настроено правильно мы должны увидеть страничку с блокировкой.
Шаблоны страничек выполнены в виде HTML файлов и находятся в /etc/havp/templates/ru, можете отредактировать их на свое усмотрение.
Опубликовано в рубрике *nix Метки: ClamAV, HAVP, proxy, squid, ubuntu, антивирус
Сканирование файлов с помощью антивируса ClamAV
После завершения настроек антивирусной службы, вы можете проверить любую директорию сервера на вирусы (режим сканера). Для ручного запуска проверки указанного каталога на вирусы используйте команду:
С такими параметрами антивирус сразу удалить инфицированные файлы. Если вы хотите переместить подозрительные файлы в отдельный каталог, запустите проверку с параметром —move:
Данная команда проверит указанную директорию со всеми вложениями на вирусы и подозрительные файлы переместит в директорию /tmp/clamscan.
Как видим, инфицированный файл был перенесен в указанную директорию:
Так же, можно добавить параметр —log=/var/log/clamscan.log, чтобы информация о сканировании писалась в указанный лог
Если вы хотите исключить из проверки какую-то из директорий, используйте параметр —exclude-dir:
Для регулярной проверки на вирусы вы можете настроить задание в cron, с нужными вам параметрами.
Существует графическая оболочка для антивируса ClamAV – она называется ClamTk.
5. Configure and start clamd.service
We have an example service file that we need to copy into the system services folder.
I will copy this file to . I hope you are familiar with the different systemd service file locations so you can understand why I preferred this location instead of
# cp -ap /usr/lib/systemd/system/[email protected] /etc/systemd/system/clamd.service
Next replace with from both the Description and options in
Enable and start the service
# # systemctl enable clamd.service --now Created symlink /etc/systemd/system/multi-user.target.wants/clamd.service → /etc/systemd/system/clamd.service
Check the status to make sure the service is active and running:
clamd service status
6. Configure periodic scan using clamdscan (Optional)
You can follow this step if you wish to configure auto scan of any directory as by default you will have to initiate manual scan.
We will create a new systemd service unit file :
# cat /etc/systemd/system/clamdscan-home.service Description=ClamAV virus scan Requires=clamd.service After=clamd.service ExecStart=/usr/bin/clamdscan /home StandardOutput=syslog WantedBy=multi-user.target
To perform a periodic scan we also need a mapping timer unit file. Here I have added time value of to start the scan:
# cat /etc/systemd/system/clamdscan-home.timer Description=Scan /home directory using ClamAV OnCalendar=18:40:00 Persistent=true WantedBy=timers.target
Next enable and start the timer
# systemctl enable clamdscan-home.timer --now Created symlink /etc/systemd/system/timers.target.wants/clamdscan-home.timer → /etc/systemd/system/clamdscan-home.timer.
We don’t need to start the service unit file as it will be controlled by the timer file
Now we monitor the logs at PM
Sep 05 18:40:05 server.example.com systemd: Started ClamAV virus scan. Sep 05 18:40:17 server.example.com clamdscan: /home: OK Sep 05 18:40:17 server.example.com clamdscan: ----------- SCAN SUMMARY ----------- Sep 05 18:40:17 server.example.com clamdscan: Infected files: 0 Sep 05 18:40:17 server.example.com clamdscan: Time: 11.725 sec (0 m 11 s)
Запуск
Сначала запустим программу обновления антивирусных баз.
# freshclam ClamAV update process started at Thu Jan 12 17:15:36 2006 WARNING: DNS record is older than 3 hours. WARNING: Invalid DNS reply. Falling back to HTTP mode. Reading CVD header (main.cvd): OK main.cvd is up to date (version: 35, sigs: 41649, f-level: 6, builder: tkojm) Reading CVD header (daily.cvd): OK Downloading daily.cvd daily.cvd updated (version: 1239, sigs: 474, f-level: 7, builder: diego) Database updated (42123 signatures) from db.ru.clamav.net (IP: 62.181.41.8) #
Теперь запустим сам антивирус.
# clamd #
Убедимся, что был создан socket файл.
# ls -l /var/run/clamav/ total 4 -rw-rw---- 1 clamav clamav 4 2006-01-12 17:05 clamd.pid srwxrwxrwx 1 clamav clamav 0 2006-01-12 17:05 socket #
Вообщем, антивирус заработал, но ведь Вы не будете каждый раз запускать его вручную. Давайте напишем стартовые скрипты для Slackware Linux. В дистрибутивах, где clamav входит в стандартную поставку этого делать не надо.
Стартовый скрипт
Стартовый скрипт антивируса достаточно простой. Создайте файл rc.clamav.new следующего содержания.
#! /bin/bash start() { if [ -f /var/run/clamav/clamd.pid ]; then if ps xa | grep ^$(head -1 /var/run/clamav/calmd.pid) > /dev/null; then echo "ClamAv working!" else rm -r /var/run/clamav/clamd.pid fi fi echo "Start a ClamAv antivirus" clamd if [ -f /var/run/clamav/freshclam.pid ]; then if ps xa | grep ^$(head -1 /var/run/clamav/freshcalm.pid) > /dev/null; then echo "FreshClam working!" else rm -r /var/run/clamav/freshclam.pid fi fi echo "Start a freshclam" freshclam -d } stop() { killall clamd killall freshclam } case $1 in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage rc.clamav start|stop|restart" exit 88 esac
Нам прийдется внести кое какие изменения в пакет, который мы создавали для Slackware Linux. В нем нет стартовых скриптов. Поэтому создадим директорию rc.d и поместим в нее стартовый скрипт.
# cd /tmp/clamav # mkdir etc/rc.d # cp rc.clamav.new etc/rc.d # chmod a-x etc/rc.d/rc.clamav.new #
Обратите внимание на то, что мы сбросили бит x в ноль. Это необходимо, что бы скрипт не запускался автоматом при старте системы после установки
Пусть администратор решает надо ему это или нет.
И еще добавим в файл doinst.sh строку:
config etc/rc.d/rc.clamav.new
После этого создадим пакет снова. Теперь у нас правильный пакет.
Внимание!
В стартовых скриптах запуск антивируса необходимо писать в ручную. Например в файле /etc/rc.d/rc.sendmail
Или других скриптах, запускающих другие почтовые серверы.
Внимание!
Антивирус необходимо запускать перед стартом почтового сервера.
1. Install ClamAV packages
To install ClamAV on CentOS 7, we need to install and enable EPEL repository.
# yum install epel-release
You can follow clamav official website to get the details of installing ClamAV on other distributions
Then we can install ClamAV with all its useful tools:
# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Below is a snippet from my server after the install was successful.
Below are the list of clamav rpms from my CentOS 7 environment
# rpm -qa | grep -i clamav clamav-0.102.4-1.el7.x86_64 clamav-data-0.102.4-1.el7.noarch clamav-filesystem-0.102.4-1.el7.noarch clamav-update-0.102.4-1.el7.x86_64 clamav-lib-0.102.4-1.el7.x86_64 clamav-devel-0.102.4-1.el7.x86_64
Advertisement
Облако меток
howtoubuntuспортупражнения*nixштангамышцымониторинггруппы мышцанатомияzabbixArduinoменеджментмышцы спинымышцы ногsquidприседпитаниевитаминыдобавкиБЖУтонкая настройкастановаяESP-201ESP8266Wi-FiпсихологияуправлениеHDDспинаzabbix 2.0предплечьеdnsmasqхватлекарстваWindowsедажирITILapacheDNSDHCPногиsquid3proxyдиетаshellapache2растяжкаwordpressphpFritzingIDEzabbix 3.0шаблонNATгрудные мышцыэндоморфinterface31ncduтехникаlightsquidconfigкреатиндобавкаClamAVантивирусHAVPтехника выполненияr57FTPproftpdтяга штанги в наклонеmuninсонбицепсальбуминяйцакистиизометриязавтракRDPбобовыегириомега-3рыбий жиризменениябелоквнедрениевосстановлениеживотмышцы корапресспозвоночникжимкикбоксингшпагатputty
Конфигурация
Конфигурация антивируса заключается в редактировании его конфигурационного файла /etc/clamd.conf.
Строчку со словом Example необходимо удалить.
Параметр LogFile определяет месторасположения файла журнальной регистрации. По умолчанию файл не создается и не используется.
Параметр LogFileMaxSize определяет максимальный размер журнального файла. Значение по умолчанию — 1 Мбайт.
Параметр LogSyslog заставляет программу посылать сообщения в стандартную систему журнальной регистрации Syslog. Это можно делать в том случае, когда предполагается небольшой поток информации. Поскольку у меня не очень нагруженный сервер я буду использовать Syslog.
LogFacility определяет средство, которое будет использоваться при посылке сообщений в Syslog. В моем случае антивирус будет использоваться только с почтовым сервером, поэтому я переопределю значение параметра.
LogFacility LOG_MAIL
Параметр PidFile определяет файл, в котором будет находиться PID процесса. Он нам потребуется для создания стартовых скриптов.
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory определяет директорию в которой будут находиться антивирусные базы данных. Укажем директорию которая будет использоваться в Slackware.
DatabaseDirectory /usr/share/clamav
Параметр LocalSocket определяет файл типа socket, через который программы могут посылать данные на проверку антивирусом.
LocalSocket /var/run/clamav/socket
При помощи параметра TCPSocket можно указать номер порта, на котором программа будет слушать запросы от клиентов. Поскольку в нашем случае антивирус и почтовый сервер находятся на одной машине, лучше применять файл типа socket. Поэтому мы не будем явно определять этот параметр.
Параметр User определяет пользователя с правами которого будет выполняться программа.
User clamav
Параметр ArchiveMaxFileSize позволит указать максимальный размер архива, который будет сканироваться на вирусы. Значение по умолчанию — 10Мбайт.
ClamAV
ClamAV — это бесплатный, кроссплатформенный антивирус с открытым исходным кодом, в состав которого входит сканер, который может работать из командной строки, также модуль обновления антивирусных записей. Приложение было разработано для Unix-подобных систем, но позже были созданы версии для таких ОС: Windows, Linux, OS X, BSD и Solaris.
Установка ClamAV
для РЕД ОС версии 7.1 или 7.2:
$ sudo yum update
для РЕД ОС версии 7.3 и старше:
$ sudo dnf update
После успешного обновления пакетов, начинаем процесс установки:
для РЕД ОС версии 7.1 или 7.2:
$ sudo yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
для РЕД ОС версии 7.3 и старше:
$ sudo dnf -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Для того, чтобы обновить антивирусную базу, введите следующую команду в терминале:
$ sudo freshclam
Для автоматического обновления антивирусных баз включите автозапуск соответствующей службы командой:
$ sudo systemctl enable clamav-freshclam --now
Чтобы настроить конфигурацию антивируса ClamAV, нужно удалить конфигурацию по умолчанию в файле /etc/clam.d/scan.conf.
$ sudo sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
После чего перейдем к самой настройке. Откройте файл конфигурации:
$ sudo nano /etc/clamd.d/scan.conf
И раскомментируйте следующую строку:
LocalSocket /run/clamd.scan/clamd.sock
Создадим сервис для самого ClamAV. Конфигурационный файл уже существует, но нужно изменить его название:
$ sudo mv /usr/lib/systemd/system/[email protected] /usr/lib/systemd/system/clamd.service
Откройте файл, приведите строку конфигурационного файла к данному виду:
$ sudo nano /usr/lib/systemd/system/clamd.service
Приведите строку конфигурационного файла к данному виду:
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/scan.conf
Можно запускать сервис антивируса и добавлять его в автозагрузку:
$ sudo systemctl start clamd.service
$ sudo systemctl enable clamd.service
Сканирование системы с помощью ClamAV
Чтобы проверить на вирусы все файлы на вашем компьютере, воспользуйтесь следующей командой:
$ sudo clamscan / -r
Для автоматического удаления инфицированных файлов добавьте параметр , или можете использовать > для перемещения их в карантин.
$ sudo clamscan /etc --remove
$ sudo clamscan /etc --move=/etc
Удаление ClamAV
Если вы по каким-либо причинам хотите удалить антивирус ClamAV, то воспользуйтесь командой:
для РЕД ОС версии 7.1 или 7.2:
$ sudo yum remove clamav clamav-daemon
для РЕД ОС версии 7.3 и старше:
$ sudo dnf remove clamav clamav-daemon
Однако будьте очень внимательны, данная команда может удалить зависимые пакеты, поэтому очень внимательно читайте, какие пакеты повлияют на удаление антивируса.