30
сентябрь
2022
Восстановление работы DCOM в Windows
15:02

Восстановление работы DCOM в Windows

30 сентябрь 2022 15:02

В Интернете я не встречал описание настроек по умолчанию для системы DCom, поэтому решил написать статью.

Предупреждение

Изменение разрешений на доступ, а также на запуск и активацию может повлиять на запуск приложений, возможность нормальной работы пользователей и администраторов. Неправильное управление списками прав доступа к DCOM-компонентам при помощи dcomcnfg.exe может привести к сбоям работы приложений или компонентов, взаимодействующих с помощью технологии DCOM. Переопределение параметров по умолчанию для DCOM, которые создаются при установке Windows, как правило не требуется, поэтому их не надо изменять. Если задача состоит в усилении безопасности относительно той, что задана по умолчанию, убедитесь, что пользователи имеют права на запуск и активацию. Если права на запуск и активацию не предоставлены глобально, придётся изменить ACL разрешений на запуск для конкретного приложения, чтобы предоставить соответствующим пользователям права на активацию. Не рекомендую редактировать права системных групп пользователей, которые установила Windows при установке.

Причины сбоев работы DCOM

  1. Компоненты DCOM работают с помощью транспортной системы ORPC (Object Remote Procedure Call). Служба RPC является одной из важнейших, т.к. от неё зависит работа Windows, которая тоже использует DCOM для запуска большинства компонентов. Встречал на практике, что увлёкшись отключением "ненужных" служб Windows пользователь запретил запуск службы RPC. В результате, компьютер после перезагрузки отказался загружаться. Загрузка проходила "в час по чайной ложке", операционная система не откликалась на действия. Таким образом, служба RPC должна работать. В отличие от службы DBUS в Linux, которая использует сообщения, в DCOM в Windows используются потоки бит (упакованные вызовы), созданные при помощи Маршалинга, аналога сериализации.

  2. Доступ к компонентам DCOM производится на основе прав, которые задаются с помощью ACL - Access Control Lists. Описание оснастки dcomcnfg.exe, с помощью которой производится настройка, плохое. Фирма Microsoft просто рекомендует не изменять настройки по умолчанию, т.к. они могут нарушить работу системы. Сами же настройки нигде не упомянуты.
    Существуют 2 настройки прав:

    • Право доступа (который бывает локальный или удалённый)
    • Право активации - т.е. запуска компоненты.
      Также, два лимита (ограничения)
    • Лимит доступа
    • Лимит активации
  3. FireWall - на терминальном же сервере 1с использует единственный порт RDP 3389, который должен быть открыт.

Если терминальный сервер не используется, сетевая версия 1с "Предприятия" использует порты TCP, которые нужно открыть наружу.

на сервере в брандмауэре создать правило для входящих подключений - разрешить TCP порты: 1540, 1541, 1560-1591.

Открытые порты на ПК можно вывести командой netstat -an

  1. Групповые политики. Пользователи при удалённом запуске DCOM используют ресурсы сервера. Настройки по умолчанию позволяют работу DCOM в таком режиме, но усиливая безопасность можно случайно затронуть право пользователей на удаленный запуск, в Конфигурация компьютера - Административные шаблоны - Система - Распределённая модель COM (Computer Configuration - Administrative templates - System - Distributed COM).

  2. Свойства и разрешения конкретного приложения DCOM в оснастке "Службы компонентов": Панель управления -> Система и безопасность -> Администрирование -> Службы компонентов -> Компьютеры -> Мой компьютер -> Настройка DCOM -> Имя приложения -> Свойства -> Безопасность.

    • Разрешения на запуск и активацию - По умолчанию
    • Разрешения на доступ - По умолчанию
      Общие - Уровень проверки подлинности - По умолчанию.
      Удостоверение - Запускающий пользователь.
      Размещение - Запускать приложение на данном компьютере.
  3. Антивирус тоже может контролировать порты, если имеет встроенный брандмауэр.

Быстрое восстановление настроек прав доступа DCOM по умолчанию

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

Во-первых, DCOM должен быть включен, и уровень олицетворения - "Определить" (цифровое значение - 2).

HKEY_LOCAL_MACHINE\Software\Microsoft\Ole

Ключ "ENABLE_DCOM" - строка REG_SZ - значение "Y".

Ключ "LegacyImpersonationLevel" - DWORD - значение 2.

реестр

Во-вторых, Чтобы привести права к исходном виду, нужно в редакторе реестра REGEDIT.EXE удалить 4 ключа реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\Ole

  • DefaultAccessPermission
  • DefaultLaunchPermission
  • MachineAccessRestriction
  • MachineLaunchRestriction

Данные ключи можно спокойно удалить, они создадутся снова. При этом будут удалены все нестандартные настройки прав доступа DCOM, выполненные администратором, а разрешения на запуск и активацию, лимиты и группы пользователей DCOM вернутся к первоначальным значениям, которые были сразу после установки ОС. В результате, восстановится нормальная работа системы DCOM.

Настройки прав доступа в утилите dcomcnfg.exe по умолчанию

Ниже привожу настройки DCOM по умолчанию для Windows 8-10 привожу ниже.

DCOMCNFG.EXE -Свойства "Мой компьютер" - Безопасность COM

Свойства по умолчанию:
1234

1 Права доступа - Ограничения (Лимиты)
11
12
13
14
15

2 Права доступ - Значения по умолчанию
21
22
23

3 Разрешения на запуск и активацию - Ограничения (Лимиты)
31
32
33
34
35

4 Разрешения на запуск и активацию - Значения по умолчанию
41
42
43

Права доступа DCOM по умолчанию в виде таблиц (ACL):



1 Права доступа - Ограничения (Лимиты)

Группа Локальный доступ Удаленный доступ
Все Разрешить Разрешить
ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ Разрешить -
Пользователи журналов производительности Разрешить Разрешить
Пользователи DCOM Разрешить Разрешить
АНОНИМНЫЙ ВХОД Разрешить -




2 Права доступ - Значения по умолчанию

Группа Локальный доступ Удаленный доступ
SELF Разрешить Разрешить
СИСТЕМА Разрешить -
Администраторы Разрешить Разрешить




3 Разрешения на запуск и активацию - Ограничения (Лимиты)

Группа Локальный запуск Удаленный запуск Локальная активация Удаленная активация
Все Разрешить - Разрешить -
ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ Разрешить - Разрешить
Администраторы Разрешить Разрешить Разрешить Разрешить
Пользователи журналов производительности Разрешить Разрешить Разрешить Разрешить
Пользователи DCOM Разрешить Разрешить Разрешить Разрешить




4 Разрешения на запуск и активацию - Значения по умолчанию

Группа Локальный запуск Удаленный запуск Локальная активация Удаленная активация
СИСТЕМА Разрешить Разрешить Разрешить Разрешить
Администраторы Разрешить Разрешить Разрешить Разрешить
Интерактивные Разрешить Разрешить Разрешить Разрешить




Группа пользователей "Пользователи DCOM"

В группу "Пользователи DCOM" нужно добавить пользователей, которые должны иметь возможность запускать DCOM компоненты, как удаленного так и локально. То есть не всех пользователей, а лишь тех, кто реально работает с DCOM.



Похожие публикации