Sumário
Este artigo descreve com configurar o RPC para usar um intervalo de porta dinâmica específico e como ajudar a proteger as portas nesse intervalo usando a diretiva IPsec. Por padrão, o RPC usa portas no intervalo de portas efêmeras (1024-5000) ao atribuir portas aos aplicativos RPC que precisam escutar em um ponto de extremidade TCP. Este comportamento pode tornar a restrição do acesso às portas um desafio para administradores de rede. Este artigo descreve maneiras para reduzir o número de portas disponíveis aos aplicativos RPC e como restringir o acesso às portas usando uma diretiva IPsec com base no Registro.
Como as etapas neste artigo envolvem alterações em todo o computador, que exigem o reinício do computador, todas estas etapas devem ser realizadas primeiro nos ambientes que não são de produção para identificar os problemas de compatibilidade com aplicativos que possam ocorrer como resultado das alterações.Mais Informações
Existem várias configurações que devem ser concluídas para realocar, reduzir e restringir o acesso às portas RPC.
Primeiro, o intervalo de porta dinâmica RPC deve ser restrito a um intervalo menor e mais gerenciável, mais fácil de bloquear usando um firewall ou uma diretiva IPsec. Por padrão, o RPC aloca dinamicamente as portas no intervalo de 1024 a 5000 para pontos de extremidade que não especificam uma porta na qual ouvir. Observação Este artigo usa o intervalo de porta de 5001 a 5021 para evitar o uso de todas as portas efêmeras e para reduzir o número de portas disponíveis para os pontos de extremidade RPC de 3.976 a 20. Em seguida, uma diretiva IPsec deve ser criada para restringir o acesso a esse intervalo de portas de modo a negar o acesso para todos os hosts na rede. Por último, a diretiva IPsec pode ser atualizada para fornecer, a determinados endereços IP ou sub-rede de redes, acesso às portas RPC bloqueadas e excluir todas as outras. Para iniciar a tarefa de reconfiguração do intervalo de porta RPC dinâmica, baixe a Ferramenta de configuração RPC (RPCCfg.exe) e a copie na estação de trabalho ou no servidor que será reconfigurado. Para fazer isso, visite o seguinte site da Microsoft:http://www.microsoft.com/downloads/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=enPara executar as tarefas subsequentes referentes à criação de uma diretiva de IPsec, baixe a Ferramenta de diretivas do Internet Protocol Security (Ipsecpol.exe) e copie-a para a estação de trabalho ou para o servidor que será reconfigurado. Para fazer isto, visite o seguinte site da Microsoft (em inglês):
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7D40460C-A069-412E-A015-A2AB904B7361Observação Para criar uma diretiva IPsec para o Microsoft Windows XP ou para uma versão posterior do sistema operacional Windows, use o Ipseccmd.exe. O Ipseccmd.exe faz parte das ferramentas de suporte do Windows XP. A sintaxe e o uso do IPseccmd.exe são os mesmos que a sintaxe e o uso do Ipsecpol.exe. Para obter mais informações sobre as ferramentas de suporte do Windows XP, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
838079 Ferramentas de suporte do Windows XP Service Pack 2
Realocar e reduzir o intervalo de porta dinâmica RPC usando o RPCCfg.exe
Para realocar e reduzir o intervalo de porta dinâmica RPC usando o RPCCfg.exe, execute as seguintes etapas:
-
Copie o RPCCfg.exe no servidor que será reconfigurado
-
No prompt de comando, digite rpccfg.exe -pe 5001-5021 -d 0.
Observação Esse intervalo de porta é aconselhável para usar pontos de extremidade RPC, porque as portas nesse intervalo não são alocadas para o uso de outros aplicativos. Por padrão, o RPC usa o intervalo de porta de 1024 a 5000 para alocação de portas para pontos de extremidade. No entanto, as portas nesse intervalo também são alocadas dinamicamente para o uso do sistema operacional do Windows para todos os aplicativos de soquetes do Windows e podem ser totalmente usadas em servidores com bastante uso como terminal servers e servidores de camada central, que fazem chamadas externas para sistemas remotos. Por exemplo, quando o Internet Explorer contata um servidor Web na porta 80, ele escuta em uma porta no intervalo 1024-5000 para esperar a resposta do servidor. Um servidor COM de camada central que faz chamadas externas para outros servidores remotos também usa uma porta nesse intervalo para o recebimento da resposta da chamada. Se você mover o intervalo de portas que o RPC usa para seus pontos de extremidade para o intervalo de portas 5001, a chance de essas portas serem usadas por outros aplicativos será reduzida. Para obter mais informações sobre o uso de portas efêmeras nos sistemas operacionais Windows, visite os seguintes sites da Microsoft:-
Para Windows 2000:
-
Para Windows Server 2003:
http://technet.microsoft.com/pt-br/library/cc758746(WS.10).aspx
-
Use uma diretiva de IPsec ou firewall para bloquear o acesso às portas vulneráveis no host afetado
Nos comandos da seção a seguir, qualquer texto que apareça entre o sinal de percentual (%) representa o texto no comando que precisa ser digitado pela pessoa que criar a diretiva IPsec. Por exemplo, sempre que o texto "%IPSECTOOL%" aparecer, a pessoa que cria a diretiva deve substituir esse texto da seguinte maneira:
-
Para o Windows 2000, substitua "%IPSECTOOL%" por "ipsecpol.exe."
-
Para o Windows XP ou uma versão posterior do Windows, substitua "%IPSECTOOL%" por "ipseccmd.exe."
Para obter mais informações sobre como usar o IPsec para bloquear portas, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
813878 Como bloquear protocolos de rede específicos e portas usando o IPSec
Bloquear o acesso ao Mapeador de pontos finais RPC para todos os endereços IP
Para bloquear o acesso para o Mapeador de pontos finais RPC para todos os endereços IP, use a seguinte sintaxe.
Observação No Windows XP e nos sistemas operacionais posteriores, use o Ipseccmd.exe. No Windows 2000, use o Ipsecpol.exe (Windows 2000).%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
Observação Não digite "%IPSECTOOL%" nesse comando. "%IPSECTOOL%" é destinada para a representação da parte do comando que deve ser personalizada. Por exemplo, no Windows 2000, digite o comando a seguir em um diretório que contenha Ipsecpol.exe para bloquear todo o acesso de entrada a TCP 135:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
No Windows XP e em sistemas operacionais posteriores, digite o comando a seguir em um diretório que contenha Ipseccmd.exe para bloquear todo o acesso 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 o acesso ao intervalo de porta dinâmica RPC para todos os endereços IP
Para bloquear o acesso ao intervalo de porta dinâmica RPC para todos os endereços IP, use a sintaxe a seguir.
Observação No Windows XP e nos sistemas operacionais posteriores, use o Ipseccmd.exe. No Windows 2000, use o Ipsecpol.exe (Windows 2000).%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP %PORT% Rule" -f *=0:%PORT%:TCP -n BLOCK
Observação Não digite "%IPSECTOOL%" ou "%PORT%" nesse comando. "%IPSECTOOL%" e "%PORT%" destinam-se à representação das partes do comando que devem ser personalizadas. Por exemplo, digite o seguinte comando nos hosts do Windows 2000 para bloquear todo acesso de entrada para 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 o acesso de entrada para TCP 5001, digite o comando a seguir nos hosts do Windows XP e nos hosts de sistemas operacionais Windows posteriores:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
Repita esse comando para cada porta RPC que deve ser bloqueada alterando o número da porta listado nesse comando. As portas que devem ser bloqueadas estão no intervalo 5001-5021.
Observação Não se esqueça de alterar o número da porta no nome da regra (a opção -r) e no filtro (a opção -f).Opcional: fornecer acesso ao Mapeador de pontos finais RPC para sub-redes específicas se o acesso for necessário
Se for necessário fornecer as sub-redes o acesso às portas RPC restritas, será necessário fornecer a essas sub-redes o acesso ao Mapeador de pontos finais RPC bloqueado anteriormente. Para fornecer uma subrede específica de acesso ao mapeador de ponto de extremidade RPC, use o seguinte comando:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP 135 from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:135:TCP -n PASS
Observação Nesse comando, as seguintes declarações se aplicam:
-
"%IPSECTOOL%" representa o comando a ser usado. Esse comando pode ser "ipsecpol.exe" ou "ipseccmd.exe". O comando usado depende de qual sistema operacional você está configurando.
-
"%SUBNET%" representa a sub-rede IP remota a qual você deseja fornecer acesso, por exemplo, 10.1.1.0.
-
"%MASK%" representa a máscara de sub-rede a ser usada, por exemplo, 255.255.255.0.
Por exemplo, o seguinte comando habilita que todos os hosts da sub-rede 10.1.1.0/255.255.255.0 se conectem à porta TCP 135. Todos os outros hosts terão suas conexões negadas pela regra de bloqueio padrão, criada anteriormente para esta porta.%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: fornecer acesso ao novo intervalo de porta dinâmica RPC para sub-redes específicas se o acesso for negado
Cada sub-rede que recebeu acesso ao Mapeador de pontos finais RPC anteriormente, também devem receber acesso a todas as portas no novo intervalo de porta dinâmica RPC (5001-5021).
Se você habilitar as sub-redes para acessarem o Mapeador de pontos finais RPC, mas não o intervalo de porta dinâmica, o aplicativo poderá parar de responder ou outros problemas poderão ocorrer. O seguinte comando fornece a uma sub-rede específica ao acesso a uma porta no novo intervalo de porta dinâmica RPC:%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP %PORT% from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:%PORT%:TCP -n PASS
Observação Nesse comando, as seguintes declarações se aplicam:
-
"%IPSECTOOL%" representa o comando a ser usado. Esse comando pode ser "ipsecpol.exe" ou "ipseccmd.exe". O comando usado depende de qual sistema operacional você está configurando.
-
"%PORT%" representa a porta no intervalo de porta dinâmica para o qual fornecer acesso.
-
"%SUBNET%" representa a sub-rede IP remota a qual você deseja fornecer acesso, por exemplo, 10.1.1.0.
-
"%MASK%" representa a máscara de sub-rede a ser usada, por exemplo, 255.255.255.0.
Por exemplo, o seguinte comando habilita que todos os hosts da sub-rede 10.1.1.0/255.255.255.0 se conectem à porta TCP 5001. Todos os outros hosts terão suas conexões negadas pela regra de bloqueio padrão, criada anteriormente para esta porta.%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
Observação Esse comando deve ser repetido para cada sub-rede e cada porta no novo intervalo de porta RPC dinâmica.
Atribuir a diretiva IPsec
Observação Os comandos nesta seção têm efeito imediato.
Após criar todas as regras de bloqueio e todas as regras de permissão opcionais para as portas RPC configuradas, atribua a diretiva usando o seguinte comando:%IPSECTOOL% -w REG -p "Block RPC Ports" –x
Observação Para desatribuir a diretiva imediatamente, use o seguinte comando:
%IPSECTOOL% -w REG -p "Block RPC Ports" –y
Observação Para excluir a diretiva do Registro, use o seguinte comando:
%IPSECTOOL% -w REG -p "Block RPC Ports" -o
É necessário reiniciar o host para que as alterações tenham efeito.
Observações-
As alterações na configuração RPC necessitam de uma reinicialização.
-
As alterações na diretiva IPsec têm efeito imediatamente e não necessitam de uma reinicialização.
Após a reinicialização da estação de trabalho ou do servidor, todas as interfaces RPC que usam a seqüência de protocolo ncacn_ip_tcp e não especificam uma porta TCP a qual se vincular, terão uma porta alocada desse intervalo pelo tempo de execução de RPC quando o servidor RPC iniciar.
Observação O servidor pode exigir mais de 20 portas TCP. É possível usar o comando rpcdump.exe para contar o número de pontos de extremidade RPC ligados a uma porta TCP e aumentar esse número, se necessário. Para obter mais informações sobre como obter a ferramenta RPC Dump, visite o seguinte site da Microsoft (em inglês):