Подготовка к установке

После того как вы приобретете лицензию на Dr.Web vxCube, на адрес вашей электронной почты придут следующие письма:

со ссылками на дистрибутив продукта и образы виртуальных машин, на которых будет производиться анализ;

с лицензионным ключевым файлом.

Кроме того, отдельной посылкой вы получите аппаратный ключ защиты Guardant.

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

1.Очистите SSD-диск, на который вы устанавливаете компоненты Dr.Web vxCube. Если SSD-диск разбит на разделы, удалите их.

2.Подключите электронный ключ защиты Guardant к устройству, на котором будет развернут сервис Dr.Web vxCube. Это обязательно для запуска анализа. Если вы будете разворачивать Dr.Web vxCube на нескольких устройствах, электронный ключ защиты Guardant потребуется для каждого из них.

3.Скачайте дистрибутив, образы и ключевой файл из полученных писем. Распакуйте скачанные архивы.

4.Поместите лицензионный ключ Dr.Web vxCube в confs/vxcube.key.

5.Поместите файлы дистрибутива и образов в следующие каталоги:

SSL-сертификаты для подключения к VPN-серверам, указанным в файле vars-user.yml (переменная openvpn_client_servers), в каталоги confs/openvpn.crt, confs/openvpn.key и confs/openvpn_ca.crt;

warning_green

SSL-сертификаты не являются частью продукта Dr.Web vxCube; их необходимо приобрести отдельно.

полученные образы виртуальных машин на базе Windows с расширением .tar.gz и все служебные файлы .tar.gz.ver и .tar.gz.hash в каталог vm-images-win;

полученные образы виртуальных машин на базе Android с расширением .vdi и все служебные файлы .vdi.hash и .vdi.ver в каталог vm-images-andr;

полученные образы виртуальных машин на базе Linux с расширением .tar.gz и все служебные файлы .tar.gz.hash и .tar.gz.ver в каталог vm-images-linux.

warning_green

Вы также можете поместить образы виртуальных машин в произвольные каталоги. В этом случае вам нужно указать эти каталоги в файле vars-default.yml (в переменных hyperbox_images_repo, dimas_images_repo и linuxbox_images_repo).

6.Если вы хотите интегрировать Dr.Web vxCube с MailD, вам потребуется SSL-сертификат. Если у вас нет этого сертификата, его можно сгенерировать, например с помощью следующей команды:

openssl dhparam -out web_dhparam.pem 2048

7.Если вы хотите, чтобы веб-интерфейс Dr.Web vxCube поддерживал работу по протоколу HTTPS, выполните следующие действия:

создайте файлы confs/web_ssl.crt, confs/web_ssl.key;

создайте файл confs/web_dhparam.pem (если пропустили шаг 5);

в файле vars-default.yml раcкомментируйте переменные vxcube_web_ssl_cert, vxcube_web_ssl_privkey и vxcube_web_dhparam.

8.Убедитесь, что на всех серверах, на которых вы собираетесь развертывать компоненты Dr.Web vxCube, установлены пакеты make, python3-venv и sshpass. Если пакетов нет, установите их, выполнив следующие команды:

sudo apt-get install make
sudo apt-get install python3-venv
sudo apt-get install sshpass

warning_green

При запуске команды make создается виртуальное окружение Python и устанавливаются пакеты, необходимые для запуска Ansible нужной версии. Если вы используете любой другой репозиторий Python, помимо pipy.org, укажите его через переменные окружения, зарегистрировав их, например:

export PIP_INDEX_URL=https://devpi.local
export PIP_TRUSTED_HOST=devpi.local

Или укажите в команде запуска:

PIP_INDEX_URL=https://devpi.local
PIP_TRUSTED_HOST=devpi.local make deploy

9.Включите поддержку systemd-networkd.socket с помощью следующих команд:

sudo systemctl stop systemd-networkd.service
sudo systemctl enable systemd-networkd.socket
sudo systemctl start systemd-networkd.socket
sudo systemctl start systemd-networkd.service

10.(Только для установки на компьютер с OC Astra Linux) Обновите ОС Astra Linux до версии 1.7.6. В /etc/apt/sources.list должны быть указаны следующие репозитории:

# Расширенный репозиторий

deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free

# Репозиторий Astra 1.7.6

deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-main/ 1.7_x86-64 main contrib non-free

deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-update/ 1.7_x86-64 main contrib non-free

deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base/ 1.7_x86-64 main contrib non-free

11.После обновления репозиториев выполните команды:

sudo apt update
sudo apt upgrade

12.Отредактируйте настройки установки. Для этого в файле vars-user.yml задайте значения всех переменных. Их подробное описание вы найдете в самом файле, а также в следующей таблице:

Описание переменных в файле vars-user.yml

Переменная

Описание

vxcube_web_superuser_email

E-mail администратора Dr.Web vxCube.

Пользователь с указанным вами адресом будет создан после установки веб-интерфейса.

vxcube_web_superuser_pass

Пароль администратора.

Вы можете ввести нужный вам пароль:

vxcube_web_superuser_pass: "example_password"

Или указать его генерацию автоматически:

vxcube_web_superuser_pass: "{{ lookup('password', 'credentials/vxcube_web_superuser_pass length=10

chars=ascii_letters,digits') }}"

Сгенерированный пароль будет сохранен в файле credentials/vxcube_web_superuser_pass.

hyperbox_ssds

Список доступных на сервере SSD-дисков.

Пример значения переменной для двух дисков:

hyperbox_ssds:

- sdb

- sdc

vxcube_os_count

Максимальное число работающих одновременно виртуальных машин с ОС Windows.

При выборе значения для этой переменной необходимо учитывать технические характеристики устройства. Оптимальное значение можно рассчитать по формуле: <vxcube_os_count> = <количество ядер * 1.5> / <количество разных типов ОС>.

К примеру, на 48-ядерном сервере при использовании четырех различных типов ОС можно установить значение vxcube_os_count, равное 18.

vxcube_os_clone_threads

Число потоков, используемых для клонирования виртуальных машин.

При выборе значения для этой переменной учитывайте технические характеристики устройства.

К примеру, при наличии двух SSD-дисков и 48-ядерного процессора количество потоков не должно превышать 15.

openvpn_client_servers

Список VPN-серверов, через которые будет маршрутизироваться трафик с виртуальных машин. Если в переменной указано несколько хостов, при выходе из строя первого сервера будет использоваться следующий по списку. Обратите внимание, что vxcube-installer не развертывает VPN-сервер. Для этого вам необходимо настроить VPN-сервер самостоятельно. Подробнее см. Приложение В. Настройка отдельного VPN-сервера.

Формат значения переменной:

openvpn_client_servers:

 - host: xx.xx.xx.xx

   port: 1194

vboxnet_vpn_gateway

IP-адрес шлюза внутри VPN-сети, на который будет перенаправляться трафик. Как правило, это будет первый хост в подсети. К примеру, если внутренняя VPN-сеть имеет подсеть 10.0.42.0/24, то шлюзом будет являться 10.0.42.1.

evparser_max_workers_count

Максимальное количество рабочих потоков сервиса анализа поведения.

При выборе значения для этой переменной учитывайте технические характеристики устройства.

Рекомендуется установить значение, равное переменной vxcube_os_count.

evparser_min_workers_count

Минимальное количество рабочих потоков сервиса анализа поведения.

Они будут запущены всегда, даже при отсутствии заданий.

Рекомендуется установить значение, равное 20 % от evparser_max_workers_count.

evparser_srv_autoscale

Максимальное и минимальное количество рабочих потоков сервиса анализа поведения.

Формат значения переменной:

"<max_worker_num>,<min_worker_num>"

Например: evparser_srv_autoscale: "10,1"

drweb_srv_autoscale

Максимальное и минимальное количество рабочих потоков, используемых антивирусом для проверки файлов.

Формат значения переменной: "<max_worker_num>,<min_worker_num>".

Например: drweb_srv_autoscale: "10,1"

Рекомендуется установить значение max_worker_num, равное значению vxcube_os_count, а min_worker_num,равное 20 % от значения max_worker_num.

yara_srv_autoscale

Максимальное и минимальное количество рабочих потоков, используемых сервисом YARA.

Формат значения переменной: <max_worker_num>,<min_worker_num>.

Например: yara_srv_autoscale: "10,1"

Рекомендуется установить значение max_worker_num, равное значению vxcube_os_count, а min_worker_num,равное 20 % от значения max_worker_num.

Дополнительно вы также можете указать или изменить значения переменных в файле vars-default.yml. Их подробное описание вы найдете в самом файле, а также в следующей таблице:

Описание переменных в файле vars-default.yml

Переменная

Описание

vxcube_local_hostname

Имя хоста при загрузке на локальный сервер.

vxcube_ftp_user

Логин FTP-пользователя, используется для загрузки образцов на FTP-сервер.

Например:

vxcube_ftp_user: "vxcube_ftp"

vxcube_ftp_pass

Пароль FTP-пользователя, указанного в переменной vxcube_ftp_user. По умолчанию генерируется случайный пароль, который записывается в файл credentials/vxcube_ftp_pass.

Если пароль уже был сгенерирован ранее (то есть файл credentials/vxcube_ftp_pass уже создан и пароль туда записан), будет использоваться пароль из файла.

Например:

vxcube_ftp_pass: "{{ lookup('password', 'credentials/vxcube_ftp_pass length=10 chars=ascii_letters,digits') }}"

vxcube_web_db_pass

Пароль для базы данных. По умолчанию генерируется пароль, который записывается в файл credentials/vxcube_web_db_pass.

Например:

vxcube_web_db_pass: "{{ lookup('password', 'credentials/vxcube_web_db_pass length=10 chars=ascii_letters,digits') }}"

vxcube_web_ssl_cert

Путь до сертификата .crt. По умолчанию сертификат находится в confs/web_ssl.crt.

Например:

vxcube_web_ssl_cert: "{{ lookup('file', 'confs/web_ssl.crt') }}"

vxcube_web_ssl_privkey

Путь до приватного ключа .key. По умолчанию ключ находится в confs/web_ssl.key.

Например:

vxcube_web_ssl_privkey: "{{ lookup('file', 'confs/web_ssl.key') }}"

vxcube_web_dhparam

Путь до ключа Диффи-Хеллмана .pem. По умолчанию ключ находится в confs/web_dhparam.pem.

Например:

vxcube_web_dhparam: "{{ lookup('file', 'confs/web_dhparam.pem') }}"

vxcube_web_mail_server

IP-адрес или доменное имя SMTP-сервера.

Например:

vxcube_web_mail_server: "localhost"

Значение по умолчанию: localhost.

vxcube_web_recaptcha_site_key

Ключ сайта, используется для включения reCAPTCHA.

Например:

vxcube_web_recaptcha_site_key: SITE_KEY //<ключ сайта>

Значения берутся при регистрации домена на https://www.google.com/recaptcha/admin.

vxcube_web_recaptcha_secret

Секретный ключ, используется для включения reCAPTCHA.

Например:

vxcube_web_recaptcha_secret: SECRET_KEY //<секретный ключ>

Значения берутся при регистрации домена на https://www.google.com/recaptcha/admin.

vxcube_web_check_exchange_min

Период проверки директории FTP-сервера в минутах.

Принимает диапазон значений от 1 до 60.

Например:

vxcube_web_check_exchange_min: "5"

vxcube_web_keep_free_space_percent

Если значение этой переменной меньше, чем объем свободного места на диске, то старые отчеты удаляться не будут. Значение в процентах.

Например:

vxcube_web_keep_free_space_percent: "30"

vxcube_web_keep_exchange_hours

Минимальное время хранения файлов при нехватке места на диске. Значение в часах.

Если переменная имеет значение 0,5, то созданные за последние 0,5 часа файлы не будут удаляться.

Например:

vxcube_web_keep_exchange_hours: "0,5"

vxcube_web_keep_reports

Минимальное время после создания отчета, после которого отчет считается старым и удаляется. Значение в минутах.

Например:

vxcube_web_keep_reports: "20m"

vxcube_web_reports_clean_period_min

Периодичность запуска задачи на удаление старых отчетов. Значение в минутах.

Например:

vxcube_web_reports_clean_period_min: "5"

vxcube_web_fail_free_space_percent

Свободное место на диске, при котором запущенные задачи будут завершаться с ошибкой. Значение в процентах.

Например:

vxcube_web_fail_free_space_percent: "5"

vxcube_web_local_max_body_size

Внутренняя переменная. Укажите для нее значение, равное значению переменной vxcube_web_max_body_size ниже.

vxcube_web_local_max_exec_time

Максимально допустимое значение параметра Время выполнения файла по умолчанию, указанное в секундах.

Например:

vxcube_web_local_max_exec_time: "3600"

vxcube_web_max_body_size

Максимальный размер файла, который можно отправить на анализ, в мегабайтах.

Например:

vxcube_web_max_body_size: "2001"

hyperbox_api_rq_username

Учетная запись для работы с RabbitMQ.

Например:

hyperbox_api_rq_username: "celery"

hyperbox_api_rq_password

Пароль для пользователя, указанного в hyperbox_api_rq_username.

По умолчанию генерируется случайный пароль в credentials/hyperbox_api_rq_password.

Например:

hyperbox_api_rq_password: "{{ lookup('password', 'credentials/hyperbox_api_rq_password length=10 chars=ascii_letters,digits') }}"

hyperbox_api_rq_vhost

Имя базы данных в RabbitMQ.

Например:

hyperbox_api_rq_vhost: "tasks"

hyperbox_api_rq_admin_pass

Пароль администратора для работы с пользователями и базой данных в RabbitMQ.

Например:

hyperbox_api_rq_admin_pass: "{{ lookup('password', 'credentials/hyperbox_api_rq_admin_pass length=10 chars=ascii_letters,digits') }}"

hyperbox_api_rq_plugins

Список плагинов RabbitMQ, которые будут установлены.

Например:

hyperbox_api_rq_plugins: ["rabbitmq_management"]

Переменная отключена по умолчанию.

hyperbox_key_path

Путь к лицензионному ключу.

Например:

hyperbox_key_path: "confs/vxcube.key"

Путь по умолчанию: confs/vxcube.key.

hyperbox_external_addr

Адрес для подключения к серверу с виртуальными машинами с помощью VNC.

Например:

hyperbox_external_addr: "{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}"

Переменная необходима для корректной работы VNC.

hyperbox_hbsetup

Используется для переклонирования виртуальных машин из OVA-образов.

Например:

hyperbox_hbsetup: "false"

Значение True используется при первоначальной установке и в случае внесения изменений в OVA-образы.

hyperbox_images_repo

Путь к OVA-образам виртуальных машин.

Например:

hyperbox_images_repo: "vm-images-win"

Значением переменной также может являться FTP-адрес в формате URI.

Например:

hyperbox_images_repo: "ftp://user:pass@host:port/path"

hyperbox_images

Список виртуальных машин и их характеристики. Все машины из списка должны быть доступны в репозитории образов, указанном в hyperbox_images_repo.

Например:

hyperbox_images:
 - vm_type: 6.1.7601.17514_x86
   code: Win7x86
   count: "{{ vxcube_os_count }}"
   memory: 1536
   clone_threads: "{{ vxcube_os_clone_threads }}"
   cores: 2
При этом cores — количество ядер, выделенных виртуальной машине.

hyperbox_force_clean_vms

Позволяет принудительно удалять все использованные виртуальные машины перед клонированием новых.

Значение по умолчанию: False.

vm_type

Тип виртуальной машины.

Например:

vm_type: 6.1.7601.17514_x86

code

Имя виртуальной машины.

Например:

code: Win7x86

count

Количество клонов ОС для каждой из виртуальных машин.

Например:

count: "{{ vxcube_os_count }}"

По умолчанию значение берется из переменной vxcube_os_count.

memory

Объем оперативной памяти, выделяемой для виртуальной машины при запуске.

Например:

memory: "1536"

clone_threads

Используемое число потоков при клонировании виртуальных машин во время установки.

Например:

clone_threads: "{{ vxcube_os_clone_threads }}"

По умолчанию значение берется из переменной vxcube_os_clone_threads.

openvpn_client_crt

Путь до сертификата сервера OpenVPN.

Например:

openvpn_client_crt: "{{ lookup('file', 'confs/openvpn.crt') }}"

Путь по умолчанию: confs/openvpn.crt

openvpn_client_key

Путь до закрытого ключа клиента сервера OpenVPN.

Например:

openvpn_client_key: "{{ lookup('file', 'confs/openvpn.key') }}"

Путь по умолчанию: confs/openvpn.key

openvpn_client_ca_crt

Путь до сертификата ключевого центра сертификации сервера OpenVPN.

Например:

openvpn_client_ca_crt: "{{ lookup('file', 'confs/openvpn_ca.crt') }}"

Путь по умолчанию: confs/openvpn_ca.crt

openvpn_client_tls_auth

Параметр tls-auth добавляет использование еще одной подписи HMAC к handshake-пакетам SSL/TLS, инициируя дополнительную проверку целостности.

Например:

openvpn_client_tls_auth: "{{ lookup('file', 'confs/openvpn_ta.crt', errors='ignore')|default(omit) }}"

openvpn_client_chiper

Используемый метод шифрования.

Например:

openvpn_client_chiper: "AES-128-CBC"

vxcube_optional_types_codes

Опциональные типы файлов, доступные для анализа.

Например:

vxcube_optional_types_codes: "moc"

Чтобы использовать переменную, необходимо установить ПО Microsoft Office в образах.

По умолчанию отключено.

drweb_srv_se_licence_key

Путь к лицензионному ключу.

Например:

drweb_srv_se_licence_key: "{{ lookup('file', 'confs/vxcube.key') }}"

Путь по умолчанию: confs/vxcube.key

vxcube_web_server_name

Доменное имя для доступа к веб-интерфейсу Dr.Web vxCube.

vxcube_storage

Путь к каталогу для виртуальных машин и временных файлов, созданных в процессе анализа.

Например:

vxcube_storage: "/var/lib/storage"

vxcube_configure_firewall

Индикатор необходимости выполнять настройку брандмауэра после завершения установки (true/false).

evparser_dwschecker_url

URL для доступа к сервису проверки ссылок. Доступно, если сервис подключен при покупке лицензии.

Например:

evparser_dwschecker_url: "http://hostname/?key=mykey&url={0}&info=1"

dimas_external_ip

Адрес для доступа к серверу с виртуальными машинами. Необходим для корректной работы VNC.

Например:

dimas_external_ip: "{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}"

dimas_vms_setup

Индикатор необходимости пересоздания виртуальных машин (true/false).

vxcube_force_clean_vms

Удаление файлов виртуальных машин.

dimas_images_repo

Путь к репозиторию с VDI-образами дисков виртуальных машин. Также можно указать FTP-адрес в формате URI.

Например:

dimas_images_repo: "ftp://user:pass@host:port/path"

dimas_tar_repo

Путь к репозиторию с vboxsdk. Также можно указать FTP-адрес в формате URI.

Например:

dimas_tar_repo: "ftp://user:pass@host:port/path"

dimas_images

Список виртуальных машин на базе Android и их характеристики.

Все виртуальные машины из списка должны находиться в репозитории образов, указанном в dimas_vdi_repo.

Например:

dimas_images:
  - vm_type: Android7.1
    code: Android7.1
    count: 3
    memory: 4072
    cores: 2
    clone_threads: 3

_vxcube_use_windows_workers: "{{ lookup('ini', 'Windows section=Settings file={{ hyperbox_key_path }}') | bool }}"

_vxcube_use_android_workers: "{{ lookup('ini', 'Android section=Settings file={{ hyperbox_key_path }}') | bool }}"

_vxcube_use_linux_workers: "{{ lookup('ini', 'Linux section=Settings file={{ hyperbox_key_path }}') | bool }}"

vxcube_web_expire_date: "{{ lookup('ini', 'Expires section=Key file={{ hyperbox_key_path }}') }}"

vxcube_web_activation_date: "{{ lookup('ini', 'Created section=Key file={{ hyperbox_key_path }}') }}"

Информация о лицензии.

zabbix_agent_required

Переменная zabbix_agent_required для опциональной установки Zabbix-агента, который позволяет вести активный мониторинг состояния компонентов vxCube.

Например:

       zabbix_agent_required: "true"
       zabbix_agent_server: 192.168.33.30
       zabbix_agent_serveractive: 192.168.33.30
       zabbix_version: 3.0

Переменные zabbix_agent_server и zabbix_agent_serveractive должны содержать IP-адрес или доменное имя сервера Zabbix Server.

Cам сервер Zabbix Server необходимо установить самостоятельно hyper link.

Параметр zabbix_version опционален. Если его не указывать, на хост будет установлена последняя доступная версия Zabbix. Если необходимо использовать более старую версию, укажите ее номер.

Например:

zabbix_version: 4.0, zabbix_version: 3.4 или zabbix_version: 2.2.

zabbix_agent_serveractive

Адреса серверов Zabbix для активных проверок.

vxcube_web_flask_workers

Число рабочих потоков веб-приложения.

Например:

vxcube_web_flask_workers: 5

vxcube_web_flask_timeout

Тайм-аут ответа от веб-приложения.

Например:

vxcube_web_flask_timeout: 300

linuxbox_vms_setup

Индикатор необходимости пересоздания виртуальных машин (true/false).

Например:

linuxbox_vms_setup: true

linuxbox_images_repo

Путь к репозиторию, где лежат VDI-образы виртуальных машин. В качестве значения переменной также может быть указан FTP-адрес в формате URI.

Например:

linuxbox_images_repo: "ftp://user:pass@host:port/path"

или

linuxbox_images_repo: "vm-images-linux"

linuxbox_images

Список виртуальных машин на базе Linux и их характеристики. Все эти виртуальные машины должны быть доступны в репозитории образов, указанном в linuxbox_vdi_repo.

Например:

linuxbox_images:
  - vm_type: intel64_astra_ce_2.12
   code: intel64_astra_ce_2.12
   count: 1

linuxbox_force_clean_vms

Позволяет принудительно удалять все использованные виртуальные машины перед клонированием новых.
Значение по умолчанию: False.