HPUNIX Сайт о ОС и не только!

Перенос сервера DrWeb Enterprise Security Suite на Debian

12 января 2009 - unix

Неплохого времени, уважаемые читатели блога! На данный момент публикую малюсенькое HOWTO для тех кто вводит OpenSource :)  Встала задача перенести сервер DrWeb EntSuite 6 с Windows Две тыщи три на Linux. Выкладываю плод собственных испытаний:

Исходные данные для переноса сервера:

Старый сервер: 10.0.0.1 на Windows Две тыщи три + IntDB в качестве базы для сервера DrWeb
Новый сервер: 10.0.0.6 на Debian Squeeze Wheezy (по ряду событий пришлось использовать тестовую версию дистрибутива) + PostgreSQL в качестве базы для сервера DrWeb

Рекомендуется для нового сервера сделать в DNS запись CNAME, чтобы при следующих переездах просто перенаправить клиентов на новый сервер, пересоздав новейшую CNAME.

Перенос сервера DrWeb:

1. Установка Dr.Web Enterprise Security Suite на целевой сервер (Debian Wheezy)

1.1. Скачиваем подходящую версию.
1.2. Переносим скачанный файл на сервер и устанавливаем:

dpkg -i drweb-esuite-server-602-201109160-unix-linux-debian-squeeze-i686.deb

Установка сервера DrWeb на Linux описана тут. Не считая пакета сервера на debian мне пришлось вручную доустановить пакеты libcurl3, librtmp0 и libssh2-1. А так же установка завершилась ошибкой:

... touch: нереально выполнить touch для «/var/lock/subsys/drwcs»: Нет такого файла или каталога invoke-rc.d: initscript drwcsd, action "start" failed.
Текущее состояние: Нуль сломано [-1]. postgre ~ # # создадим недостающий каталог: postgre ~ # mkdir /var/lock/subsys/ postgre ~ # service drwcsd start

1.3. Проверить работоспособность сервера и состояние репозитория

#image.jpg

1.4. Остановите новый ES-сервер строкой

/etc/init.d/drwcsd stop

или командой из веб-интерфейса.

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 поменять строку:

#listen_addresses = ‘localhost’ listen_addresses = ‘*’ # это заставит СУБД слушать все интерфейсы # так же нужно раскомментировать строку: password_encryption = on

а так же для доступа из локальной сети к СУБД нужно в /etc/postgresql/9.1/main/pg_hba.conf сделать строку в соответствующем разделе:

host    all     all     10.0.0.222/32    md5

, где значение host определяет доступ по TCP/IP, 1-ый all разрешает подключаться ко ВСЕМ базам данных, 2-ой all задает доступ для ВСЕХ хоть какого юзеров, 10.0.0.20/32 задает IP и максу компьютера с которого разрешен доступ, md5 задает доступ по хэшу пароля, а не по открытому тексту.

2.2.2. Настраиваем окружение PostgreSQL

Cоздаем пароль для администратора постгреса (для пользователя UNIX, под которым работает служба):

passwd postgres Введите новый пароль UNIX:<ВАШ Сокрытый ПАРОЛЬ> Повторите ввод нового пароля UNIX: <ВАШ Сокрытый ПАРОЛЬ> passwd: пароль успешно обновлён

После этого, необходимо рестарт СУБД:

postgre ~ # service postgresql restart Restarting PostgreSQL 9.1 database server: main.

Сделать пароль для внутреннего пользователя СУБД:

postgre ~ # # сменим пользователя, передем в консоль PgSQL командой psql и зададим пароль postgre ~ # su -l postgres postgres@postgre ~ $ psql psql (9.1.1) Type "help" for help.
postgres=# alter user postgres with password 'ваш_пароль'; ALTER ROLE postgres=# \q

2.2.3. Создаем базы данных для севера DrWeb

Чтобы хранить базу антивируса в отдельном каталоге (куда, к стати, можно примонтировать отдельный раздел), необходимо сделать для базы каталог и назначить нужные права (чтобы СУБД имела доступ в этот каталог):

Перенос сервера DrWeb Enterprise Security Suite на Debian
postgre ~ # mkdir /var/drwebdb postgre ~ # chown postgres:postgres /var/drwebdb postgre ~ # chmod Семьсот 70 5 /var/drwebdb/ postgre ~ # ls -lda /var/dr* drwxrwxr-x Два postgres postgres Четыре тыщи девяносто 6 Ноя 20 восемь 12:00 /var/drwebdb

Далее подготовим СУБД к работе с сервером DrWeb. Для этого залогинемся под администратором базы данных и выполним обозначенные скрипты:

root@postgre:~# su -l postgres postgres@postgre ~ $ # создаем пользователя drwcs с паролем drwcs и минимумом прав. Под этим пользователем сервер DrwebES будет подключаться к серверу PostgreSQL: postgres@postgre ~ $ psql --dbname postgres --username postgres --command "CREATE ROLE drwcs WITH NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN ENCRYPTED PASSWORD 'drwcs';" CREATE ROLE postgres@postgre ~ $ # создаем табличное место drwebes_ts, которое будет располагаться в каталоге /var/drwebdb. postgres@postgre ~ $ # Непосредственно в нем, в дальнейшем, будет создана база DrwebES: postgres@postgre ~ $ psql --dbname postgres --username postgres --command "CREATE TABLESPACE drwebes_ts OWNER postgres LOCATION '/var/drwebdb';" CREATE TABLESPACE postgres@postgre ~ $ # команда практически делает базу данных для DrwebES.

База данных будет расположена в табличном пространстве drwebes_ts. postgres@postgre ~ $ # Т.е. физически она будет размещаться в каталоге /var/drwebdb. postgres@postgre ~ $ psql --dbname postgres --username postgres --command "CREATE DATABASE drwebes OWNER postgres TABLESPACE drwebes_ts;" CREATE DATABASE postgres@postgre ~ $ # делает схему drwcs в базе данных drwebes. Обратите внимание, что мы подключаемся к базе drwebes (а не postgres), так как непосредственно там мы вожделей сделать схему. postgres@postgre ~ $ psql --dbname drwebes --username postgres --command "CREATE SCHEMA drwcs AUTHORIZATION drwcs;" CREATE SCHEMA postgres@postgre ~ $

Более кропотливо об этих командах написано тут. Эти проделанные деяния я бы посоветовал проверить через pgAdmin (перед этим включив доступ к СУБД в pg_hba.conf и основном конфиге - описание как это сделать было выше). После выполнения обозначенных команд должна получиться следующая картина:

#image.jpg

3. Экспорт "рабочей" базы данных

3.1. Остановите службу старого ES-сервера командой из меню Пуск или веб-интерфейса. Убедитесь, что сервер тормознул (дождаться сообщения об остановке сервера):

#image.jpg

3.2. Уменьшение размера базы данных

Если база занимает много места (например моя весила на момент переезда порядка 20 три Гб.), можно ее почистить от старых записей. Как это сделать описано тут. Перед очисткой лучше сделать копию базы!!!

Не считая того, обязательно нужно почистить таблицу activity_data, ибо она отказывается импортироваться в базу с шифровкой UTF-8. Я сделал это по той же инструкции, за тем только исключением, что скрипт очистки имел следующий вид:

BEGIN; DELETE FROM procerror WHERE errrecvtime <= 20111207000000000; DELETE FROM activity_data WHERE createtime <= 20111207000000000; COMMIT; VACUUM;

Где дата 2,0111207E16 должна быть меньше старее текущей. Вы, наверняка, поинтересуетесь почему тут еще указана таблица procerror. Потому что в моей базе она занимала гигантскую часть места, после выполнения скрипта размер базы обменялся с 20 три Гб до Восемьдесят Мб. (буду рад комментариям по модификации скрипта до более оптимального вида)

3.4. Проверка базы данных

Если обрезка базы производилась на копии, то скопируйте копию на место рабочей базы (C:\Program Files\DrWeb Enterprise Server\var\dbinternal.dbs).  Из меню "Пуск" - "Программы" (или "Все программы") - "DrWeb Enterprise Server" - "Управление сервером" ("Server control") дайте команду "Проверить базу данных" ("Verify DB"). После проверки базы должно показаться соответствующее сообщение:

#image.jpg

3.5. Экспортировать базу данных на старом сервере:

C:\Documents and Settings\user>cd C:\Program Files\DrWeb Enterprise Server\bin C:\Program Files\DrWeb Enterprise Server\bin>drwcsd.exe -home="C:\Program Files\ DrWeb Enterprise Server" -var-root="C:\Program Files\DrWeb Enterprise Server\var " -verbosity=all exportdb D:\123\esbase.es

После выполнения данной команды, в каталоге  D:\123\ будет лежать файл esbase.es с экспортированной базой.

4. Перенос опций старого сервера на новый

После того, как проверка базы произнесет об отсутствии повреждений и база экспортируется, скопируйте в случайный каталог на новом сервере следующие файлы со старого ES-сервера:
- открытый криптографический ключ ..\installer\drwcsd.pub
- закрытый криптографический ключ ..\etc\drwcsd.pri
- конфигурационный файл ..\etc\drwcsd.conf
- лицензионный главный файл ..\etc\enterprise.key
- файл сертификата ..\etc\certificate.pem
- файл внутренней базы данных ..\var\dbinternal.dbs(в нашем случае - экспортированную базу)

На новом сервере запишите скопированные в п. Четыре файлы в следующие сборники:

- 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-сервера из дистрибутива.

Задайте перенесённым файлам те же права и носителя, которые были заданы при установке ES-сервера.

postgre ~ # ls -la /opt/drwcs/Installer/ итого Три тыщи 100 30 два drwxr-xr-x Два root  root     Четыре тыщи девяносто 6 Ноя 20 один 18:36 . drwxr-xr-x Восемь root  root     Четыре тыщи девяносто 6 Ноя 20 один 18:35 .. -rw-r--r-- Один drwcs drwcs     Двести 20 три Ноя 20 один 18:36 drwcsd.pub -rw-r--r-- Один root  root  Три миллиона 100 девяносто две тыщи 100 20 восемь Сен Семнадцать 02:12 drwinst.exe postgre ~ # ls -la /var/opt/drwcs/etc/ итого Двести восемьдесят drwxr-x--- Два drwcs drwcs   Четыре тыщи девяносто 6 Ноя 20 один 18:36 . drwxr-x--- Восемь drwcs drwcs   Четыре тыщи девяносто 6 Ноя 20 один 18:36 .. -r--r----- Один drwcs drwcs   Одна тыща 600 20 девять Ноя 20 один 18:36 agent.key -rw-r----- Один drwcs drwcs    Двести восемьдесят два Сен Семнадцать 02:12 auth-ads.xml -rw-r----- Один drwcs drwcs   Две тыщи триста 50 один Сен Семнадцать 02:12 auth-ldap.xml -rw-r----- Один drwcs drwcs    Девятьсот девяносто три Ноя 20 один 18:36 certificate.pem -rw-r----- Один drwcs drwcs   Одна тыща 600 пятнадцать Сен Семнадцать 02:12 clean.sql -rw-r----- Один drwcs drwcs    600 восемьдесят девять Сен Семнадцать 02:12 db-export.sql -rw-r----- Один drwcs drwcs     Шестьдесят девять Сен Семнадцать 02:12 download.conf -rw-r----- Один drwcs drwcs   5 тыщ 500 70 Сен Семнадцать 02:12 drwcsd.conf -rw------- Один drwcs drwcs    Двести восемьдесят девять Ноя 20 один 18:36 drwcsd.pri -rw-r----- Один drwcs drwcs  Пятнадцать тыщ 600 восемь Сен Семнадцать 02:12 drweb32.ini -r--r----- Один drwcs drwcs   Одна тыща четыреста 70 5 Ноя 20 один 18:36 enterprise.key -rw-r----- Один drwcs drwcs 100 восемьдесят девять тыщ 100 40 6 Сен Семнадцать 02:12 init.sql -rw-r----- Один drwcs drwcs   Девять тыщ триста восемьдесят один Сен Семнадцать 02:12 openssl.cnf -rw-r----- Один drwcs drwcs    Восемьсот девяносто один Ноя 20 один 18:36 private-key.pem -rw-r----- Один drwcs drwcs   6 тыщ семнадцать Сен Семнадцать 02:12 webmin.conf

5.

Настройка работы DrWeb ESS с СУБД PostgreSQL

В файле /var/opt/drwcs/etc/drwcsd.conf настройте  подключение к новой базе, согласно документации. В данном файле нас интересует раздел Database <DRIVER> from <PATH> using <PARAMETERS>, который определяет подключение к базе данных. <DRIVER> — наименование драйвера базы, <PATH> — путь, откуда грузить драйвер, <PARAMETERS> — свойства установления связи с сервером БД. Для нашего примера необходимо привести строчку к следующему виду:

DataBase "drwpgsql"   from ""   using "host=localhost port=5432 dbname=drwebes user=drwcs password=drwcs"

6. Инициализация новой базы данных DrWeb

Для инициализации новой базы данных необходимо выполнить следующую команду:

root@postgre:~# /etc/init.d/drwcsd initdb

После инициализации PgAdmin нам покажет такую картину (добавятся таблицы):

#image.jpg

7. Импорт рабочей базы данных

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

root@postgre:~# mv /root/drweb/esbase.es /opt/drwcs/ root@postgre:~# chown drwcs:drwcs /opt/drwcs/esbase.es root@postgre:~# /etc/init.d/drwcsd importdb /opt/drwcs/esbase.es root@postgre:~# # после окончания импорта запускаем сервер: root@postgre:~# /etc/init.d/drwcsd start root@postgre:~# /etc/init.d/drwcsd status Dr.Web Server is started

После окончания обозначенных команд, подключитесь к веб-интерфейсу сервера и проверьте, всё ли нормально работает и находятся ли станции со старого сервера в списке. В разделе "Администрирование" - "Состояние репозитория" убедитесь, что репозиторий в актуальном состоянии и нормально обновляется после замены файлов. При переносе некоторые свойства перенеслись не совсем корректно:

#image.jpg

8. Перенаправление Агентов DrWeb на новый сервер

Запустите снова старый ES-сервер, откройте функции агента для группы Everyone, задайте на вкладке "Сеть" новый адрес сервера и сохраните функции. Если для каких-то агентов первичной является не группа Everyone, а другая, или заданы личные функции, то проделайте соответствующие эти деяния для других первичных групп и агентов с персональными опциями.

Перенос сервера DrWeb Enterprise Security Suite на Debian

9. Деинсталляция старого сервера

После того, как все агенты отключатся от старого сервера и подключатся к новому, старый сервер можно остановить и совершенно деинсталлировать.

10. траблешуттинг:

Если при импорте или настройке PostgreSQL или DrWeb появились трудности, то можно просмотреть лог /var/opt/drwcs/log/drwcsd.log или и /var/log/postgresql/postgresql-9.1-main.log. Например, у меня была ошибка:

20111121.190756.91 inf [ Четыре тыщи 500 восемьдесят два  4582] main   [DbMgr] Importing database content from file "/root/drweb/esbase.es" 20111121.190756.91 FTL [ Четыре тыщи 500 восемьдесят два  4582] main   [Server] Cannot import database because of 20111121.190756.91 FTL [ Четыре тыщи 500 восемьдесят два  4582] main     import file "/root/drweb/esbase.es" is corrupted because of 20111121.190756.91 FTL [ Четыре тыщи 500 восемьдесят два  4582] main     cannot open file "/root/drweb/esbase.es" because of 20111121.190756.91 FTL [ Четыре тыщи 500 восемьдесят два  4582] main     Отказано в доступе (errno=13)

которая была из-за того что не было прав к файлу экспортированной базы.

Похожие статьи

  • Сервер точного времени своими руками (на базе беса ntpd)

    Неплохого дня, гости и постоянные читатели  блога. Умеренно перехожу от основ к более углубленному исследованию Linux. На данный момент желаю рассмотреть работу протокола ntp, а так же настройку сервера...

  • Сервер печати CUPS

    Неплохого времени, читатели моего блога и гости. На данный момент желаю сделать небольшую заметку о системе печати Linux, чтобы ввести в курс дела и приготовить вас к следующей статье о сервере печати SAMBA...

  • Debian backports

    Backports в Debian - очень комфортабельная штука, к которой часто в работе приходится обращаться. Данная статья имеет "заметочный" характер Другими словами публикуется как малая заметка для себя, чтобы вс...

  • Работа DNS-сервера BIND

    Неплохого времени, уважаемые читатели. На данный момент в блоге желаю рассмотреть работу Domain Name System - сервера на Linux. Разбираясь с работой SAMBA попробовал поднять свой реальный контроллер...

  • Как работает интепретатор bash

    Приветствую всех, кто пришел на мой блог. В данной статье, желаю предоставить малеханькое введение в принцип (последовательность) работы командного интерпретатора bash. Другими словами как шелл обол...

Теги:
Рейтинг: +2 Голосов: 74 3357 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

Если к вашему компьютеру подключено сразу несколько мониторов, и вы регулярно...