Настройка DCOM для OPC на Windows XP

Windows XP давно не поддерживается Microsoft, но на производстве иногда бывает крайне тяжело (или лень) отказаться от использования данной ОС. Поэтому нужно иметь шпаргалку и на этот случай. Настройка DCOM в XP похожа на настройку 7-ки, но есть некоторые моменты ради которых я не поленился и отскринил всю процедуру.

Общий план работ

Чтобы настройка не была головной болью, нужно соблюдать определенную последовательность действий.

  1. Введение.
  2. Проверка OPC локально — OPC-клиент на сервере должен без проблем получать данные с локального OPC-сервера.
  3. Отключение брандмауэра — по-началу это упрощает настройку, пока еще нет четкого понимания что нужно разрешать.
  4. Настройка пользователей — связка логин/пароль должна быть одинаковой на обоих компьютерах.
  5. Отключение простого доступа к файлам — если эта настройка включена, то каждый удаленный пользователь будет авторизован как Гость, что нам крайне не подходит.
  6. Настройка DCOM — общие настройки, обеспечивающие работоспособность DCOM на компьютерах.
  7. Настройка OpcEnum для работы через DCOM — служба, которая отображает OPC-сервера компьютера на котором она запущена.
  8. Настройка целевого OPC-сервера для работы через DCOM — в моем случае это CoDeSysOPCDA.
  9. Настройка локальных параметров безопасности — необходимо снять ограничения на запуск DCOM.
  10. Включение брандмауэра и создание правил — с отключенным брандмауэром жить не комфортно! Здесь же и проверим как данные летают

 

Введение

Как всегда, у меня есть отдельные требования для настройки:

  • доступ к OPC-серверу будет осуществляться по логину и паролю
  • доступ будет осуществляться только к тому OPC-серверу, который мы укажем

Вариант где все для всех разрешено описывать не буду, т.к. это крайне не безопасно.

Что мы имеем:

  • Условный сервер (так и будем его далее называть) – этот компьютер связывается с контроллером. В моем случае это виртуальная машина с Windows XP Professional SP3 с последними обновлениями и CoDeSys 3.4. Виртуалка имеет имя XP-DCOM-3.
  • В качестве контроллера выступает софтовый PLC от CoDeSys.
  • Условный клиент – компьютер с OPC DA клиентом — в моем случае это еще одна виртуалка с Windows XP Professional SP3 с последними обновлениями, в качестве OPC-клиента я выбрал продукт от kassl.de. Виртуалка имеет имя XP-DCOM-4.
  • Обе виртуалки находятся в рабочей группе, домен отсутствует, связь между ними есть.

 

Проверка OPC локально

Для проверки я запустил OPC-клиент, подключился к предварительно настроенному OPC-серверу на сервере. После того как есть 100%-ая уверенность в работоспособности OPC-сервера локально можно приступать к настройке DCOM.

 

Отключение брандмауэра

Наша цель — настроить OPC через DCOM, а по-началу брандмауэр может в этом помешать. Поэтому сперва с отключенной защитой мы настраиваем наше ПО и убеждаемся, что все настроено и работает, а в конце подключаем защиту. Так проще искать ошибки в процессе.

 

Настройка пользователей

На обоих компьютерах должны быть пользователи с одинаковыми логинами и паролями, причем пароль должен быть не пустым. В домене можно использовать одну учетную запись. Для теста я выбрал логин opc и пароль opc — конечно же, не рекомендую использовать такую простую связку в продакшне 🙂

Итак, переходим к настройке пользователей. Текстовую последовательность я снабдил скриншотами, которые помогут проще ориентироваться в тексте. Конечно же, опытный пользователь может создать/настроить юзера так как ему будет угодно, тем не менее я предлагаю такой вариант.

  1. Запускаем компонент управления учетными записями пользователей control userpasswords2.
  2. В окне нажимаем кнопку Добавить для добавления нового пользователя в систему.
  3. В следующем окне задаем логин opc (поле Пользователь), и имя с описанием по желанию и жмем кнопку Далее.
  4. Задаем пароль opc и подтверждение, жмем Далее.
  5. Далее выбираем уровень доступа «Другой» и в списке выбираем группу Администраторы (или другую, которая позволит запускать OPC-сервер) и жмем кнопку Готово.
  6. Пользователь создан и появляется в списке Пользователи этого компьютера. Для включения автологина, нужно выделить юзера в этом списке и снять галку Требовать ввод имени пользователя и пароля. Решать вам, нужен автологин или нет. Затем нужно сделать две вещи. Добавить юзера в группу Пользователи DCOM (таким образом всю настройку мы сможем выполнять для группы, а не для конкретного пользователя — это может быть полезно в будущем при смене пароля для opc или изменении пользователя) и настроить запрет смены пароля юзером (это на всякий случай). Для этого переходим на вкладку Дополнительно. В секции Дополнительное управление пользователями нажимаем кнопки Дополнительно (уж простите Майкрософт за тавтологию …).
  7. В появившемся окне слева выбираем Группы, справа в контекстном меню выбираем пункт Создать группу.
  8. В окне Новая группа вписываем имя «DCOM» и описание (по желанию). Под списком Члены группы жмем на кнопку Добавить.
  9. В поле для ввода пишем логин opc и жмем кнопку OK, если все хорошо, то окно закроется …
  10. … а в следующем окне в списке Члены группы появится наш opc. Теперь можно закрыть окно.
  11. Убедимся, что группа DCOM создана.
  12. Далее слева выбираем пункт Пользователи и дважды кликнем на нашего opc.
  13. В появившемся окне ставим галки Запретить смену пароля пользователем и Срок действия не ограничен, подтверждаем кнопкой OK и закрываем окно настройки пользователей и групп.
  14. Также подтверждаем настройки кнопкой OK в оставшемся окне. Но окно не закроется, а выскочит просьба ввести логин и пароль пользователя для автологина. Введем данные нашего юзера и подтвердим кнопкой OK.

Внимание! Эти действия необходимо провести как на сервере, так и на клиенте.

 

Отключение простого доступа к файлам

  1. Открываем окно Мой компьютер или любое другое окно приложения explorer. В меню Сервис выбираем пункт Свойства папки.
  2. Выбираем вкладку Вид и в списке Дополнительные параметры снимаем галку Использовать простой общий доступ к файлам (рекомендуется).

Внимание! Эти действия следует выполнить как на сервере, так и на клиенте.

 

Настройка DCOM

В данном разделе нужно настроить свойства DCOM по умолчанию на сервере, чтобы «все работало». Приступим.

  1. Запустим окно настройки DCOM командой dcomcnfg .
  2. Откроется окно Службы компонентов, в котором нужно будет раскрыть список Службы компонентов, а затем и список Компьютеры, где мы увидим еще один вложенный список Мой компьютер
  3. Правой кнопкой мыши кликаем на Мой компьютер и выбираем пункт меню Свойства.
  4. В появившемся окне свойств выбираем вкладку Свойства по умолчанию и устанавливаем следующие настройки:
    1. Галка Разрешить использование DCOM на этом компьютере — без нее DCOM работать не будет.
    2. В Уровень проверки подлинности по умолчанию выбираем Подключение.
    3. В Уровень олицетворения по умолчанию выбираем Идентификация.
    4. Затем выбираем вкладку Протоколы по умолчанию.
  5. В списке Протоколы DCOM удаляем все кроме TCP/IP с ориентацией на подключения. После жмем кнопку OK. Окно Службы компонентов не закрывайте, оно нам еще понадобится.

Те же настройки необходимо провести и на клиенте за исключением пунктов 3.2 и 3.3 — они не повлияют на работу, но и не повредят. Самое главное, чтобы DCOM был разрешен.

 

Настройка OpcEnum для работы через DCOM

Служба OpcEnum отвечает за отображение OPC-серверов. Если ее настроить некорректно, то при браузинге серверов, вы не увидите ничего, кроме ошибок. Эту службу нужно настроить на сервере.

  1. В окне Служба компонентов должно уже быть открыто дерево до Настройка DCOM. Нужно выбрать этот элемент в левой части окна, и после этого в правой найти OpcEnum, кликнуть на него правой кнопкой мышки и выбрать пункт меню Свойства.
  2. Откроется окно свойств, и во вкладке Общие в списке Уровень проверки подлинности выбрать Подключение.
  3. Во вкладке Расположение должен быть выбран пункт Запустить приложение на данном компьютере. Остальные галки должны быть сняты.
  4. Далее переходим к вкладке Безопасность, где будем раздавать права на удаленный запуск, доступ и изменение настроек OpcEnum. Во всех трех случаях выбираем пункт Настроить, т.е. у нас должны быть активны три кнопки Изменить.
  5. Начнем с Разрешение на запуск и активацию. Нам нужно добавить нашу группу с необходимыми разрешениями, поэтому кликаем на кнопку Добавить.
  6. Вписываем (или ищем) группу DCOM, жмем OK — группа должна добавиться.
  7. Итак, группа в списке, теперь надо проставить галки под словом Разрешить. (На скриншоте) Я поставил все галки, но для того чтобы служба работала по сети нам нужно лишь Удаленный запуск и Удаленная активация. После проставления галок жмем OK и открываем следующее окно — Права доступа.
  8. Точно так же добавляем нашу группу и разрешаем ей все, либо только Удаленный доступ, жмем OK и открываем окошко Разрешение на изменение настроек.
  9. В этом окне точно так же добавляем группу и разрешаем ей Полный доступ и Чтение — они ставятся одновременно и снимаются так же. Жмем OK и переходим ко вкладке Удостоверение окна свойств OpcEnum.
  10. Для службы OpcEnum возможно два варианта запуска:
    1. Системная учетная запись (только службы) — OPC-сервер будет запущен под системной учетной записью независимо от входа в систему. Данный вариант нам подходит и его советуют как более предпочтительный.
    2. Указанный пользователь — при данной настройке OPC-сервер будет запущен от имени указанного нами пользователя в одном экземпляре, в независимости от того под какой учетной записью совершен вход. Этот вариант нравится мне больше, т.к. я люблю определенность, ведь в данном случае я сам указываю пользователя.
  11. Определившись нажимаем OK и переходим к перезапуску службы OpcEnum. Это можно сделать из того же окна: слева выбираем Службы (локальные), справа в списке ищем OpcEnum, выбираем и перезапускаем нажатием на появившуюся ссылку.
  12. Дожидаемся перезапуска службы.

 

Настройка целевого OPC-сервера для работы через DCOM

Итак, мы вплотную подобрались к настройке ПО, которое будет выдавать нам теги на клиенте. Настройка не сильно отличается от процедуры, описанной в предыдущем разделе.

  1. В Настройка DCOM ищем необходимый OPC-сервер (в данном случае — CoDeSysOPCDA), тыкаем правой кнопкой мыши и выбираем Свойства.
  2. На вкладке Общие в списке Уровень проверки подлинности выбираем Подключение.
  3. На вкладке Расположение должен быть выбран только пункт Запустить приложение на данном компьютере.
  4. На вкладке Безопасность группе DCOM даем права на удаленный запуск, доступ и изменение настроек как и в случае с OpcEnum (ниже будут скриншоты).
  5. На вкладке Удостоверение у нас есть 4 варианта:
    1. Текущий пользователь — в этом случае OPC-сервер будет запускаться от имени вошедшего в систему пользователя. Можно использовать данный вариант, но необходимо на сервере авторизовываться под учетной записью opc, что может быть не всегда удобно. Но тем не менее можно выбрать этот вариант при условии, что сервер всегда будет запущен под учеткой opc. Я выбираю этот вариант.
    2. Запускающий пользователь — при авторизации пользователя будет запущен экземпляр OPC-сервера. Если к серверу будет подключено два клиента, то будет запущено два OPC-сервера. В одном случае это будет отжирать ресурсы, в другом — все кроме первого клиенты не будут видеть данных.
    3. Указанный пользователь — как и в случае с OpcEnum этот вариант предпочтительный потому, что при такой настройке будет запущен один экземпляр под необходимой учетной записью.
    4. Системная учетная запись (только службы) — для CoDeSysOPCDA этот вариант недоступен, поэтому не рассматриваем.
  6. После выбора одного из вариантов и нажатия на кнопку OK, нужно перезапустить OPC-сервер, если он запущен. В случае с CoDeSysOPCDA я вырубаю процесс сервера.

 

Настройка локальных параметров безопасности

  1. Запустим приложение secpol.msc для настройки параметров
  2. В окне в списке слева переходим в список Параметры безопасности (находится в Локальные политики) и справа кликаем правой кнопкой мыши на DCOM: Ограничения компьютера на доступ в синтаксисе SDDL … и выбираем Свойства.
  3. В окошке жмем на кнопку Изменить безопасность…
  4. Далее нужно добавить нашу группу в Разрешения, поэтому жмем Добавить.
  5. Вписываем группу DCOM в поле для ввода и подтверждаем кнопкой OK.
  6. Выбираем в списке Группу и пользователи нашу группу и в списке ниже ставим галку Удаленный доступ (Локальный доступ не повредит, хоть и не обязателен), подтверждаем изменения кнопкой ОК.
  7. В оставшемся окне жмем ОК для применения настроек.
  8. Далее кликаем правой кнопкой мыши на DCOM: Ограничения компьютера на запуск в синтаксисе SDDL … и выбираем Свойства.
  9. В окошке жмем на кнопку Изменить безопасность…
  10. Далее нужно добавить нашу группу в Разрешения, поэтому жмем Добавить, вписываем группу DCOM в поле для ввода и подтверждаем кнопкой OK.
  11. Выбираем в списке Группу и пользователи нашу группу и в списке ниже ставим галку Удаленный запуск и Удаленная активация (Локальные запуск и активация не обязательные), подтверждаем изменения кнопкой ОК.
  12. В оставшемся окне жмем ОК для применения настроек.
  13. После этого окно Локальные параметры безопасности можно закрыть.

 

Включение брандмауэра и создание правил

Конечно же, нельзя забывать об отключенной в самом начале защите. Но если включить фаервол без предварительно созданных правил, то клиент не сможет достучаться до сервера. Я рассматриваю брандмауэр Windows, т.к. он идет по умолчанию и есть у всех, кто настраивает DCOM. Опытный пользователь без труда настроит другое ПО по аналогии. Подробно текстом описывать не буду (скриншоты смотрите ниже), но вот необходимые правила:

  1. Разрешение на доступ извне для службы OpcEnum.
  2. Разрешение на доступ извне по 135-му TCP-порту.
  3. Разрешение на доступ извне для CoDeSysOCPDA.

Рекомендую следующую последовательность действий:

  1. Включить брандмауэр.
  2. Убедиться, что данные не проходят.
  3. Создать правила.
  4. Убедиться, что данные проходят.

Вот и все. Как видите, ничего сложного в пробросе OPC-тегов через DCOM нет. Самое главное, чтобы были необходимые права на выполнение всех манипуляций. Если вам необходимо настроить на Windows 7 OPC-сервер, то воспользуйтесь этой статьей.

Добавить комментарий