Cómo configurar RPC para usar determinados puertos y cómo asegurar esos puertos con IPsec

Seleccione idioma Seleccione idioma
Id. de artículo: 908472 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

El artículo describe el modo de configurar RPC para usar un intervalo específico de puertos dinámicos, así como la manera de asegurar los puertos de ese intervalo mediante una directiva de seguridad de protocolo de Internet (IPsec). RPC usa de modo predeterminado los puertos del intervalo de puertos efímeros (1024-5000) cuando asigna puertos a las aplicaciones RPC que tienen que escuchar en un punto final de TCP. Por causa de este comportamiento, restringir el acceso a estos puertos puede ser un reto para los administradores de red. El artículo analiza formas de reducir el número de puertos a disposición de las aplicaciones RPC y el modo de restringir el acceso a estos puertos usando una directiva IPsec basada en el Registro.

Como los pasos de este artículo implican cambios en todo el equipo que requieren que éste se reinicie, todos esos pasos deberán darse primero en un entorno productivo, con el objetivo de identificar cualquier problema de compatibilidad entre aplicaciones que se pueda producir como consecuencia de dichos cambios.

Más información

Hay varias tareas de configuración que se han de realizar para reubicar, reducir y restringir el acceso a los puertos RPC.

En primer lugar, el intervalo de puertos dinámicos de RPC deberá restringirse a un número más pequeño y manejable que facilite el bloqueo mediante un servidor de seguridad (firewall) o una directiva IPsec. De modo predeterminado, RPC asigna dinámicamente puertos en el intervalo de 1024 a 5000 para extremos que no especifican un puerto en el que escuchar.

Nota Este artículo usa el intervalo 5001 a 5021 de puertos, para evitar el agotamiento de los puertos efímeros y para reducir de 3976 a 20 el número de puertos disponibles para los puntos extremos de RPC.

Después se debe crear una directiva IPsec que restrinja el acceso a este intervalo de puertos, negando el acceso a todos los host de la red.

Finalmente. la directiva IPsec se puede actualizar para dar a determinadas direcciones IP o subredes acceso a los puertos RPC y para excluir todos los demás.

Para iniciar la tarea de reconfigurar el intervalo de puertos dinámicos RPC, descargue la herramienta de configuración de RPC (RPCCfg.exe) y cópiela después en la estación de trabajo o en el servidor que se va a reconfigurar. Para ello, visite el siguiente sitio web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=en
Para realizar las sucesivas tareas de crear una directiva IPsec, descargar la herramienta de directivas de seguridad de Protocolo Internet (Ipsecpol.exe) y copiarla después en la estación de trabajo o el servidor que se va a reconfigurar. Para ello, visite el siguiente sitio web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7D40460C-A069-412E-A015-A2AB904B7361
Nota para crear una directiva IPsec para Microsoft Windows XP o una versión posterior del sistema operativo Windows, use Ipseccmd.exe, que forma parte de las herramientas de soporte técnico de Windows XP. El uso y la sintaxis de IPseccmd.exe son los mismo que los de Ipsecpol.exe. Para obtener más información acerca de las herramientas de soporte técnico de Windows XP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
838079 Herramientas de soporte técnico del Service Pack 2 de Windows XP

Reubicar y reducir el intervalo de puertos dinámicos RPC utilizando RPCCfg.exe

Para reubicar y reducir el intervalo de puertos dinámicos RPC utilizando RPCCfg.exe, siga estos pasos:
  1. Copie RPCCfg.exe en el servidor que se va a configurar
  2. En el símbolo del sistema, escriba rpccfg.exe -pe 5001-5021 -d 0.
    Nota: se recomienda el uso de este intervalo de puertos RPC por puntos extremos de RPC porque no es probable que los puertos de este intervalo sean asignados para ser usados por otras aplicaciones. De manera predeterminada, RPC usa el intervalo de puertos 1024 a 5000 para asignar puertos a los extremos. Sin embargo, los puertos de este intervalo se asignan también dinámicamente para que el sistema operativo Windows los use para las aplicaciones de sockets de Windows y se pueden agotar en los servidores de mucho uso, como los servidores terminales y los servicios de nivel medio que hacen muchas llamadas de salida a sistemas remotos.

    Por ejemplo, cuando Internet Explorer se pone en contacto con un servidor Web en el puerto 80, escucha la respuesta del servidor en un puerto del intervalo 1024-5000. Un servidor COM de nivel medio que hace llamadas de salida a otros servidores remotos también usa un puerto de este intervalo para la respuesta entrante a esa llamada. Mover el intervalo de puertos que usa RPC para sus extremos al intervalo de puertos que empieza en el 5001 reducirá las posibilidades de que esos puertos sean usados por otras aplicaciones.
    Para obtener más información sobre el uso de puertos efímeros en los sistemas operativos Windows, visite los siguientes sitios Web de Microsoft.

Utilice una directiva de firewall o IPsec para bloquear el acceso a los puertos vulnerables del host afectado

En los comandos de la siguiente sección, el texto que aparece entre los signos de tanto por ciento (%) representa el texto del comando que debe introducir la persona que crea la directiva IPsec. Por ejemplo, si aparece el texto "%IPSECTOOL%", la persona que crea la directiva debería sustituir el texto del modo siguiente:
  • Para Windows 2000, sustituya "%IPSECTOOL%" por "ipsecpol.exe."
  • Para Windows XP o una versión posterior de Windows, sustituya "%IPSECTOOL%" por "ipseccmd.exe."
Para obtener más información acerca de cómo usar IPsec para bloquear puertos, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
813878 Cómo bloquear determinados protocolos de red y puertos mediante IPSec

Bloquear el acceso al asignador de extremos RPC para todas las direcciones IP

Para bloquear el acceso al asignador de extremos RPC para todas las direcciones IP, use la sintaxis siguiente.

Nota: en Windows XP y en los sistemas operativos posteriores, use Ipseccmd.exe. En Windows 2000, use Ipsecpol.exe (Windows 2000).
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
Nota: no escriba "%IPSECTOOL%" en este comando. "%IPSECTOOL%" trata de representar la parte del comando que debe ser personalizada. Por ejemplo, en Windows 2000, escriba el comando siguiente desde un directorio que contenga Ipsecpol.exe para bloquear todo el acceso entrante a TCP 135:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
En Windows XP y en los sistemas operativos posteriores, escriba el comando siguiente desde un directorio que contenga Ipseccmd.exe para bloquear todo el acceso de entrada a TCP 135:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK

Bloquear el acceso al intervalo de puertos dinámicos RPC para todas las direcciones IP

Para bloquear el acceso al intervalo de puertos dinámicos RPC para todas las direcciones IP, use la sintaxis siguiente.

Nota: en Windows XP y en los sistemas operativos posteriores, use Ipseccmd.exe. En Windows 2000, use Ipsecpol.exe (Windows 2000).
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP %PORT% Rule" -f *=0:%PORT%:TCP -n BLOCK
Nota: no escriba "%IPSECTOOL%" ni "%PORT%" en este comando. "%IPSECTOOL%" y "%PORT%" tratan de representar partes del comando que deben ser personalizadas. Por ejemplo, escriba el comando siguiente en los hosts de Windows 2000 para bloquear todo el acceso entrante a TCP 5001:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
Para bloquear todo el acceso entrante a TCP 5001, escriba el comando siguiente en los hosts de Windows XP y en los de los sistemas operativos Windows posteriores:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
Repita este comando por cada puerto RPC que deba bloquearse cambiando el número de puerto enumerado en este comando. Los puertos que deben ser bloqueados están en el intervalo 5001-5021.

Nota No olvide cambiar el número de puerto en el nombre de la regla (el modificador -r) y en el filtro (el modificador -f).

Opcional: Dar acceso al asignador de extremos RPC para subredes específicas cuando es acceso es necesario

Si debe dar acceso a subredes específicas a los puertos RPC restringidos, primero debe dar a esas subredes acceso al asignador de extremos RPC que bloqueó antes. Para conceder a una subred específica acceso al asignador de extremos de RPC, use el comando siguiente:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP 135 from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:135:TCP -n PASS
Nota: en este comando, se aplican las siguientes instrucciones:
  • "%IPSECTOOL%" representa el comando que se va a usar. Este comando es "ipsecpol.exe" o "ipseccmd.exe". Que sea el uno o el otro dependerá del sistema operativo que está configurando.
  • "%SUBNET%" representa la subred de IP remota a la que quiere dar acceso, por ejemplo, 10.1.1.0.
  • "%MASK%" representa la máscara de subred que se va a usar, 255.255.255.0.

    Por ejemplo, el comando siguiente habilita a todos los host de la subred 10.1.1.0/255.255.255.0 para conectar con el puerto TCP 135. Todos los otros host verán denegadas sus conexiones por la regla del bloque predeterminado que se creó antes para este puerto.
    %IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP Port 135 from 10.1.1.0 Rule" -f 10.1.1.0/255.255.255.0=0:135:TCP -n PASS

Opcional: Dar acceso al nuevo intervalo de puertos dinámicos RPC para subredes específicas si se necesita el acceso

Cada subred a la que anteriormente se dio acceso al asignador de extremos RPC debe recibir también acceso a todos los puertos del intervalo de puertos dinámicos RPC (5001-5021).

Si permite que las subredes lleguen al asignador de extremos RPC, pero no al intervalo de puertos dinámicos, la aplicación puede dejar de responder o puede experimentar otros problemas.

El comando siguiente da a una subred específica acceso a un puerto del nuevo intervalo de puertos dinámicos RPC:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP %PORT% from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:%PORT%:TCP -n PASS
Nota: en este comando, se aplican las siguientes instrucciones:
  • "%IPSECTOOL%" representa el comando que se va a usar. Este comando es "ipsecpol.exe" o "ipseccmd.exe". Que sea el uno o el otro dependerá del sistema operativo que está configurando.
  • "%PORT%" representa el puerto del intervalo de puertos dinámicos al que da acceso.
  • "%SUBNET%" representa la subred de IP remota a la que quiere dar acceso, por ejemplo, 10.1.1.0.
  • " %MASK%" representa la máscara de subred que se va a usar, 255.255.255.0.

    Por ejemplo, el comando siguiente habilita a todos los host de la subred 10.1.1.0/255.255.255.0 para conectar con el puerto TCP 5001. Todos los otros host verán denegadas sus conexiones por la regla del bloque predeterminado que se creó antes para este puerto.
    %IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP Port 5001 from 10.1.1.0 Rule" -f 10.1.1.0/255.255.255.0=0:5001:TCP -n PASS
Nota Este comando debería repetirse por cada subred y puerto del nuevo intervalo de puertos dinámicos.

Asignar la directiva IPsec

Nota: los comandos de esta sección surten efecto inmediatamente.

Después de crear todas las reglas de bloqueo y todas las reglas de permiso opcional para los puertos RPC configurados, asigne la directiva usando el comando siguiente:
%IPSECTOOL% -w REG -p "Block RPC Ports" ?x
Nota: para quitar inmediatamente la asignación de la directiva, utilice el comando siguiente:
%IPSECTOOL% -w REG -p "Block RPC Ports" ?y
Nota: para eliminar la directiva del Registro, use el comando siguiente:
%IPSECTOOL% -w REG -p "Block RPC Ports" -o
Debe reiniciar el host para que los cambios surtan efecto.

Notas
  • Los cambios en la configuración de RPC exigen reiniciar.
  • Los cambios en la directiva IPsec surten efecto inmediatamente y no exigen reiniciar.
Después de reiniciar la estación de trabajo o el servidor, cualquier interfaz RPC que use la secuencia de protocolo ncacn_ip_tcp y no especifique un puerto TCP concreto al que enlazar tendrá un puerto asignado entre los de ese intervalo por el motor en tiempo de ejecución de RPC cuando se inicie el servidor de RPC.

Nota El servidor puede requerir más de 20 puertos TCP. Puede usar el comando rpcdump.exe para contar el número de extremos RPC que están enlazados a un puerto TCP y para incrementar el número si debe hacerlo. Para obtener más información acerca de cómo obtener la herramienta RPC Dump, visite el siguiente sitio Web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd

Propiedades

Id. de artículo: 908472 - Última revisión: viernes, 06 de noviembre de 2009 - Versión: 6.0
La información de este artículo se refiere a:
  • Microsoft Windows Server 2003 Service Pack 1 sobre las siguientes plataformas
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows 2000 Server SP4 sobre las siguientes plataformas
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
  • Microsoft Windows XP Home Edition SP2
  • Microsoft Windows XP Media Center Edition 2005
  • Microsoft Windows XP Professional SP2
  • Microsoft Windows XP Tablet PC Edition 2005
Palabras clave: 
kbinfo KB908472

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com