Доктор Веб, от классического к современному

Настройка зеркала обновлений Dr.Web: проверенные шаманства

Когда в хозяйстве, где вас поставили админом, зоопарк операционных систем и установленных версий Dr.Web, когда безопасники хотят странного, а выход в интернет контролирует надёжный отечественный фаерволл фирмы Air Gap, настройка регулярных обновлений вирусных баз превращается в шаманство. Представляю свою подборку проверенных заклинаний.

Итак, современный Доктор умеет обновляться минимум четырьмя способами:

  • из интернета, если он есть;
  • от соседей по локальной сети, если хоть у одного из них есть свежие базы – это функция «Антивирусная сеть»;
  • из сетевой или локальной папки, «зеркала»;
  • через развёрнутый в организации «Центр Управления Dr.Web Enterprise Security Suite» – самый продвинутый способ.

Конечно, если это возможно, стоит завести себе Центр Управления (esuite, ESS), это бесплатно. Через него можно централизованно настраивать станции, собирать с них статистику сканирования, получать мгновенные уведомления на почту, когда кто‐то из сотрудников притащил вирусняк, ну и раздавать обновления и свежие ключи. Беда только в том, что центру для нормальной работы желателен интернет, ведь надо где‐то брать базы. И хотя его можно поместить за фаерволл, NAT, и кроме того существует даже специальный прокси‐сервер DrWeb для связи ESS с другими сетями, т.е. решение максимально гибкое, но… Ниточка от рабочей станции к интернету, пусть и длинная, всё равно будет, и во многих организациях это неприемлемо. А если интернета нет, базы этому центру придётся носить флешкой от другого «центра».

Работу с центром управления разберём в следующий раз, а в этой заметке ограничимся созданием зеркал.

Зеркало обновлений для Dr.Web 12 (современного)

Сервер

«Сервером» для создания зеркала может выступать рядовая станция с установленным Dr.Web и доступом в интернет. Достаточно в настройках включить опцию копирования файлов баз в папку и не заморачиваться. Однако если у нас настоящий сервер, ставить туда Доктора только для получения баз – несколько избыточно.

Вместо этого возьмите с компьютера, где установлен Dr.Web, три файла:

  • Обновлятор drwupsrv.exe, лежит в C:\Program Files\Common Files\Doctor Web\Updater
  • Файл зон drwzones.xml из C:\ProgramData\Doctor Web\Updater\etc
  • Лицензионный ключ

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

drwupsrv.exe -c download -r "D:\DrWebUpdMirror\v12\bases" -p av-for-windows -s 90 --zones=drwzones.xml -l --log-dir="D:\DrWebUpdMirror\v12"

Здесь:

  • -c – команда: скачать (download) или установить (update) базы,
  • -r – куда качать,
  • -p – для какого продукта нужны базы:
    • av-for-windows – Антивирус Dr.Web,
    • drweb-security-space – Dr.Web Security Space,
  • -s – версия баз («ревизия»), которая начиная с девятого доктора зафиксирована на "90"
  • -l – выводить в консоли что происходит,
  • --log-dir= – папка, куда писать накопительный лог. Понадобится, если когда всё вдруг сломается. В 12‑й версии добавили возможность ротации, но убрали опцию выбора имени --log-file=dwupdater.log – с этим параметром обновлятор запускаться откажется.
  • параметр --key-dir может быть полезен, если ключ лежит отдельно от обновлятора.

Полный список параметров традиционно доступен по drwupsrv.exe -h (от имени администратора, если не работает) и в справке .

Для автоматической закачки по расписанию добавьте задание в системный планировщик. Запускать задание следует от имени системной учётной записи NT AUTHORITY\SYSTEM. Проверьте, чтобы рабочая папка в задании была задана без кавычек.

Независимо от разрядности drwupsrv в зеркало загружаются оба набора, для 32‐ и 64‐битных систем.

Клиент

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

drwupsrv.exe -c update -l --log-dir="c:\temp"  --zone="file://\\192.168.1.2\DrWebUpdMirror_v12"

Смысл параметров такой же, как и раньше. Единственный нюанс, путь к зеркалу задаётся ключом -zone, а не --repo-dir, как может показаться интуитивно. Все прочие параметры, которые вы могли встречать в других руководствах, типа -xno или --type=update-revision, – избыточны.

Чтобы распространить настройки на парк машин, пропишите задачу автоматического обновления в планировщике, предварительно удалив оттуда задачи, созданные самим доктором. В домене это удобно сделать через групповые политики. Проверьте, чтобы рабочая папка в задании была задана без кавычек. Запускать задание следует от имени системной учётной записи NT AUTHORITY\SYSTEM.

Зеркало обновлений для Dr.Web версии 6 (старого)

Но зачем, мистер Андерсен? А главное, нахрена?!

Вот так с помощью нехитрых приспособлений можно обезопасить свой сервер под Windows NT 4.0 server

Классический шестой Доктор Кто до сих пор встречается на всяких терминалах с P‑IV inside, застрявших в эпохе WinXP. Ну а пятый Доктор установится даже на ваш Win NT4.0 Server, и к этому динозаврику до сих пор (!) выходят свежие базы. Так выглядит настоящий Long‐term support.

Сервер

Вытащите из папки с установленным Dr.Web три файла:

  • drwebupw.exe (обновлятор)
  • ru-drweb.dwl (список серверов, куда подключаться)
  • agent.key (действующий ключ, имя любое)

Запускать так:

  "D:\DrWebUpdMirror\DrWebUpW.exe" /GO /UA /st /DIR:D:\DrWebUpdMirror\bases /rp+D:\DrWebUpdMirror\drwebupw.log /LNG:ru-drweb.dwl
  • /GO – запустить обновление немедленно;
  • /UA – сделать полное зеркало (Update All files);
  • /DIR:"D:\DrWebUpdMirror\bases" – папка, в которой будет создаваться или обновляться зеркало;
  • /LNG:ru-drweb.dwl – выдавать все сообщения на русском языке.
  • /st – не отображать окон
  • /rp+ – накопительный лог. Понадобится, если когда всё вдруг сломается.

Для автоматической закачки по расписанию добавьте задание в системный планировщик. Запускать задание следует от имени системной учётной записи.

Клиент

Клиента для обновления из указанной папки запускать так:

"C:\Program Files (x86)\DrWeb\DrWebUpW.exe" /go /st /qu /reg- /URL:D:\DrWebUpdMirror\bases /rp+drwebupw.log

Можно прописать сервер обновлений в реестре:

  HKEY_LOCAL_MACHINE\SOFTWARE\IDAVLab\DrWebUpdate\Settings\UpdateUrl

Чтобы распространить настройки на парк машин, пропишите задачу автоматического обновления в планировщике, предварительно удалив оттуда задачи, созданные самим доктором. Проверьте, чтобы рабочая папка в задании была задана без кавычек. Запускать задание следует от имени системной учётной записи.

А для Linux?

В принципе, всё написанное выше прекрасно работает под Wine, например, 1.8.

Содержимое скрипта ()

#!/bin/bash
cd /home/alex/.wine/drive_c/drweb/v12/
echo `date` >> last.log
wine drwupsrv.exe -c download -r "C:/drweb/v12/bases" -p av-for-windows -s 90 --zones=drwzones.xml -l --log-dir="C:/drweb/v12" --log-file=dwupdater.log > wine.log 2>&1
при ошибках дописать --verbosity=debug

или

#!/bin/bash

cd /home/alex/.wine/drive_c/drweb/v6x64/ echo date » last.log export DISPLAY=:99 if ! xset q &>/dev/null; then Xvfb ‑shmem ‑screen 0 800x600x16 :99& fi wine drwebupw.exe /GO /UA /ST /QU /DIR:C:\drweb\v6x64\bases /rp+C:\drweb\v6x64\drwebupw.log /LNG:ru-drweb.dwl > wine.log 2>&1

  • копирование баз просто копирование sh

Для шестой версии чуть сложнее, ей нужен экран (X), установить xvfb. Скрипт:

#!/bin/bash 
cd /home/alex/.wine/drive_c/drweb/v6x32/
echo `date` >> last.log
export DISPLAY=:99
if ! xset q &>/dev/null; then
    Xvfb -shmem -screen 0 800x600x16 :99&
fi
wine drwebupw.exe /GO /UA /ST /QU /DIR:C:\\drweb\\v6x32\\bases /rp\+C:\\drweb\\v6x32\\drwebupw.log /LNG:ru-drweb.dwl > wine.log 2>&1

Запускать можно из /etc/crontab, например, в ночь по воскресеньям и средам в 20:05…06:05

5 20 * * sat,tue    alex    timeout 7200 /home/alex/.wine/drive_c/drweb/v6x32/update_now.sh 1>/dev/null 2>&1
5 22 * * sat,tue    alex    timeout 7200 /home/alex/.wine/drive_c/drweb/v6x64/update_now.sh 1>/dev/null 2>&1
5  0 * * sun,wed    alex    timeout 7200 /home/alex/.wine/drive_c/drweb/v9/update_now.sh 1>/dev/null 2>&1
5  2 * * sun,wed    alex    timeout 7200 /home/alex/.wine/drive_c/drweb/v11_av/update_now.sh 1>/dev/null 2>&1
5  4 * * sun,wed    alex    timeout 7200 /home/alex/.wine/drive_c/drweb/v11_ss/update_now.sh 1>/dev/null 2>&1
5  6 * * sun,wed    alex    killall -INT Xvfb 1>/dev/null 2>&1

# sun mon tue wed thu fri sat 
# jan feb mar apr may jun jul aug sep oct nov dec

Другой линукс‐сервер может тянуть базы просто копированием:

cd /tmp/ > last.log 2>&1
echo `date` >> last.log 2>&1
smbget --recursive --nonprompt --update --guest --quiet smb://157.157.1.1/ >> last.log 2>&1
echo "Done." >> last.log 2>&1

Проблемы совместимости

Интересная особенность Докторов начиная с девятого – одинаковый номер версии баз, «90″ . Здесь можно увидеть намёк на совместимость, но её нет. Доктор не откажется зашвырнуться базами из чужого зеркала, но после перезагрузки ему резко поплохеет. В большинстве случаев он просто не запустится, и хорошо, если получится удалить его ремувером. Галочка «обновлять только базы» уменьшит процент внезапно вышедших из строя машин, но, по‐хорошему, заведите отдельные зеркала для каждой из используемых на предприятии версий.

  • Не пытайтесь с помощью зеркала обновить версию Доктора до следующей мажорной, например, с 11.0 до 11.5. Корректно сделать это можно только переустановкой либо с помощью центра управления. Зеркалом можно обновлять базы и компоненты только в пределах версии.

  • Всегда используйте обновлятор той же версии, что и базы, которые он качает. Обновлятор 11.0 не сможет загружать обновления для 11.5.

  • Если обновлятор перестал качать базы, замените его на свежий, который прилетел с обновлениями.

  • Устанавливая Dr.Web используйте только свежие дистрибутивы с сайта, желательно сегодняшние. Свежие базы и старый доктор могут не подружиться.

Что значит, мажорная версия, и где проходит граница совместимости? Найдите у себя файлик drwzones.xml. Он определяет, что и откуда загружается:

<zones>

  <geo-update path="/xmlzone/release/1100/windows">
      <server name="geo drweb update" address="update.geo.drweb.com"/>
  </geo-update>

  <path value="/xmlzone/release/1100/windows"/>
  <protocol value="http"/>

  <zone name="zone1" address="update.drweb.com"/>
</zones>

Число 1100 – и есть номер версии. Зеркало обновляет базы и компоненты только в пределах этой версии. Если цифра отличается, нужно делать разные зеркала.

Неожиданно, у продуктов Антивирус Dr.Web и Dr.Web Security Space этот файл одинаковый. Совместимы ли их базы? Конечно нет)

Такая ситуация подталкивает к очевидно логичному решению: на предприятии должна использоваться единая версия Доктора. Волюнтаризм и инакомыслие следует пресекать административно‐техническими методами. И по возможности поднимать esuite.

Начнём с чего‐то лайтового – зеркала под Windows. Инструкций на эту тему много, но здесь нас подстерегает…

Ошибка: null credentials

Пустые данные о полномочиях, в доступе отказано. Проблема существует для всех версий Доктора. Клиент, тянущий обновления из зеркала по SMB, запускается под системной учётной записью и не передаёт имени пользователя. Поэтому сервер‐зеркало должен предоставлять доступ к папке bases анонимным пользователям.

Решается через политики или в реестре, в ключе:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\NullSessionShares

Пропишите в столбик названия шар, например, bases. Если не работает, убедитесь, что тут ноль:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous

Кроме того, дайте доступ на папку и все файлы внутри группам пользователей «АНОНИМНЫЙ ВХОД» и «Все» (регистр важен). Это делается в двух местах:

  • Свойства папки -> Доступ -> Расширенная настройка общего доступа – раз,
  • Свойства папки -> Безопасность – два.

Под Linux samba достаточно включитьguest ok:

[global]

security = share
browseable = yes
read only = yes
guest ok = yes
map to guest = Bad User
usershare allow guests = yes

[drweb_av]
path = /....../bases/

Убедитесь, что в папке лежит рабочий ключ.

Hava a nice day and good luck.

«специально обученная флешка с ножками»

Настройка esuite выходит за рамки статьи. Ограничимся зеркалами. Процесс документирован Процесс создания

https://support.drweb.ru/show_faq/?question=4664&lng=ru

https://download.geo.drweb.com/pub/drweb/windows/workstation/12.0/documentation/html/ss/ru/index.html?appendixa_commandparams_update.html

Вот и всё. Если не работает, перечитайте ещё раз вдумчиво, должно помочь.

time%20travelling%20detected
Пасхалка detected