Виртуализация сервера приложений 1С с аппаратным ключом
Продукты компании 1С прочно вошли в жизнь большинства современных российских компаний, и используются практически во всех областях коммерческой деятельности. Многие компании используют типовые продукты компании 1С, для автоматизации бухгалтерского учета, кадрового учета, товарного учета и других областей.
Многие знают, что для работы сервера приложений 1С необходим аппаратный HASP-ключ, выпускаемый в формате LPT-переходника или USB-донгла. В отношении виртуализации у компании 1С мнение весьма специфичное – раньше представители компании заявляли о невозможности работы сервера в виртуальной среде, а теперь предлагают приобрести программный ключ защиты вместе с новым комплектом ПО за 40000р.
Данный подход не кажется сильно лояльным, однако при более детальном рассмотрении проблемы, удалось найти более экономичное и удобное решение.
В рамках статьи, в качестве платформы виртуализации, мы будем рассматривать гипервизор Microsoft Hyper-V Server 2008 R2. Выбор, в основном, обусловлен функциональными возможностями, которые представляет гипервизор в своем «бесплатном» исполнении. В частности – поддержка кластеризации с «живой миграцией» виртуальных машин между узлами.
К сожалению, в Hyper-V не реализовано полноценного механизма подключения USB-устройств к виртуальным машинам. Это создает некоторый дискомфорт, в случае необходимости подключения к виртуальному серверу дополнительных внешних устройств, в том числе аппаратных ключей. В процессе виртуализации (P2V) физического сервера, вообще отрезаются все упоминания о шине USB и устройствах, подключенных к ней.
У основных конкурентов — VMWare и Citrix, существуют рабочие механизмы для перенаправления устройств на шине PCI с bare-metal гипервизоров на виртуальные машины. С помощью этого же механизма, можно перенаправлять на виртуальную машину и USB-устройства.
Сам факт проброса USB-устройств непосредственно из гипервизора сводит к нолю преимущества, получаемые от использования кластера Hyper-V с его функционалом «живой миграции». При перемещении виртуальной машины с одного гипервизора на другой, необходимо будет каждый раз перетыкать ключ и заново настраивать переадресацию. Становится понятно, что нам необходимо более гибкое решение.
В данном случае, нам на помощь придет отличная программа USB-Redirector, осуществляющая проброс любого USB-устройства по локальной сети с одного сервера на другой. Стоимость самой скромной Windows-редакции данной утилиты — 65 евро, а для осуществления задуманного больше и не надо. Существует большое количество, как аппаратных, так и программных реализаций данной технологии от самых разнообразных разработчиков. Однако в рамках статьи мы рассмотрим именно программу от Incentives Pro, как наиболее экономичное решение рассматриваемой задачи.
Программа работает как клиент-серверное решение, где сервер предоставляет доступ к одному или нескольким USB-девайсам, а клиент подключает их как собственные локальные устройства. В качестве клиентского приложения можно использовать бесплатный USB Redirector Lite или полнофункциональный USB Redirector. В качестве USB-сервера можно использовать любой компьютер, под управлением ОС Windows или Linux. Стоит отметить, что версии для Linux полностью бесплатны и обеспечивают полную кроссплатформенную совместимость с платными Windows-решениями.
После установки серверной части, мы должны выбрать в консоли программы те устройства, к которым необходимо предоставить доступ по сети. Для проброса устройства по сети, серверу USB Redirector не требуется даже драйвера для устройства, он понадобится только на сервере 1С с клиентским приложением.
При использовании технологии Live Migration в кластере Hyper-V, виртуальная машина перемещается между узлами кластера, не прерывая сетевых соединений. Так как промежуток времени, когда виртуальная машина не доступна по сети, пренебрежимо мал, пользователи не испытывают дискомфорта в работе с сервером приложений 1С.
Для корректной работы вышеописанной схемы, необходимо разрешить на обоих серверах доступ по порту 32032 для USB Redirector Service. Сама программа не создает правила для встроенного брандмауэра, так что их придется настраивать вручную.
На видео представлена процедура настройки клиентского и серверного приложений.
После удачного дистанционного подключения нашего HASP-ключа, в диспетчере устройств появятся виртуальные USB-девайсы, драйвера на которые уже должны стоять на сервере. В случае использования LPT-ключа, можно воспользоваться переходником LPT-to-USB, китайские реализации которого можно с легкостью найти в розницу.
Андрей Ивашенцев
Виртуализация сервера приложений 1С с аппаратным ключом : 4 комментария
1С перестает видеть ключ через пару часов работы. Манипуляции с перетыканием ключей и перезапуском служб Редиректора через какое-то время помогают и сервер снова начинает раздавать лицензии. Косяк! При этом менеджер лицензий видит ключ — скорее всего проблема не в редиректоре.
похоже что у вас надо запретить автоотключение питания USB по истечению таймаута, измените настройки в схеме энергоснабжения
похоже что у вас надо запретить автоотключение питания USB по истечению таймаута, измените настройки в схеме энергоснабжения
1С перестает видеть ключ через пару часов работы. Манипуляции с перетыканием ключей и перезапуском служб Редиректора через какое-то время помогают и сервер снова начинает раздавать лицензии. Косяк! При этом менеджер лицензий видит ключ — скорее всего проблема не в редиректоре.
Подключение аппаратного USB-ключа лицензии 1С на удаленный сервер
Clean-all выполняется всего один раз, эта команда стирает папку с ключами и сертификатами и/или создаёт заново необходимые для генерации файлы. Поэтому нужно быть крайне внимательным к этой команде.
Следующий этап создание – Root CA:
За основу можно взять C:\Program Files\OpenVPN\sample-config\server.ovpn и отредактировать как необходимо.
Должно получится так:
- Вводим команду build-key-pkcs12 <имя_сертификата> и отвечаем на вопросы — Y(да).
- В строке Common Name; Name указываем <имя_сертификата>.
Созданные сертификаты и ключи к ним лежат в папке keys:
Создаем конфигурационный файл openvpn-клиента. За основу можно взять C:\Program Files\OpenVPN\sample-config\client.ovpn и отредактировать как необходимо вам
Должно получится так :
Соединение с сервером установлено. Если возникли проблемы откройте файл лога для просмотра проблемы.
Узнаем IP-адрес сервера и клиента внутри сети openvpn (cmd->ipconfig или в параметрах сетевого адаптера).
-
Скачиваем ПО — USB over Network
Серверная версия устанавливается там, где установлен аппаратный ключ (в нашем случае пк пользователя).
Клиентская версия устанавливается там, где требуется наличие ключа (в нашем случае удаленный сервер).
- Устанавливаем, запускаем.
- Устанавливаем наш USB-ключ.
- Нажимаем на нужный ключ — Connect.
- Устанавливаем драйверы для ключа.
- Устанавливаем клиентскую версию USB over Network. Запускаем. Нажимаем add server.
- Нажимаем на нужный ключ — Connect.
- Вводим IP-адрес ПК внутри openvpn-туннеля, где установлен аппаратный ключ. Порт оставляем по-умолчанию.
- При появлении нужного нам USB-ключа — нажимаем Connect.
Наш аппаратный USB-ключ подключен и виден на сервере.
- Открываем консоль СЛК (в нашем случае СЛК 3.0).
- В браузере вводим localhost:9099
Подробная настройка СЛК присутствует в поставке конфигурации, либо на сайте «Центр лицензирования СЛК».
PROИТ
Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.
1С. Получение лицензий с другого сервера. Подключение к серверу лицензирования
Дано: сервер, на котором активированы лицензии 1С (или планируется устанавливать лицензии на нем и использовать его в качестве сервера лицензирования), а также имеются сервера, где установлены 1С кластеры, которым требуются лицензии.
Задача: распределение 1С лицензий по разным серверам (кластерам). Например, если на сервере лицензирования активирована одна лицензия на 50 пользователей, то нужно, чтобы этими лицензиями могли пользоваться различные 1С серверы/кластеры.
Помните, что для каждого кластера потребуется серверная лицензия (может быть активирована также на сервере лицензирования), т.е. сколько кластеров, столько и серверных лицензий.
Сам сервер лицензирования лицензии не требует.
В данной статье и в видео будут следующие условные наименования серверов:
Сервер лицензирования — SRV-DB1
Сервер 1С (с установленным кластером) — SRV-NODE-B
Содержание статьи:
- В рабочие серверы добавляем сервер лицензирования ( SRV-DB1 ).
- В блоке рабочего сервера SRV-DB1 добавляем две функциональности в требования назначения функциональности.
- В блоке рабочего сервера SRV-NODE-B добавляем две функциональности в требования назначения функциональности.
- На локальном кластере делаем полное применение требований функциональности.
- Перезагружаем службу 1С.
Посмотреть, как это делалось, можно в следующем видео-ролике:
Подробное описание:
(все действия выполняем в локальном кластере на 1С-сервере ( SRV-NODE-B )) :
1) В рабочие серверы добавляем сервер лицензирования ( SRV-DB1 ):
В итоге будет два рабочих сервера SRV-NODE-B и SRV-DB1 :
2) В блоке рабочего сервера (сервера лицензирования) SRV-DB1 добавляем две функциональности в требования назначения функциональности.
Функциональности должны быть именно в указанной последовательности.
Добавляем сначала:
Любой объект требования (Для всех) — Не назначать
Затем:
Сервис лицензирования — Назначать
В таком случае они «встанут» в нужной последовательности, иначе придется менять приоритет.
Этим мы говорим, что этот сервер готов выдавать лицензии и будет отклонять любые другие запросы.
3) В блоке рабочего сервера кластера SRV-NODE-B также добавляем две функциональности в требования назначения функциональности.
Функциональности должны быть именно в указанной последовательности.
Добавляем сначала:
Сервис лицензирования — Не назначать
Затем:
Клиентское соединение с ИБ — Назначать
Этим мы говорим, что этот сервер готов отвечать на клиентские вызовы, но лицензии он не содержит.
4) На локальном кластере делаем полное применение требований функциональности.
5) Перезагружаем службу 1С.
Также нужно не забыть про настройки локального FireWall — на сервере 1С ( SRV-NODE-B ) разрешить входящие-исходящие соединения для сервера лицензирования ( SRV-DB1 ).
Как мы делали сервер лицензирования?
Первоначально у нас был один виртуальный сервер, на котором был установлен 1С кластер. На нем были активированы программная серверная лицензия и программная лицензия на 50 пользователей (соответственно в кластере в информационной базе было указано, чтобы клиентские лицензии выдавались с сервера).
Затем понадобился перенос сервера на другую физическую площадку и было также решено выделить под кластер более производительную виртуальную машину. Поэтому существующий сервер оставили в качестве сервера лицензирования, и создали новый виртуальный сервер под 1С кластер.
Как из обычного сервера сделать сервер лицензирования? Если на нем не будут подключаться информационные базы и он будет использоваться только для лицензий, то в дополнению к вышеуказанным инструкциям нужно сделать только одно действие: удалить локальный кластер на сервере лицензирования (не саму программную серверную компоненту 1С, а именно локальный кластер в оснастке кластера, чтобы в списке кластеров было пусто — это видно на скриншотах и видеоролике, что на сервере лицензирования нет кластеров):
Если это сделать, то сервер лицензирования не будет «отъедать» серверную лицензию (т.е. ему самому вообще никаких лицензий не нужно, он только их хранит для других серверов).
Как активировать лицензию в случае сервера лицензирования?
Для этого на клиенте в любой базе (хоть локальной) зайти в конфигуратор, перейти на интерфейс ввода лицензии, нажать Дополнительно и ввести адрес сервера лицензирования.
Активация ключа на сервере:
В этом случае активация произойдет на сервере лицензирования.
После можно проверить, появился ли файл лицензии в папке на сервере (рекомендуется записать, что за файл — эта информация может понадобиться при восстановлении лицензии — см. статью Восстановление по пин-коду).
UPDATE 16.07.2019
Обнаружилась одна неприятная особенность. По крайне мере быстро решить эту проблему не смогли.
Не удается получить лицензии с выделенного сервера лицензирования в случае, если на серверах стоят платформы разной разрядности (битности).
В нашем случае на сервере лицензирования установлена платформа x64 и с этого сервера успешно получают программные серверные и клиентские лицензии два других сервера с 1С-кластерами, на которых также установлена платформа x64.
На третьем кластере установлена платформа x86, по причине того, что он использует аппаратный серверный ключ, предназначенный только для x86 1с-сервера. Клиентские лицензии он брал по сети с аппаратного ключа.
Было решено настроить его на получение программных клиентских лицензий с сервера лицензирования по аналогии с другими серверами. Однако при абсолютно такой же настройке кластер ни в какую не захотел получать лицензии.
При подключении клиентам выдавалось сообщение: Поиск лицензии в сервисе лицензирования: Ошибка вызова сервиса лицензирования: Не найдено ни одного сервера с размещенным сервисом serviceName=LicenseService.
Пришлось вернуться к использованию аппаратного ключа с клиентскими лицензии на этом x86 кластере.
Как прокинуть ключ сервера 1с
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами устранили ошибку whea uncorrectable error в Windows 10 и научились пользоваться утилитой PING. Сегодня я хочу вас научить подключать USB ключ 1С на сервер приложений через USB маршрутизатор dongleserver ProMAX. Это весьма новое оборудование и по нему мало актуальной информации, так что уверен, что мне наверняка скажут спасибо и плюсанут в карму.
Постановка задачи
И так есть новые USB ключи с лицензиями 1С, есть виртуальные машины на которых развернуты приложения 1С, необходимо к данным серверам подключить эти ключи через новое оборудование dongleserver ProMAX, которое мы настроили и обновили.
Алгоритм подключения ключей 1С по сети
Я все же сторонник того, что лицензия должна быть аппаратная в виде USB ключа, это меньше проблем с переносом на другой сервер, простота его подключения по сети, а так же безопасность, что ваша лицензия никуда не убежит. Все эти критерии есть у dongleserver ProMAX, который установлен в серверную стойку, имеет свой ключ, защищен ключом в стойке, и самим входом в серверную, его легко можно прокинуть в любую точку мира.
Алгоритм проброса ключа с dongleserver ProMAX такой:
- Настройка доступа к USB пору на dongleserver ProMAX, защита его секретным ключом
- Скачивание клиентского ПО SEH UTN Manager
- Установка SEH UTN Manager на сервер приложений 1С, куда нужно подключить ключ
- Настройка доступа к порту dongleserver ProMAX из SEH UTN Manager
Настройка защиты USB порта на dongleserver ProMAX
Откройте ваше устройство dongleserver ProMAX и прейдите в раздел «Security — USB». Тут я вам советую для всех неиспользуемых ключей убрать галку питания, чтобы если в оборудование и воткнули новый USB ключ, то он не работал и питание на него не подавалось. Далее при необходимости вы можете указать нужный VLAN у меня это не требуется. Если у вас USB порт не защищен паролем, то значка замочка у него не будет в соответствующем столбце. Переходим к настройке защиты USB порта dongleserver ProMAX, для этого нажмите на значок карандаша в столбце Change.
На выбор будут 3 метода защиты порта:
- Port key control — Позволяет защитить порт паролем, который нужно будет ввести на стороне клиента
- Device assignment — защита по USB device, по сути идет привязка определенного токена к данному порту, чтобы не было подмена
- Port key control/Device assignment— одновременно оба метода
Мне достаточно будет установки пароля на подключение, вы его можете уже себе скопировать в буфер обмена или блокнотик.
Обратите внимание, что в отличии от SEHтут есть возможность временного ограничения работы данного порта:
-
- Off— ограничения по времени работы не активированы
- forever — вечно работают, 24/7 365 дней в году
- expare — вы можете задать точную дату и время, когда USB порт dongleserver ProMAX должен перестать работать
- weekly — тут вы указываете по каким дням и в какие часы USB порт будет доступен, очень удобно ограничить например подрядчиков на выходных или не рабочие часы
В результате установки защиты у нас появился значок.
Скачивание клиентского ПО SEH UTN Manager
Далее вам на сервер 1С нужно загрузить дистрибутив SEH UTN Manager, сделать это можно по ссылке:
В разделе Tools находим SEH UTN Manager для вашей операционной системы ,в моем случае мне нужно его будет инсталлировать на Windows Server 2019.
Разархивируйте архив с SEH UTN Manager, в его состав войдут два файла с описанием и один дистрибутив.
Далее нужно его установить.
Установка SEH UTN Manager Version
Запустите файл sehutnmanager-win-3.2.6.exe для установки, это у нас уже третий этап по подключению USB ключа 1С. На первом экране просто нажмите «Next‘.
Принимаем лицензионное соглашение и идем дальше.
Выбираем пользователей кому будет доступен SEH UTN Manager, я оставлю его доступным для всех.
Оставляем полный комплект установки SEH UTN Manager.
При необходимости ы можете изменить каталог установки SEH UTN Manager
При необходимости вы можете здать свое имя ,как программа будет называться в списке программ.
Дожидаемся окончания установки SEH UTN Manager, после чего у вас будет создан ярлык на рабочем столе и вы сразу сможете его запустить.
Подключение ключа 1с в SEH UTN Manager
И так у нас остается настройка доступа к порту dongleserver ProMAX из SEH UTN Manager. Запускаем утилиту. Первым делом вам необходимо добавить ваш сервер dongleserver ProMAX, для этого в меню «UTN server — Add» выберите соответствующий пункт.
Указываем его IP-адрес или DNS имя, если вы меняли стандартные порты при настройке dongleserver ProMAX, то не забываем поменять их и тут на правильные.
Далее вы кликаете по добавленному серверу dongleserver ProMAX и из контекстного меню выбираете пункт «Activate Auto-Connect», для активации автоподключения USB порта.
Указываем USB порт в котором у нас ключ с лицензиями 1С, в моем примере это порт USB port 1.
Теперь укажем пароль для текущего подключения USB порта dongleserver ProMAX. Сделать это можно через пункт «Enter user port key«, нужно понимать, что это использования в рамках текущей сессии.
Напоминаю, что пароль на доступ вы можете найти в настройках USB порта.
Осталось еще произвести ввод пароля для автоподключения нужного порта, сделать это можно через пункт «Enter Auto-Connect port key«.
Теперь у вас будет подключен ваш USB ключ с 1С и в последующем после перезагрузки будет автоматическое подключение.
Не забываем заранее ставить правильные драйвера для ключа 1С, а то вы будите получать ряд ошибок в диспетчере устройств: