Перенос сервера drweb enterprise suite на другой компьютер
Казалось бы, простая задача, но пришлось провозиться с ней практически весь день. Но обо всем по порядку.
Пару лет назад, когда в организации нас обязали использовать антивирус, исключительно сертифицированный ФСТЭК и ФСБ - выбор пал на Dr.Web (не буду вдаваться в подробности, почему именно он). В тот момент я впервые столкнулся с серверной его частью. Для проверки установил его себе на рабочий компьютер и попробовал настроить. Все прошло гладко и вопросов не возникло. Прошелся по всем 30-и рабочим станциям организации, установил им агентскую часть. Все подключились, и все работало отлично. После полной настройки возникла мысль перенести сервер, собственно на СЕРВЕР (как изначально и нужно было сделать), но представив, что на всех 30-и компьютерах нужно будет переустанавливать агентскую часть - такая мысль отпала. И на моём компе все работает прекрасно.
Прошло 2 года, и я решил на своём рабочем ПК переустановить систему. И вот тут вопрос о переносе сервера на СЕРВЕР снова стал актуальным. Думаю, проблема не нова, спрошу ка я Алису. И действительно, на сайте вышеупомянутого антивируса имеется подробная статья о том, как это делать. Но не тут-то было.
Первый же пункт ввел в заблуждение:
Путь, к какому файлу. А вопрос возник по одной простой причине: как бы я не прописывал путь к файлу и что бы я ни писал после exportdb - никаких резервных копий не создавалось.
Тут мне уже Алиса помочь никак не смога. И я долго не мог понять в чем дело. В итоге, плюнул я на этот пункт и двинулся дальше.
Сохраните содержимое директории C:\Program Files\DrWeb Enterprise Server\etc, а также ключ drwcsd.pub из C:\Program Files\DrWeb Enterprise Server\Installer.
Как выяснилось: папки "Installer", как самого файла " drwcsd.pub" у меня не оказалось. И тут я задался вопросом: "А ту ли я инструкцию читаю?" т.к. даже путь у меня был другой. Слово " Enterprise" в адресе отсутствовало.
Других инструкций я не нашел, поэтому сделал простой вывод: скорее всего инструкция была написана к очень старой версии. А после обновления версий - инструкцию никто не менял. (У меня версия сервера 13.00.0 (20-10-2021 03:00:00)) Т.е. придется все находить самому.
Методом проб и ошибок, а так же долгих "копаний" в интерфейсе, мне все таки удалось выполнить процедуру переноса и вот решил поделиться с вами инструкцией, дабы сэкономить время таким же, как я.
1. Первым пунктом нужно подумать о том, что подключенным рабочим станциям нужно будет беспрепятственно соединиться с новым сервером.
- Для этого заходим в интерфейс сервера , жмакаем на рабочую станцию и слева выбираем пункт "Параметры подключения".
- Тут нужно ввести два IP адреса вручную. Старого и нового сервера. В моем случае старый сервер находится по адресу 192.168.0.69, а новый 192.168.0.100.
Далее повторяем процедуру для каждой рабочей станции в сети. Желательно, чтоб станции были именно в сети. Так как в противном случае новая настройка на них не распространится.
* После ввода адресов не забываем нажать "Сохранить" в правом верхнем углу.
* После обновления адресов, на некоторое время станция отключится и станет серой, но спустя 1-5 минут снова позеленеет, информируя нас о том, что все в порядке.
2. Вторым пунктом нам нужно создать злосчастную резервную копию базу.
Как выяснилось тут все проще некуда. Оказалось резервная копия создается сама (автоматически) ежедневно (ночью) и находится в папке: "C:\DrWeb Backup" или "C:\DrWeb Backup\dbBackup". У меня они были и там и там. Почему так и не понял. Резервная копия имеет вид папки с файлами с именем в 17 цифр, где первые 8 это ГГГГММДД (остальное хз. )
* Если такой папки нет то, скорее всего у вас ночью сервер был выключен или по каким-то причинам не настроена задача в планировщике сервера. Включить ее не сложно:
- Заходим в Планировщик заданий Сервера Dr.Web на вкладке "Администрирование"
- Ставим галочки напротив пунктов "Backup repository" и "Backup sensitive data" и жмем кнопку "Выполнить задание")
После этого нужно подождать. Копия может создаваться минут 10. Наверное, зависит от кол-ва рабочих станций.
После этого нужно подождать. Копия может создаваться минут 10. Наверное, зависит от кол-ва рабочих станций.
3. Третьим пунктом перенесем архивную копию на сервер в заранее созданную, аналогичную папку: "C:\DrWeb Backup\dbBackup".
Тут думаю, подробно описывать процесс не требуется.
4. Останавливаем сервер Dr.Web на старой машине.
Это действие выполняется запуском соответствующей кнопки в меню "Пуск". Если не нашли, то в командной строке можно ввести это:
"C:\Program Files\DrWeb Server\bin\drwcsd.exe" elevate -verbosity=ALL -log="C:\Program Files\DrWeb Server\var\drwcsd.log" stop
5. Далее скачиваем "Цент управления".
6. Устанавливаем "Центр управления" на новой машине (сервере).
Вот тут в ходе установки нужно обязательно указать путь к резервной копии (хотя установщик скорее сам ее найдет), главное вначале установки не создавать новую базу, а выбрать пункт: "Использовать существующую базу":
Перенос Сервера Dr.Web Enterprise Server на другой компьютер (для ОС Windows ® )
Для переноса Сервера Dr.Web Enterprise Server (при установке аналогичной версии Dr.Web Enterprise Server) под ОС Windows:
1. Остановите службу Dr.Web Enterprise Server (см. п. Запуск и останов Dr.Web Enterprise Server ).
2. Запустите из командной строки файл drwcsd.exe с ключом exportdb для экспорта содержимого базы данных в файл. Полная командная строка для экспорта в версии под ОС Windows будет выглядеть примерно так:
"C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe" exportdb
3. Сохраните содержимое директории C:\Program Files\DrWeb Enterprise Server\etc , а также ключ drwcsd.pub из C:\Program Files\DrWeb Enterprise Server\Installer .
4. Удалите Сервер .
5. Установите новый Сервер (пустой, с новой базой) на нужном компьютере. Остановите службу Dr.Web Enterprise Server с помощью средств управления службами ОС Windows или с помощью Центра Управления .
6. Скопируйте содержимое сохраненного ранее каталога etc в C:\Program Files\DrWeb Enterprise Server\etc , а также ключ drwcsd.pub в C:\Program Files\DrWeb Enterprise Server\Installer .
7. Запустите из командной строки файл drwcsd.exe с ключом importdb для импорта содержимого базы данных из файла. Полная командная строка для импорта в версии под ОС Windows будет выглядеть примерно так:
"C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe" importdb
8. Запустите службу Dr.Web Enterprise Server (см. п. Запуск и останов Dr.Web Enterprise Server ).
При использовании внутренней базы данных можно не производить экспорт и импорт БД, а просто сохранить файл внутренней базы dbinternal.dbs и заменить новый файл БД на установленном Сервере старым файлом, сохраненным от предыдущего Сервера .
Для переноса Сервера Dr.Web Enterprise Server (при установке другой версии Dr.Web Enterprise Server) под ОС Windows:
1. Остановите службу Dr.Web Enterprise Server (см. п. Запуск и останов Dr.Web Enterprise Server ).
2. Сохраните базу данных средствами SQL сервера (если используется внутренняя БД, то просто сохраните файл dbinternal.dbs ).
3. Сохраните содержимое директории C:\Program Files\DrWeb Enterprise Server\etc , а также ключ drwcsd.pub из C:\Program Files\DrWeb Enterprise Server\Installer .
4. Удалите Сервер .
5. Установите новый Сервер (пустой, с новой базой) на нужном компьютере. Остановите службу Dr.Web Enterprise Server с помощью средств управления службами ОС Windows или с помощью Центра Управления .
6. Скопируйте содержимое сохраненного ранее каталога etc в C:\Program Files\DrWeb Enterprise Server\etc , а также ключ drwcsd.pub в C:\Program Files\DrWeb Enterprise Server\Installer .
7. Восстановите базу данных на новом Сервере , укажите в конфигурационном файле drwcsd.conf путь до базы данных.
8. Запустите из командной строки файл drwcsd.exe с ключом upgradedb для обновления базы данных. Полная командная строка для импорта в версии под ОС Windows будет выглядеть примерно так:
"C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe" upgradedb "C:\Program Files\DrWeb Enterprise Server\update-db"
9. Запустите службу Dr.Web Enterprise Server (см. п. Запуск и останов Dr.Web Enterprise Server ) .
В случае смены IP-адреса Сервера при переносе:
1. Осуществите перенос Сервера согласно соответствующей процедуре, описанной выше.
2. У всех Агентов , которых обслуживал переносимый Сервер , задайте в настройках адрес нового Сервера (см. п. Подключение Агента Dr.Web Enterprise Agent к другому Серверу Dr.Web Enterprise Server ).
3. Для возможности перехода Агентов , для которых адрес нового Сервера указывался через Центр Управления , а не в настройках самого Агента на станции, оставьте включенными оба Сервера (на обоих Серверах в настройках Агента должен быть указан адрес нового Сервера ) до тех пор, пока все Агенты не подключатся к старому Серверу для получения нового IP-адреса и не перейдут на новый Сервер .
Перенос Сервера Dr.Web на другой компьютер (для ОС Windows®)
При переносе Сервера на другой компьютер обратите внимание на настройки транспортных протоколов и, при необходимости, внесите соответствующие изменения в разделе Администрирование → Конфигурация Сервера Dr.Web , на вкладке Транспорт .
Процедура для запуска и останова Сервера Dr.Web описана в Руководстве администратора , в п. Запуск и останов Сервера Dr.Web .
Для переноса Сервера Dr.Web (при установке аналогичной версии Сервера Dr.Web) под ОС Windows:
1. Остановите службу Сервера Dr.Web.
2. Запустите из командной строки файл drwcsd.exe с ключом exportdb для экспорта содержимого базы данных в файл. Полная командная строка для экспорта в версии под ОС Windows будет выглядеть примерно так:
"C:\Program Files\DrWeb Server\bin\drwcsd.exe" exportdb
3. Сохраните содержимое директории C:\Program Files\DrWeb Server\etc , а также ключ drwcsd.pub из C:\Program Files\DrWeb Server\Installer .
4. Удалите Сервер.
5. Установите новый Сервер (пустой, с новой базой) на нужном компьютере. Остановите службу Сервера Dr.Web с помощью средств управления службами ОС Windows или с помощью Центра управления.
6. Скопируйте содержимое сохраненного ранее каталога etc в C:\Program Files\DrWeb Server\etc , а также ключ drwcsd.pub в C:\Program Files\DrWeb Server\Installer .
7. Запустите из командной строки файл drwcsd.exe с ключом importdb для импорта содержимого базы данных из файла. Полная командная строка для импорта в версии под ОС Windows будет выглядеть примерно так:
"C:\Program Files\DrWeb Server\bin\drwcsd.exe" importdb
8. Запустите службу Сервера Dr.Web.
При использовании встроенной базы данных можно не производить экспорт и импорт БД, а просто сохранить файл встроенной базы database.sqlite и заменить новый файл БД на установленном Сервере старым файлом, сохраненным от предыдущего Сервера.
Для переноса Сервера Dr.Web (при установке другой версии Сервера Dr.Web) под ОС Windows:
1. Остановите службу Сервера Dr.Web.
2. Сохраните базу данных средствами SQL сервера (если используется встроенная БД, то просто сохраните файл database.sqlite ).
3. Сохраните содержимое директории C:\Program Files\DrWeb Server\etc , а также ключ drwcsd.pub из C:\Program Files\DrWeb Server\Installer .
4. Удалите Сервер.
5. Установите новый Сервер (пустой, с новой базой) на нужном компьютере. Остановите службу Сервера Dr.Web с помощью средств управления службами ОС Windows или с помощью Центра управления.
6. Скопируйте содержимое сохраненного ранее каталога etc в C:\Program Files\DrWeb Server\etc , а также ключ drwcsd.pub в C:\Program Files\DrWeb Server\Installer .
7. Восстановите базу данных на новом Сервере, укажите в конфигурационном файле drwcsd.conf путь до базы данных.
8. Запустите из командной строки файл drwcsd.exe с ключом upgradedb для обновления базы данных. Полная командная строка для импорта в версии под ОС Windows будет выглядеть примерно так:
"C:\Program Files\DrWeb Server\bin\drwcsd.exe" upgradedb "C:\Program Files\DrWeb Server\update-db"
9. Запустите службу Сервера Dr.Web.
В случае смены имени или IP-адреса при переносе Сервера Dr.Web:
Для возможности перехода Агентов, для которых адрес нового Сервера задается через Центр управления, а не в настройках самого Агента на станции, оставьте включенными оба Сервера до момента завершения процедуры.
1. Осуществите перенос Сервера согласно соответствующей процедуре, описанной выше.
2. Для всех Агентов, которых обслуживал старый Сервер, задайте адрес нового Сервера согласно соответствующей процедуре из раздела Подключение Агента Dr.Web к другому Серверу Dr.Web .
Для Агентов, для которых адрес нового Сервера задавался через Центр управления, а не в настройках самого Агента на станции, на обоих Серверах в настройках Агента должен быть указан адрес нового Сервера.
3. Дождитесь, пока все Агенты перейдут на новый Сервер. После этого можете удалять старый Сервер.
Иногда возникает необходимость перенести работающий сервер DrWebES на другую физическую машину, например из-за выхода из строя оборудования или в результате реорганизации сетевой инфраструктуры (обновление парка техники и т.п.). В штатной документации на эту тему я специального раздела найти не смог. В результате совместных изысканий со службой поддержки был найден следующий алгоритм:
1. Остановить сервис Dr.Web Enterprise Server на старом сервере. 2. Скопировать (ВАЖНО - при остановленном сервисе) следующие файлы:
3. Установить сервер DrWebES на новый сервер со всеми настройками по умолчанию (при попытке импортировать drwcsd.pri почему-то инсталятор обозвал его "invalid private key file"). ВАЖНО: вновь устанавливаемый сервер должен быть либо той же версии, что и старый, либо более новой версии, иначе будет невозможно подключить базу данных. 4. Остановить на новом сервере сервис Dr.Web Enterprise Server. 5. Скопировать сохранённые файлы (см. п. 2) поверх новых (ВАЖНО - при остановленном сервисе). 6. Проверить работоспособность сервера. Если всё работает, дальнейшие действия не нужны.
После внесения изменений надо перезапустить на клиентских машинах агента DrWebES, либо дождаться перезагрузки клиентских компьютеров (по задумке авторов, агенты, видимо, должны были сами при обнаружении изменений в конфигурации рестартовать, по крайней мере службой поддержки было предложено "перезапустить службу агента или подождать некоторое время" но на практике, по прошествии двух суток, неперезапущенные машины так и не перешли на новый сервер).
В случае если на новом сервере стоит более новая версия DrWebES, может потребоваться произвести обновление базы данных до текущей версии (сервис при этом работать не будет, в файле %ES%\var\drwcsd.log появится запись типа "20061011.121813.14 FTL 001432/noname [DbMgr] Incompatible database version 49, expected 50"). В этом случае помогает процедура обновления базы данных (выполняется при остановленном сервисе), выполняемая примерно такой командой: "C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe" "-home=C:\Program Files\DrWeb Enterprise Server\." "-exe-root=C:\Program Files\DrWeb Enterprise Server\." "-var-root=C:\Program Files\DrWeb Enterprise Server\var\." -verbosity=ALL upgradedb "C:\Program Files\DrWeb Enterprise Server\var\update-db\." После обновления базы данных ошибка должна исчезнуть.
И вторая серьёзная проблема с которой можно столкнуться при переносе на другую машину - это когда на старом сервере были указаны конкретные сетевые интерфейсы на которых работает DrWebES. Эти данные могут храниться в конце файла %ES%\etc\drwcsd.conf. Например:
Исходные данные для переноса сервера:
Старый сервер: 10.0.0.1 на Windows 2003 + IntDB в качестве базы для сервера DrWeb
Новый сервер: 10.0.0.6 на Debian Squeeze Wheezy (по ряду причин пришлось использовать тестовую версию дистрибутива) + PostgreSQL в качестве базы для сервера DrWeb
6. Инициализация новой базы данных DrWeb
Для инициализации новой базы данных необходимо выполнить следующую команду:
После инициализации PgAdmin нам покажет такую картину (добавятся таблицы):
3. Экспорт "рабочей" базы данных
3.2. Уменьшение размера базы данных
Если база занимает много места (например моя весила на момент переезда порядка 23 Гб.), можно ее почистить от старых записей. Как это сделать описано тут . Перед очисткой желательно сделать копию базы. Кроме того, обязательно нужно почистить таблицу activity_data, ибо она отказывается импортироваться в базу с кодировкой UTF-8. Я сделал это по той же инструкции, за тем лишь исключением, что скрипт очистки имел следующий вид:
Где дата 20111207000000000 должна быть меньше старее текущей. Вы, наверно, поинтересуетесь почему тут еще указана таблица procerror. Потому что в моей базе она занимала большую часть места, после выполнения скрипта размер базы изменился с 23 Гб до 80 Мб. (буду рад комментариям по модификации скрипта до более оптимального вида)
3.4. Проверка базы данных
3.5. Экспортировать базу данных на старом сервере:
После выполнения данной команды, в каталоге D:\123\ будет лежать файл esbase.es с экспортированной базой.
9. Деинсталляция старого сервера
После того, как все агенты отключатся от старого сервера и подключатся к новому, старый сервер можно остановить и окончательно деинсталлировать.
5. Настройка работы DrWeb ESS с СУБД PostgreSQL
В файле /var/opt/drwcs/etc/drwcsd.conf настройте подключение к новой базе, согласно документации . В данном файле нас интересует раздел Database from using , который определяет подключение к базе данных. — наименование драйвера базы, — путь, откуда грузить драйвер, — параметры установления связи с сервером БД. Для нашего примера необходимо привести строчку к следующему виду:
Перенос сервера DrWeb:
10. траблешуттинг:
Если при импорте или настройке PostgreSQL или DrWeb возникли проблемы, то можно просмотреть лог /var/opt/drwcs/log/drwcsd.log или и /var/log/postgresql/postgresql-9.1-main.log. Например, у меня была ошибка:
8. Перенаправление Агентов DrWeb на новый сервер
Запустите снова старый ES-сервер, откройте настройки агента для группы Everyone, задайте на вкладке "Сеть" новый адрес сервера и сохраните настройки. Если для каких-то агентов первичной является не группа Everyone, а другая, или заданы персональные настройки, то проделайте соответствующие эти действия для других первичных групп и агентов с персональными настройками.
2. Установка PostgreSQL на Debian
2.1. Устанавливаем пакет postgresql-9.1
В Debian squeeze данный пакет можно установить из бэкпортов . После установки пакетов постгреса произойдет запуск службы СУБД. В процессе первого запуска СУБД скрипт выполнил команду inidb, которая создаст все необходимое и в том числе конфигурационные файлы в папке /var/lib/pgsql. Будут инициализированы все основные настройки и встроенные базы данных.
2.2. Настраиваем PostgreSQL
2.2.1. Разрешаем доступ к СУБД из сети
По умолчанию, постгрес слушает только локалхост, чтобы заставить его слушать внешний интерфейс (если вам это действительно нужно), нужно на время установки в /etc/postgresql/9.1/main/postgresql.conf изменить строку:
а так же для доступа из локальной сети к СУБД нужно в /etc/postgresql/9.1/main/pg_hba.conf создать строку в соответствующем разделе:
, где значение host определяет доступ по TCP/IP, первый all разрешает подключаться ко ВСЕМ базам данных, второй all задает доступ для ВСЕХ любого пользователей, 10.0.0.20/32 задает IP и максу компьютера с которого разрешен доступ, md5 задает доступ по хэшу пароля, а не по открытому тексту.
2.2.2. Настраиваем окружение PostgreSQL
Cоздаем пароль для администратора постгреса (для пользователя UNIX, под которым работает служба):
После этого, необходимо рестарт СУБД:
Создать пароль для внутреннего пользователя СУБД:
2.2.3. Создаем базы данных для севера DrWeb
Чтобы хранить базу антивируса в отдельном каталоге (куда, к стати, можно примонтировать отдельный раздел), необходимо создать для базы каталог и назначить необходимые права (чтобы СУБД имела доступ в этот каталог):
Далее подготовим СУБД к работе с сервером DrWeb. Для этого залогинемся под администратором базы данных и выполним указанные скрипты:
Более подробно об этих командах написано тут. Эти проделанные действия я бы посоветовал проверить через pgAdmin (перед этим включив доступ к СУБД в pg_hba.conf и основном конфиге - описание как это сделать было выше). После выполнения указанных команд должна получиться следующая картина:
1. Установка Dr.Web Enterprise Security Suite на целевой сервер (Debian Wheezy)
1.1. Скачиваем необходимую версию .
1.2. Переносим скачанный файл на сервер и устанавливаем:
Установка сервера DrWeb на Linux описана тут . Кроме пакета сервера на debian мне пришлось вручную доустановить пакеты libcurl3, librtmp0 и libssh2-1. А так же установка завершилась ошибкой:
1.3. Проверить работоспособность сервера и состояние репозитория
1.4. Остановите новый ES-сервер строкой
или командой из веб-интерфейса.
4. Перенос настроек старого сервера на новый
После того, как проверка базы сообщит об отсутствии повреждений и база экспортируется, скопируйте в произвольный каталог на новом сервере следующие файлы со старого ES-сервера:
- открытый криптографический ключ ..\installer\drwcsd.pub
- закрытый криптографический ключ ..\etc\drwcsd.pri
- конфигурационный файл ..\etc\drwcsd.conf
- лицензионный ключевой файл ..\etc\enterprise.key
- файл сертификата ..\etc\certificate.pem
- файл внутренней базы данных ..\var\dbinternal.dbs(в нашем случае - экспортированную базу)
На новом сервере запишите скопированные в п. 4 файлы в следующие каталоги:
- drwcsd.pub в /opt/drwcs/Installer/
- dbinternal.dbs (esbase.es) в /var/opt/drwcs/
- certificate.pem, drwcsd.pri, drwcsd.conf и enterprise.key в /var/opt/drwcs/etc
заменив одноимённые файлы, созданные при установке ES-сервера из дистрибутива.
7. Импорт рабочей базы данных
Перед импортом файлу базы данных необходимо задать права и владельца - drwcs
После завершения указанных команд, подключитесь к веб-интерфейсу сервера и проверьте, всё ли нормально работает и присутствуют ли станции со старого сервера в списке. В разделе "Администрирование" - "Состояние репозитория" убедитесь, что репозиторий в актуальном состоянии и нормально обновляется после замены файлов. При переносе некоторые параметры перенеслись не совсем корректно:
Читайте также: