Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El servicio de Llamada a procedimiento remoto (RPC) protege las interfaces RPC de forma predeterminada para reducir ataques. La clave del Registro RestrictRemoteClients
permite modificar el comportamiento de todas las interfaces RPC del sistema y se puede usar para eliminar el acceso anónimo remoto a las interfaces RPC del sistema, con algunas excepciones. Puede aplicar otros controles de interfaz mediante la clave del Registro EnableAuthEpResolution
de la que se habla en este artículo. Tanto los desarrolladores de aplicaciones RPC como los administradores del sistema pueden configurar restricciones de interfaz RPC.
Prerrequisitos
Cuando se usa RestrictRemoteClients
en el servidor:
Los clientes RPC deben usar la seguridad RPC al ponerse en contacto con las aplicaciones de servidor, que es el mejor método para mitigar las amenazas de seguridad.
Excluya la configuración RPC de requerir autenticación estableciendo la marca RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH durante el registro. Al hacerlo, configura RPC para permitir conexiones anónimas a las aplicaciones.
Mitigación de amenazas RestrictRemoteClients
La habilitación de RestrictRemoteClients
es útil para mitigar los gusanos que dependen de saturaciones de búfer que se puedan aprovechar de forma remota a través de conexiones anónimas. Es posible que las aplicaciones RPC que esperan recibir llamadas desde clientes RPC anónimos remotos no se ejecuten correctamente al usar esta característica. Como resultado, las aplicaciones que usan DCOM (modelo de objetos de componente distribuido) podrían no funcionar correctamente si se establece este valor.
Las llamadas RPC que usan protocolos sin conexión producen un error si esta clave está habilitada. Las llamadas RPC seguras a través de protocolos sin conexión, como UDP (Protocolo de datagramas de usuario) e IPX (Intercambio de paquetes de trabajo de Internet), usan un nivel inferior de seguridad en comparación con los protocolos orientados a la conexión. En concreto, ncadg_ip_udp
y ncadg_ipx
se consideran menos seguros. Para los fines de esta directiva, estas llamadas siempre se consideran no seguras.
Para permitir llamadas de cliente RPC mediante protocolos sin conexión, mantenga el valor RestrictRemoteClients
establecido en deshabilitado.
Restricciones para clientes RPC
Cuando se registra una interfaz mediante RpcServerRegisterIf
, RPC permite que la aplicación de servidor restrinja el acceso a la interfaz a través de una devolución de llamada de seguridad. La clave del Registro RestrictRemoteClients
obliga a RPC a realizar comprobaciones de seguridad adicionales para todas las interfaces, incluso si la interfaz no tiene ninguna devolución de llamada de seguridad registrada.
Los clientes RPC que usan la secuencia de protocolo de canalización con nombre (ncacn_np
) están exentos de todas las restricciones descritas en esta sección. La secuencia de protocolo de canalización con nombre no se puede restringir debido a problemas significativos de compatibilidad con versiones anteriores.
RestrictRemoteClients
también se puede controlar mediante programación en el encabezado rpcdce.h de API (Interfaz de programación de aplicaciones).
Configuración de RestrictRemoteClients
Para editar estas directivas mediante el editor de GPO (Objeto de directiva de grupo):
Seleccione Tipo de inicio>gpedit.msc> presione Entrar para abrir el Editor de directivas de grupo local.
Para habilitar el equivalente de configuración
RestrictRemoteClients
, vaya a Configuración del equipo\Plantillas administrativas\Sistema\Llamada a procedimiento remoto\Restricciones para clientes RPC no autenticados y, a continuación, seleccione una de las siguientes opciones:- Deshabilitado: esta configuración es el valor predeterminado para las SKU de servidor. Corresponde al valor RPC_RESTRICT_REMOTE_CLIENT_NONE en rpcdce.h y es responsabilidad de la aplicación de servidor imponer restricciones de RPC adecuadas.
- Autenticado - corresponde al valor RPC_RESTRICT_REMOTE_CLIENT_DEFAULT en rpcdce.h. Permite que solo los clientes de RPC autenticados se conecten a los servidores de RPC que se ejecutan en el equipo donde se aplica la configuración de directiva. El tiempo de ejecución de RPC rechaza las llamadas anónimas. Si una interfaz registra una devolución de llamada de seguridad y proporciona la marca RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH, esta restricción no se aplica a esa interfaz.
- Autenticado sin excepciones1 : corresponde al valor RPC_RESTRICT_REMOTE_CLIENT_HIGH en rpcdce.h. Permite que solo los clientes de RPC autenticados se conecten a los servidores de RPC que se ejecutan en el equipo donde se aplica la configuración de directiva. No se permiten excepciones cuando este valor se establece puesto que el sistema no puede recibir llamadas anónimas remotas mediante RPC.
Cualquier cambio en cualquiera de estas opciones de configuración requiere que un reinicio del sistema surta efecto.
Precaución
¹ No use este valor sin pruebas significativas. Para obtener más información, vea Restricciones para clientes RPC no autenticados.
HabilitarResoluciónDeAutenticaciónEP
La clave EnableAuthEpResolution
permite que el tiempo de ejecución del cliente RPC use NTLM (NT LAN Manager) para autenticarse en el asignador de extremos cuando está habilitado. Esta consulta autenticada solo tiene lugar si la llamada de cliente RPC real usa la autenticación RPC.
Los clientes RPC realizan llamadas a un servidor RPC que tiene un punto de conexión dinámico registrado con la autenticación de cliente del asignador de puntos de conexión RPC habilitada. Estas llamadas se consultan en nombre de las llamadas autenticadas mediante la autenticación NTLM.
Los clientes RPC que intentan realizar una llamada mediante un punto de conexión dinámico consultan al asignador de puntos de conexión RPC en el servidor para determinar a qué punto de conexión debe conectarse. Esta consulta se realiza de forma anónima, incluso si la llamada del cliente RPC se realiza mediante seguridad RPC. La interfaz del Asignador de extremos de RPC no es accesible de forma anónima si la configuración RestrictRemoteClients
está habilitada.
Configuración de EnableAuthEpResolution
Para editar estas directivas mediante el editor de GPO (Objeto de directiva de grupo):
Seleccione Tipo de inicio>gpedit.msc> presione Entrar para abrir el Editor de directivas de grupo local.
Para habilitar el equivalente de la configuración
EnableAuthEpResolution
, vaya a Configuración del equipo\Plantillas administrativas\Sistema\Llamada a procedimiento remoto\Habilitar autenticación de cliente del Asignador de extremos de RPC y, a continuación, seleccione una de las dos opciones disponibles:- Deshabilitado: esta es la configuración predeterminada. Los clientes RPC no se autentican en el servicio de asignador de puntos de conexión, pero pueden comunicarse con el servicio de asignador de puntos de conexión en Windows NT4 Server.
- Habilitado: los clientes de PC se autentican a través del Servicio de asignador de extremos para las llamadas que contienen información de autenticación. Los clientes que realicen llamadas de este tipo no pueden comunicarse con el Servicio de asignador de extremos de Windows NT4 Server.
Cualquier cambio en cualquiera de estas opciones de configuración requiere que un reinicio del sistema surta efecto.
Importante
La siguiente configuración de directiva de grupo que se encuentra en Configuración del equipo\Configuración de Windows\Configuración de seguridad\Directivas locales\Opciones de seguridad no se puede usar con EnableAuthEpResolution
:
- Seguridad de red: Restringir NTLM: tráfico NTLM entrante: "Denegar todas las cuentas"
- Seguridad de red: restringir NTLM: tráfico NTLM saliente hacia servidores remotos: "Denegar todo"
Se recomienda alejarse de NTLM para proteger mejor su entorno. Si se enfrenta a una opción entre restringir NTLM y usar EnableAuthEpResolution
, el enfoque recomendado es restringir NTLM en su entorno.
Otras marcas de registro de interfaz RPC
Estas marcas de registro de interfaz se crean para facilitar que un desarrollador de aplicaciones proteja una interfaz RPC:
RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
Cuando se registra esta marca, el tiempo de ejecución de RPC invoca la devolución de llamada de seguridad registrada para todas las llamadas, independientemente de la configuración de seguridad de llamadas. Sin esta marca, RPC rechaza todas las llamadas no autenticadas antes de que lleguen a la devolución de llamada de seguridad. Esta marca solo funciona cuando se registra una devolución de llamada de seguridad.RPC_IF_SEC_NO_CACHE
Se registra una devolución de llamada de seguridad en una interfaz para restringir el acceso. Normalmente, la devolución de llamada de seguridad suplanta al cliente para comprobar si el cliente tiene derechos suficientes para realizar una llamada a la interfaz. Una vez que una identidad de cliente determinada pasa la devolución de llamada de seguridad, normalmente pasa la misma devolución de llamada de seguridad en los intentos posteriores.El tiempo de ejecución de RPC aprovecha este patrón al recordar cuándo una identidad de cliente individual pasa una devolución de llamada de seguridad. A continuación, omite el callback de seguridad para las llamadas posteriores de ese cliente a la misma interfaz. Esta característica se denomina almacenamiento en caché de devolución de llamada de seguridad y existía desde la familia de sistemas operativos de Microsoft Windows 2000. Puede usar la marca RPC_IF_SEC_NO_CACHE para deshabilitar el almacenamiento en caché de devolución de llamada de seguridad para una interfaz determinada. Lo que resulta útil en caso de que la comprobación de seguridad cambie, posiblemente rechazando una identidad de cliente que se permitía anteriormente.
RPC_IF_LOCAL_ONLY
Cuando se registra una interfaz con esta marca, RPC rechaza las llamadas realizadas por clientes RPC remotos. Además, las llamadas locales a través de todas las secuencias de protocoloncadg_
* y todas las secuencias de protocoloncacn_
* (excepto las canalizaciones con nombre, mediantencacn_np
) también se rechazan. Si se realiza una llamada enncacn_np
, RPC solo permite la llamada si no procede de SRV (Protocolo de ubicación del servicio), que filtra todas las llamadas remotas. Las llamadasNcalrpc
siempre se permiten.
El uso de estas marcas queda a discreción del desarrollador de aplicaciones. Los desarrolladores de aplicaciones RPC se proporcionan con herramientas de seguridad adicionales para ayudar a proteger su interfaz RPC, ya que estas marcas no cambian ninguna aplicación existente o hacen que se ejecuten incorrectamente.