Se o seu servidor OPC no Windows Server 2022 parou de responder após ajustes de DCOM, este guia mostra, de ponta a ponta, como configurar permissões, identidade e firewall, fixar portas e validar a comunicação com segurança e previsibilidade.
Visão geral do problema
Em ambientes que ainda utilizam OPC Classic/OPC DA, a comunicação entre cliente e servidor depende de DCOM e RPC. Em instalações atualizadas do Windows Server 2022, políticas de segurança mais rígidas, permissões incorretas de DCOM, contexto de identidade inadequado ou portas bloqueadas por firewall são as causas mais frequentes de falha na conexão, na enumeração do OPCEnum e em operações de leitura/escrita.
Este artigo consolida um procedimento comprovado para restaurar a comunicação e, ao mesmo tempo, endurecer a segurança. Inclui um passo a passo visualmente organizado, tabelas de verificação, scripts de firewall e notas importantes para domínios do Active Directory e redes com segmentação estrita.
Checklist rápido antes de mexer no DCOM
- Admin local: execute o processo com uma conta com privilégios administrativos na máquina do servidor OPC.
- Arquitetura 32/64 bits: muitos servidores OPC Classic são 32-bit. Para configurá-los, abra o console de 32 bits:
Win + R → mmc comexp.msc /32
Se abrir apenas o console padrão, você verá itens de 64 bits e pode não encontrar o servidor OPC. - Serviços base: confirme os serviços Remote Procedure Call (RPC) e DCOM Server Process Launcher em execução e definidos para inicialização automática.
- Perfil de rede: prefira perfis Domínio/Privada em vez de Pública para o adaptador em uso.
- DNS e horário: resolução de nomes consistente e relógios sincronizados (NTP) minimizam falhas de autenticação (Kerberos/NTLM).
Como o OPC Classic usa DCOM
OPC Classic (OPC DA, AE, HDA) usa RPC/DCOM com o seguinte fluxo simplificado:
- O cliente contata o RPC Endpoint Mapper na porta 135/TCP do servidor.
- Recebe um endpoint dinâmico (porta TCP aleatória dentro de um intervalo amplo) onde o servidor OPC atenderá.
- O cliente se autentica, ativa o servidor COM e estabelece a sessão OPC.
Portanto, abrir apenas a 135/TCP raramente basta. Em redes restritivas, recomenda-se fixar um intervalo de portas DCOM pequeno e liberá-lo no firewall, conforme mostrado mais adiante.
Solução recomendada (passo a passo)
Etapa | Ação | Objetivo |
---|---|---|
1 | Abra Executar (Win + R) → dcomcnfg | Entrar no Console Serviços de Componentes |
2 | Navegue em Serviços de Componentes ▸ Computadores ▸ Meu Computador ▸ DCOM Config | Localizar o aplicativo OPC |
3 | Clique com botão direito no servidor OPC ▸ Propriedades | Abrir definições específicas |
4 | Geral → confirme “Executar neste computador” | Garantir que o serviço rode localmente |
5 | Localização → marque “Executar aplicação neste computador” | Evitar execução remota indesejada |
6 | Segurança | Definir permissões exclusivas |
6a | • Permissões de Inicialização e Ativação → Personalizar ► Editar | Conceda Lançamento/Ativação Local e Remota às contas ou grupos que precisam acessar o servidor |
6b | • Permissões de Acesso → Personalizar ► Editar | Conceda Acesso Local e Remoto às mesmas contas |
7 | Identidade → selecione a conta de serviço correta; mantenha nível de autenticação Connect ou superior | Garantir contexto de segurança adequado |
8 | Abra no firewall a porta 135/TCP e o intervalo de portas dinâmicas ou estáticas definido para DCOM/OPC | Permitir o tráfego de rede necessário |
9 | Reinicie o serviço/servidor OPC (ou o próprio Windows Server) | Aplicar todas as alterações |
Notas importantes para cada etapa
- Encontrando o servidor OPC: ordene por Aplicativo ou AppID. Se ele for 32 bits, use
mmc comexp.msc /32
. - Permissões mínimas: crie um grupo dedicado (ex.: OPCUsers) e conceda a esse grupo as permissões nas seções 6a e 6b. Evite usar Everyone ou Anonymous Logon.
- Identidade: para serviços contínuos, prefira Este usuário com uma conta de serviço (de domínio, se possível). Garanta políticas “Fazer logon como serviço” e acesso aos recursos necessários (arquivos, drivers, chaves de registro).
- Nível de autenticação: Connect funciona na maioria dos cenários; quando possível, alinhe com níveis mais altos (Packet Integrity/Packet Privacy) para acompanhar o endurecimento do DCOM em edições recentes do Windows Server 2022.
- Reinício: alguns servidores OPC se registram como surrogate (dllhost). Após alterar Identidade ou permissões, reinicie o serviço do OPC (ou o host COM) para forçar nova ativação.
Ajuste do firewall do Windows
Em redes segmentadas, habilite regras explícitas. Exemplos em PowerShell:
# Porta do RPC Endpoint Mapper
New-NetFirewallRule -DisplayName "OPC/RPC - 135/TCP (IN)" -Direction Inbound -Protocol TCP -LocalPort 135 -Action Allow
Exemplo de intervalo fixo de portas DCOM (ajuste conforme sua política)
New-NetFirewallRule -DisplayName "OPC/DCOM - 50000-50100/TCP (IN)" -Direction Inbound -Protocol TCP -LocalPort 50000-50100 -Action Allow
(Opcional) Restringir por origem conhecida (substitua 10.10.0.0/16 pelo seu segmento de clientes)
New-NetFirewallRule -DisplayName "OPC/DCOM - 50000-50100/TCP (IN - Clientes)" -Direction Inbound -Protocol TCP -LocalPort 50000-50100 -RemoteAddress 10.10.0.0/16 -Action Allow
Testes rápidos de conectividade a partir do cliente
Testa a 135/TCP
Test-NetConnection \ -Port 135
Se usar portas fixas, teste uma porta do intervalo
Test-NetConnection \ -Port 50000
Dica: em auditorias, ative o log de conexões do firewall para evidenciar acessos (Propriedades do Firewall → Log do Firewall → Log dropped packets / Log successful connections).
Definindo um intervalo fixo de portas DCOM
Fixar um intervalo reduz a superfície exposta e simplifica regras de firewall. Duas abordagens usuais:
Pelo console de Component Services
- Abra Serviços de Componentes ▸ Computadores ▸ Meu Computador ▸ Propriedades.
- Guia Protocolos Padrão → selecione TCP/IP orientado a conexão → Propriedades.
- Em Endpoints, informe um intervalo (ex.:
50000-50100
). - Confirme e reinicie os serviços afetados.
Pelo Registro (cenário avançado)
Em ambientes muito restritos, vale definir o intervalo de portas no Registro, em HKLM\Software\Microsoft\Rpc\Internet
, conforme indicado na sua política interna. Após a mudança, alinhe o firewall para permitir exatamente esse intervalo. Documente e padronize o valor em todas as máquinas envolvidas.
Segurança do DCOM: permissões e limites
Para evitar os erros mais comuns (principalmente 10016/10036 do DistributedCOM), ajuste tanto as permissões do aplicativo OPC quanto os limites globais do COM:
No aplicativo OPC (recomendado como primeira medida)
- Segurança ▸ Permissões de Inicialização e Ativação → Personalizar → Adicionar o grupo OPCUsers (ou equivalente) com:
- Ativação Local
- Ativação Remota
- Inicialização Local
- Inicialização Remota
- Segurança ▸ Permissões de Acesso → Personalizar → conceda:
- Acesso Local
- Acesso Remoto
Nos limites globais do COM (quando o evento acusar falta de direitos de Remote Activation)
- Em Meu Computador ▸ Propriedades ▸ Segurança COM, edite:
- Permissões de Inicialização e Ativação → Editar Limites
- Permissões de Acesso → Editar Limites
- Inclua apenas os grupos necessários (ex.: OPCUsers) com Remote Access e Remote Activation. Evite Everyone e Anonymous Logon.
Identidade e nível de autenticação
- Identidade: use Este usuário com uma conta de serviço dedicada. Evite Usuário interativo, que depende de sessão logada.
- Autenticação: deixe o nível do aplicativo em Usar Padrão quando os Propriedades Padrão do computador estiverem em Connect ou superior. Em ambientes já “endurecidos”, prefira Integridade de Pacote.
- Representação: Impersonate atende à maioria das necessidades de OPC DA.
Domínio, autenticação e topologias
Cenário | Requisitos | Observações |
---|---|---|
Mesmo domínio AD | Conta de serviço de domínio; DNS correto; relógio sincronizado | Preferível. Kerberos reduz fricção e melhora segurança. |
Domínios diferentes com confiança | Trust configurada; SPNs; políticas de autenticação | Valide roteamento, DNS entre florestas e políticas de NTLM/Kerberos. |
Grupo de trabalho | Mesmos usuários e senhas em cliente/servidor; NTLM habilitado | Evite alterações inseguras (ex.: relaxar UAC para contas locais). Considere usar OPC UA como alternativa. |
Validação da comunicação
- Testes de porta a partir do cliente:
Test-NetConnection <ServidorOPC> -Port 135 Test-NetConnection <ServidorOPC> -Port <portadointervalo>
- Enumeração do servidor: verifique se o cliente OPC consegue listar OPCEnum e o servidor OPC. Falhas aqui geralmente indicam 135/TCP ou permissões.
- Leitura/Escrita: execute uma leitura simples (ex.: um item Heartbeat) para confirmar estabilidade.
Diagnóstico e erros comuns
Sintoma | Provável causa | Como resolver |
---|---|---|
Cliente não lista servidores OPC | 135/TCP bloqueada, OPCEnum ausente ou permissões de acesso | Abra 135/TCP; instale/registre o OPCEnum; ajuste Permissões de Acesso |
Conecta mas cai ao ativar | Sem Remote Activation ou Launch para o grupo do cliente | Corrija em Permissões de Inicialização e Ativação (aplicativo e/ou limites) |
Conexão intermitente | Intervalo dinâmico flutuante bloqueado pelo firewall | Fixe portas DCOM (ex.: 50000–50100) e libere o intervalo |
Falha só com clientes antigos | Requisitos mais altos de autenticação no Windows Server 2022 | Aumente o nível de autenticação do cliente ou ajuste compatibilidade conforme política |
Eventos 10016/10036/10028 no Visualizador | Permissões insuficientes ou ativação remota negada | Reveja permissões do aplicativo e “Editar Limites” em COM Security |
Boas práticas de segurança
- Princípio do menor privilégio: conceda acesso apenas a grupos específicos (evite Everyone).
- Conta de serviço dedicada: sem privilégios administrativos desnecessários; senhas rotacionadas; “Log on as a service”.
- Portas restritas: use intervalo fixo e limite RemoteAddress das regras de firewall aos segmentos de clientes.
- Criptografia de tráfego: quando disponível, use níveis de autenticação mais altos (Packet Privacy).
- Monitoramento: audite falhas no DistributedCOM e conexões no log do firewall para detectar tentativas indevidas.
Exemplo de matriz de permissões recomendada
Permissão | Uso | Conceder a |
---|---|---|
Inicialização Local | Permite inicializar o servidor localmente | Conta de serviço do OPC |
Inicialização Remota | Permite que o cliente dispare a ativação via DCOM | Grupo de clientes OPC (ex.: OPCUsers) |
Ativação Local | Cria instâncias do servidor localmente | Conta de serviço do OPC |
Ativação Remota | Cria instâncias via rede | Grupo de clientes OPC |
Acesso Local | Chamadas locais ao servidor COM | Conta de serviço do OPC |
Acesso Remoto | Chamadas remotas ao servidor COM | Grupo de clientes OPC |
Observações complementares
- Serviços essenciais – Confirme se Remote Procedure Call (RPC) e DCOM Server Process Launcher estão ativos.
- Intervalo de portas fixo – Em ambientes com firewall restritivo, vale definir um intervalo controlado de portas DCOM (registro:
HKLM\Software\Microsoft\Rpc\Internet
) e liberá‑lo. - Domínio e autenticação – Se utilizar contas de domínio, certifique‑se de que Kerberos ou NTLM estão habilitados e de que há confiança entre as máquinas.
- Migração para OPC UA – Sempre que possível, considere projetar novas integrações em OPC UA (baseado em TCP/TLS e não em DCOM), que simplifica configuração, melhora segurança e facilita uso em redes segmentadas.
Fluxo de validação final
- Revisar Identidade do servidor OPC e confirmar execução sob a conta correta.
- Verificar Permissões de Acesso e Inicialização/Ativação no aplicativo e, se necessário, nos Limites do COM Security.
- Garantir 135/TCP e o intervalo fixo abertos no firewall (e, se aplicável, em dispositivos de borda).
- Executar
Test-NetConnection
e um cliente OPC de teste para confirmar browse, leitura e escrita. - Checar o Visualizador de Eventos para confirmar ausência de novos erros do DistributedCOM.
Quando migrar para OPC UA
Se o ambiente exige segmentação rígida, acoplamento mínimo com AD/NTLM e configuração previsível de portas, migrar para OPC UA reduz custo operacional e riscos. UA usa TCP com certificados e perfis de segurança modernos; basta abrir as portas de cada endpoint UA (com TLS ou sem, conforme política). Na coexistência, um gateway ou wrapper UA ↔ Classic permite manter os clientes atuais enquanto a migração acontece.
FAQ
O que muda no Windows Server 2022 em relação a DCOM?
Políticas de autenticação e endurecimento vieram mais rígidas por padrão. Em geral, use níveis de autenticação “Connect” ou superiores e evite permissões amplas.
Preciso liberar portas além da 135?
Sim. DCOM usa portas dinâmicas para o tráfego de aplicação. Em redes restritas, defina um intervalo fixo (ex.: 50000–50100) e libere-o.
Por que o cliente enxerga o servidor mas falha na ativação?
Permissões de Remote Activation e Remote Launch ausentes para o grupo do cliente. Ajuste no aplicativo e, se necessário, nos Limites globais.
O servidor é 32 bits; como configurá-lo?
Abra o console de 32 bits: mmc comexp.msc /32
. Muitos servidores OPC Classic se registram apenas nesse contexto.
Workgroup é suportado?
É possível, mas o domínio simplifica autenticação e segurança. Em Workgroup, use contas locais sincronizadas e evite ajustes inseguros.
Modelo de plano de ação
- Criar grupo OPCUsers e adicionar os usuários/serviços necessários.
- Definir Identidade do servidor OPC para uma conta de serviço dedicada.
- Conceder Acesso/Inicialização/Ativação ao grupo.
- Fixar intervalo DCOM e ajustar firewall.
- Validar com cliente de teste e monitorar eventos.
Exemplos adicionais de automação
Crie e documente as regras em código para padronizar implantações:
# Variáveis
$ports = "50000-50100"
$clients = "10.10.0.0/16"
Regras inbound
New-NetFirewallRule -DisplayName "OPC RPC 135 IN" -Direction Inbound -Protocol TCP -LocalPort 135 -Action Allow
New-NetFirewallRule -DisplayName "OPC DCOM IN (\$ports)" -Direction Inbound -Protocol TCP -LocalPort \$ports -RemoteAddress \$clients -Action Allow
Regras outbound (se a política exigir controle de saída)
New-NetFirewallRule -DisplayName "OPC RPC 135 OUT" -Direction Outbound -Protocol TCP -RemotePort 135 -Action Allow
New-NetFirewallRule -DisplayName "OPC DCOM OUT (\$ports)" -Direction Outbound -Protocol TCP -RemotePort \$ports -RemoteAddress \$clients -Action Allow
Auditoria rápida
Get-NetFirewallRule -DisplayName "OPC\*" | Format-Table DisplayName, Enabled, Direction, Action
Conclusão
OPC Classic no Windows Server 2022 continuará funcionando de forma estável e segura quando você:
- Define corretamente Identidade e permissões DCOM,
- Controla o intervalo de portas e ajustes do firewall,
- Padroniza contas/grupos e monitora eventos,
- Planeja a migração para OPC UA no médio prazo.
Seguindo o passo a passo e as boas práticas acima, você reduz drasticamente erros de DistributedCOM, evita surpresas após atualizações e mantém a operação industrial previsível e auditável.