Интеграция c инфраструктурой виртуальных рабочих мест

Dr.Web Enterprise Security Suite поддерживает интеграцию с инфраструктурой виртуальных рабочих мест (VDI). Такая возможность полезна при работе с тонкими клиентами, поддерживающими работу в терминальном режиме по протоколу RDP.

Работа антивирусной сети при этом организуется следующим образом:

1.Администратор антивирусной сети создает эталонный образ виртуальной станции с предустановленным ПО и Агентом Dr.Web, после чего подключает эталон к Серверу.

2.Из созданного эталона клонируются необходимые виртуальные станции.

3.По истечении заданного срока виртуальные станции удаляются. Впоследствии виртуальные станции создаются заново из эталонного образа по мере необходимости.

Чтобы подготовить антивирусную сеть к работе с VDI

1.Выберите пункт Антивирусная сеть в главном меню Центра управления и создайте новую станцию, которая будет служить эталонным образом.

2.Установите на созданную станцию Агент Dr.Web и все необходимое ПО. Подключите станцию к Серверу.

3.В том же разделе создайте новую группу, в которой будут размещаться виртуальные станции.

4.Настройте порядок регистрации виртуальных станций. Для этого в Центре управления перейдите в раздел Администрирование → Пользовательские процедуры. Добавьте новую процедуру на основе события Новичок подключается к Серверу. В поле Текст процедуры укажите:

local args = ... -- args.id, args.address, args.station

if args.id == '<идентификатор_эталонной_станции>' then

 return { "id", dwcore.get_uuid(), "pgroup", "<идентификатор_первичной_группы>" }

end

В качестве <идентификатора_эталонной_станции> необходимо указать ID эталонной станции, созданной на этапе 1. В качестве <идентификатора_первичной_группы> укажите ID группы, созданной на этапе 3. Данная информация всегда доступна в свойствах объектов в дереве Антивирусной сети.

При клонировании каждая новая виртуальная станция будет получать идентификатор, совпадающий с идентификатором эталонной станции. По условиям процедуры, при подключении станции к Серверу Dr.Web для нее генерируется новый UUID, после чего станция регистрируется в первичной группе с указанным идентификатором.

При написании процедуры рекомендуется сверяться со встроенным шаблоном процедуры Новичок подключается к Серверу. Для уточнения информации, в том числе возможных альтернативных параметров и возвращаемых значений, в Центре управления в дереве процедур выберите Examples of the hooks → Новички → Новичок подключается к Серверу.

Плановое удаление неактивных виртуальных станций

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

Для подготовки задания по автоматическому удалению неактивных станций

1.В Центре управления перейдите в раздел Администрирование → Планировщик заданий Сервера Dr.Web.

2.Создайте новое задание, нажав кнопку Создать задание на панели инструментов.

3.На вкладке Действие в выпадающем списке выберите Выполнение скрипта, после чего импортируйте из отдельного файла, либо введите вручную следующий Lua-скрипт в поле ниже:

local adminName = 'admin'

-- указываем ID группы

local gid       = '<идентификатор__первичной_группы>'

-- задаем период неактивности (в секундах)

local interval  = 86400

 

require('st-db-state')

require('core/datetime')

require('core/admins/admins')

local lastseen = Datetime.timeUnixstampToDBFormat(Datetime.nowTimestamp() - interval)

local stations = {}

-- выполняем запрос к базе данных

local res, err1 = DBuilder()

   :select('id, lastseenat')

   :from('stations')

   :where('gid', gid)

   :where('lastseenat '..dwcore.base64_decode('PA=='), lastseen)

   :where('state !=', st_db_state.st_db_state_logged_in)

   :get()

if res and next(res) then

 for i = 1, #res do

   table.insert(stations, res[i][1])

 end

end

-- удаляем неактивные станции

local function delete_stations(ids)

 local admin, err    = Admin:initWithLogin(adminName)

 require 'core/admins/admins'

 require('core/stations/stations')

 local status, results_stations = Stations:delete(ids, admin)

 return ''

end

return delete_stations(stations)

В качестве <идентификатора_первичной_группы> укажите ID группы, созданной на этапе 3 при подготовке к работе с VDI.

Данный скрипт обращается к базе данных, получает ID станций, не подключавшихся к Серверу в течение последних 24 часов (86400 секунд), и удаляет эти станции из группы с указанным ID.

Рекомендуется обновлять эталонный образ каждый раз после обновления антивирусных компонентов, требующего перезагрузки операционной системы. После обновления проверьте и при необходимости скорректируйте идентификатор эталонной станции в тексте процедуры.