Protección de una conexión WMI remota

Para conectarse a un equipo remoto mediante WMI, asegúrese de que estén habilitadas las configuraciones correctas de DCOM y de seguridad del espacio de nombres WMI para la conexión.

WMI tiene configuraciones predeterminadas de suplantación, autenticación y servicio de autenticación (NTLM o Kerberos) que requiere el equipo de destino en una conexión remota. La máquina local puede usar valores predeterminados diferentes que el sistema de destino no acepta. Puede cambiar esta configuración en la llamada de conexión.

En este tema se describen las secciones siguientes:

Configuración de suplantación y autenticación de DCOM para WMI

WMI tiene configuraciones predeterminadas de suplantación, autenticación y servicio de autenticación (NTLM o Kerberos) de DCOM que requiere un sistema remoto. El sistema local puede usar valores predeterminados diferentes que el sistema remoto de destino no acepta. Puede cambiar esta configuración en la llamada de conexión. Para obtener más información, consulte Configuración de la seguridad del proceso de aplicación cliente. Sin embargo, para el servicio de autenticación, se recomienda especificar RPC_C_AUTHN_DEFAULT y permitir que DCOM elija el servicio adecuado para el equipo de destino.

Puede proporcionar la configuración en parámetros para las llamadas a CoInitializeSecurity o CoSetProxyBlanket en C++. En los scripts, puede establecer la configuración de seguridad en las llamadas a SWbemLocator.ConnectServer, en un objeto SWbemSecurity o en la cadena de moniker de scripting.

Para obtener una lista de todas las constantes de suplantación de C++, consulte Establecimiento del nivel de seguridad de proceso predeterminado mediante C++. Para más información sobre las constantes de Visual Basic y las cadenas de scripting para usar la conexión de moniker, consulte Establecimiento del nivel de seguridad de proceso predeterminado mediante VBScript.

En la tabla siguiente se enumeran las opciones predeterminadas de suplantación, autenticación y servicio de autenticación de DCOM requeridas por el equipo de destino (equipo B) en una conexión remota. Para obtener más información, consulte Protección de una conexión WMI remota.

Sistema operativo del equipo B Cadena de scripting de nivel de suplantación Cadena de scripting de nivel de autenticación Servicio de autenticación
Windows Vista o posterior Impersonate Pkt Kerberos

 

Las conexiones remotas WMI se ven afectadas por el Control de cuentas de usuario (UAC) y el Firewall de Windows. Para obtener más información, consulte Conexión a WMI de forma remota a partir de Vista y Conexión a través del Firewall de Windows.

Tenga en cuenta que la conexión a WMI en el equipo local tiene un nivel de autenticación predeterminado de PktPrivacy.

Establecimiento de la seguridad de DCOM para permitir que un usuario acceda a un equipo de forma remota

La seguridad de WMI está relacionada con la conexión a un espacio de nombres WMI. WMI usa DCOM para controlar las llamadas remotas. Uno de los motivos por los que no se puede conectar a un equipo remoto es un error DCOM (error "Acceso DCOM denegado" decimal -2147024891 o hexadecimal 0x80070005). Para obtener más información sobre la seguridad de DCOM en WMI para aplicaciones de C++, vea Establecimiento de la seguridad del proceso de aplicación cliente.

Puede configurar las opciones de DCOM para WMI mediante la utilidad de configuración de DCOM (DCOMCnfg.exe) que se encuentra en Herramientas administrativas en el Panel de control. Esta utilidad expone la configuración que permite a determinados usuarios conectarse al equipo de forma remota a través de DCOM. Los miembros del grupo Administradores pueden conectarse de forma remota al equipo de forma predeterminada. Con esta utilidad puede establecer la seguridad para iniciar el servicio WMI, acceder a él y configurarlo.

En el procedimiento siguiente se describe cómo conceder permisos de activación e inicio remoto de DCOM para determinados usuarios y grupos. Si el equipo A se conecta de forma remota al equipo B, puede establecer estos permisos en el equipo B para permitir que un usuario o grupo que no forme parte del grupo Administradores del equipo B ejecute llamadas de inicio y activación de DCOM en el equipo B.

Para conceder permisos de activación y ejecución remota de DCOM para un usuario o grupo

  1. Haga clic en Inicio y en Ejecutar, escriba DCOMCNFG y, a continuación, haga clic en Aceptar.

  2. En el cuadro de diálogo Servicios de componentes, expanda Servicios de componentes, expanda Equipos y, a continuación, haga clic con el botón derecho en Mi equipo y haga clic en Propiedades.

  3. En el cuadro de diálogo Propiedades de mi equipo, haga clic en la pestaña Seguridad COM.

  4. En Permisos de inicio y activación, haga clic en Editar límites.

  5. En el cuadro de diálogo Permiso de inicio, siga estos pasos si el nombre o el grupo no aparece en la lista Grupos o nombres de usuario:

    1. En el cuadro de diálogo Permiso de inicio, haga clic en Agregar.
    2. En el cuadro de diálogo Seleccionar usuarios, equipos o grupos, agregue su nombre y el grupo en Escriba los nombres de objeto que desea seleccionar y, a continuación, haga clic en Aceptar.
  6. En el cuadro de diálogo Permisos de inicio, seleccione el usuario y el grupo en el cuadro Nombres de grupo o usuario. En la columna Permitir de Permisos de usuario, seleccione Ejecución remota y Activación remota y luego haga clic en Aceptar.

En el procedimiento siguiente se describe cómo conceder permisos de acceso remoto de DCOM para determinados usuarios y grupos. Si el equipo A se conecta de forma remota al equipo B, puede establecer estos permisos en el equipo B para permitir que un usuario o grupo que no forme parte del grupo Administradores del equipo B se conecte al equipo B.

Para conceder permisos de acceso remoto de DCOM

  1. Haga clic en Inicio y en Ejecutar, escriba DCOMCNFG y, a continuación, haga clic en Aceptar.
  2. En el cuadro de diálogo Servicios de componentes, expanda Servicios de componentes, expanda Equipos y, a continuación, haga clic con el botón derecho en Mi equipo y haga clic en Propiedades.
  3. En el cuadro de diálogo Propiedades de mi equipo, haga clic en la pestaña Seguridad COM.
  4. En Permisos de acceso, haga clic en Editar límites.
  5. En el cuadro de diálogo Permiso de acceso, seleccione el nombre de INICIO DE SESIÓN ANÓNIMO en el cuadro Nombres de grupo o usuario . En la columna Permitir en Permisos para usuario, seleccione Acceso remoto y, a continuación, haga clic en Aceptar.

Concesión de permiso para que los usuarios accedan a un espacio de nombres WMI específico

Puede permitir o no permitir el acceso de los usuarios a un espacio de nombres WMI específico estableciendo el permiso "Llamada remota habilitada" en el Control WMI para un espacio de nombres. Si un usuario intenta conectarse a un espacio de nombres al que no tiene acceso, recibirá un error 0x80041003. De forma predeterminada, este permiso solo está habilitado para los administradores. Un administrador puede habilitar el acceso remoto a espacios de nombres WMI específicos para un usuario no administrativo.

En el procedimiento siguiente se establecen los permisos de habilitación remota para un usuario que no es administrador.

Para establecer permisos de habilitación remota

  1. Conéctese al equipo remoto mediante el control WMI.

    Para obtener más información sobre el control WMI, vea Establecimiento de la seguridad del espacio de nombres con el control WMI.

  2. Abra la pestaña Seguridad, seleccione el espacio de nombres RootCIMV2 y, después, haga clic en Seguridad.

  3. Busque la cuenta adecuada y active Llamada remota habilitada en la lista Permisos.

Establecimiento de la seguridad del espacio de nombres para requerir el cifrado de datos en conexiones remotas

Un administrador o un archivo MOF pueden configurar un espacio de nombres WMI para que no se devuelvan datos a menos que use la privacidad de paquetes (RPC_C_AUTHN_LEVEL_PKT_PRIVACY o PktPrivacy como un moniker en un script) en una conexión a ese espacio de nombres. Esto garantiza que los datos se cifren a medida que cruzan la red. Si intenta establecer un nivel de autenticación inferior, recibirá un mensaje de acceso denegado. Para más información, vea Exigencia de una conexión cifrada a un espacio de nombres.

En el siguiente ejemplo de código de VBScript se muestra cómo conectarse a un espacio de nombres cifrado mediante "pktPrivacy".

strComputer = "RemoteComputer"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _
                              & strComputer & "\root\EncryptedNamespace")

Delegación con WMI

Creación de procesos de forma remota con WMI

Protección de clientes y proveedores de C++

Protección de clientes de scripting