Resumo
Este artigo descreve como configurar o RPC para usar um intervalo de portas dinâmicas específico e como ajudar a proteger as portas nesse intervalo usando uma política de Segurança do Protocolo Internet (IPsec). Por padrão, o RPC usa portas no intervalo de portas efêmeras (1024-5000) ao atribuir portas a aplicativos RPC que precisam escutar em um ponto de extremidade TCP. Esse comportamento pode tornar a restrição do acesso a essas portas desafiadora para os administradores de rede. Este artigo discute maneiras de reduzir o número de portas disponíveis para aplicativos RPC e como restringir o acesso a essas portas usando uma diretiva IPsec baseada no Registro.
Como as etapas neste artigo envolvem alterações em todo o computador que exigem que o computador seja reiniciado, todas essas etapas devem ser executadas primeiro em ambientes de não produção para identificar quaisquer problemas de compatibilidade de aplicativos que possam ocorrer como resultado dessas alterações.
Mais informações
Há várias tarefas de configuração que devem ser concluídas para realocar, reduzir e restringir o acesso às portas RPC.
Primeiro, o intervalo de portas dinâmicas RPC deve ser restrito a um intervalo de portas menor e mais gerenciável que seja mais fácil de bloquear usando uma política de firewall ou IPsec. Por padrão, o RPC aloca dinamicamente portas no intervalo de 1024 a 5000 para pontos de extremidade que não especificam uma porta na qual escutar.
Observação
Este artigo usa o intervalo de portas de 5001 a 5021. Isso reduz o número de portas disponíveis para pontos de extremidade RPC de 3.976 para 20. O número de portas foi selecionado arbitrariamente e não é uma recomendação para o número de portas necessárias para qualquer sistema específico.
Em seguida, uma diretiva IPsec deve ser criada para restringir o acesso a esse intervalo de portas a fim de negar o acesso a todos os hosts na rede.
Por fim, a diretiva IPsec pode ser atualizada para conceder a determinados endereços IP ou sub-redes de rede acesso às portas RPC bloqueadas e excluir todas as outras.
Para iniciar a tarefa de reconfigurar o intervalo de porta dinâmica RPC, baixe a RPC Configuration Tool (RPCCfg.exe) e copie-a para a estação de trabalho ou para o servidor que será reconfigurado. Para fazer isso, acesse o seguinte site da Microsoft:
http://www.microsoft.com/download/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=en Para executar as tarefas subseqüentes de criação de uma diretiva IPsec, baixe a Ferramenta de Diretivas de Segurança do Protocolo de Internet (Ipsecpol.exe) e copie-a para a estação de trabalho ou para o servidor que será reconfigurado. Para fazer isso, acesse o seguinte site da Microsoft:
http://www.microsoft.com/download/details.aspx?displaylang=en&FamilyID=7D40460C-A069-412E-A015-A2AB904B7361 Observação Para criar uma política IPsec para o Microsoft Windows XP ou para uma versão posterior do sistema operacional Windows, use o Ipseccmd.exe. Ipseccmd.exe faz parte das ferramentas de suporte do Windows XP. A sintaxe e o uso de IPseccmd.exe são os mesmos que a sintaxe e o uso de Ipsecpol.exe. Para obter informações adicionais sobre as ferramentas de suporte para o Windows XP, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
838079 Ferramentas de suporte do Windows XP Service Pack 2
Realoque e reduza o intervalo de portas dinâmicas RPC usando RPCCfg.exe
Para realocar e reduzir o intervalo de portas dinâmicas RPC usando RPCCfg.exe, siga estas etapas:
Copie RPCCfg.exe para o servidor a ser configurado
No prompt de comando, digite rpccfg.exe -pe 5001-5021 -d 0.
Observação Esse intervalo de portas é recomendado para uso por pontos de extremidade RPC porque as portas nesse intervalo provavelmente não serão alocadas para uso por outros aplicativos. Por padrão, o RPC usa o intervalo de portas de 1024 a 5000 para alocar portas para pontos de extremidade. No entanto, as portas nesse intervalo também são alocadas dinamicamente para uso pelo sistema operacional Windows para todos os aplicativos de soquetes do Windows e podem ser esgotadas em servidores muito usados, como servidores de terminal e servidores de camada intermediária que fazem muitas chamadas de saída para sistemas remotos.Por exemplo, quando o Internet Explorer entra em contato com um servidor Web na porta 80, ele escuta em uma porta no intervalo de 1024-5000 a resposta do servidor. Um servidor COM de camada intermediária que faz chamadas de saída para outros servidores remotos também usa uma porta nesse intervalo para a resposta de entrada a essa chamada. Mover o intervalo de portas que a RPC usa para seus pontos de extremidade para o intervalo de portas 5001 reduzirá a chance de que essas portas sejam usadas por outros aplicativos.
Para obter mais informações sobre o uso de portas efêmeras em sistemas operacionais Windows, acesse os seguintes sites da Microsoft.- Para Windows 2000:
http://technet.microsoft.com/library/bb726981.aspx - Para o Windows Server 2003:
http://technet2.microsoft.com/WindowsServer/en/library/823ca085-8b46-4870-a83e-8032637a87c81033.mspx?mfr=true
- Para Windows 2000:
Use uma política IPsec ou de 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 sinais de porcentagem (%) tem como objetivo representar o texto no comando que deve ser inserido pela pessoa que cria a diretiva IPsec. Por exemplo, sempre que o texto "%IPSECTOOL%" aparecer, a pessoa que cria a política deve substituir esse texto da seguinte maneira:
- No 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:
813878 Como bloquear portas e protocolos de rede específicos usando IPSec
Bloquear o acesso ao Mapeador de Ponto de Extremidade RPC para todos os endereços IP
Para bloquear o acesso ao Mapeador de Ponto de Extremidade RPC para todos os endereços IP, use a sintaxe a seguir.
Observação No Windows XP e em sistemas operacionais posteriores, use Ipseccmd.exe. No 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
Observação: não digite "%IPSECTOOL%" neste comando. "%IPSECTOOL%" destina-se a representar a parte do comando que deve ser personalizada. Por exemplo, no Windows 2000, digite o seguinte comando de um diretório que contém Ipsecpol.exe para bloquear todo o acesso de entrada ao 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 seguinte comando de um diretório que contém Ipseccmd.exe para bloquear todo o acesso de entrada ao 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 portas dinâmicas de RPC para todos os endereços IP
Para bloquear o acesso ao intervalo de portas dinâmicas RPC para todos os endereços IP, use a sintaxe a seguir.
Observação No Windows XP e em sistemas operacionais posteriores, use Ipseccmd.exe. No 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
Observação: não digite "%IPSECTOOL%" ou "%PORT%" neste comando. "%IPSECTOOL%" e "%PORT%" destinam-se a representar partes do comando que devem ser personalizadas. Por exemplo, digite o seguinte comando em hosts Windows 2000 para bloquear todo o acesso de entrada ao 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 ao TCP 5001, digite o seguinte comando em hosts Windows XP e em 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 este comando para cada porta RPC que deve ser bloqueada alterando o número da porta listado neste comando. As portas que devem ser bloqueadas estão no intervalo 5001-5021.
Nota: 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: Conceda acesso ao Mapeador de Ponto de Extremidade RPC para sub-redes específicas se o acesso for necessário
Se for necessário conceder acesso a sub-redes específicas às portas RPC restritas, primeiro você deverá conceder a essas sub-redes acesso ao Mapeador de Ponto de Extremidade RPC que você bloqueou anteriormente. Para conceder acesso a uma sub-rede específica 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 Neste comando, as seguintes instruções se aplicam:
"%IPSECTOOL%" representa o comando a ser usado. Esse comando é "ipsecpol.exe" ou "ipseccmd.exe". O comando usado depende do sistema operacional que você está configurando.
"%SUBNET%" representa a sub-rede IP remota à qual você deseja conceder 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 comando a seguir permite 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 que foi criada anteriormente para essa 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: Conceder acesso ao novo intervalo de portas dinâmicas RPC para sub-redes específicas se o acesso for necessário
Cada sub-rede que recebeu acesso ao Mapeador de Ponto de Extremidade RPC anteriormente também deve receber acesso a todas as portas no novo intervalo de portas dinâmicas RPC (5001-5021).
Se você habilitar sub-redes para alcançar o Mapeador de Ponto de Extremidade RPC, mas não o intervalo de porta dinâmica, o aplicativo poderá parar de responder ou você poderá ter outros problemas.
O comando a seguir fornece acesso de sub-rede específico 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 Neste comando, as seguintes instruções se aplicam:
"%IPSECTOOL%" representa o comando a ser usado. Esse comando é "ipsecpol.exe" ou "ipseccmd.exe". O comando usado depende do sistema operacional que você está configurando.
"%PORT%" representa a porta no intervalo de portas dinâmicas à qual conceder acesso.
"%SUBNET%" representa a sub-rede IP remota à qual você deseja conceder 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 comando a seguir permite 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 que foi criada anteriormente para essa 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 porta no novo intervalo de portas dinâmicas RPC.
Atribuir a diretiva IPsec
Observação Os comandos nesta seção entram em vigor imediatamente.
Depois de criar todas as regras de bloqueio e todas as regras de permissão opcionais para as portas RPC configuradas, atribua a política usando o seguinte comando:
%IPSECTOOL% -w REG -p "Block RPC Ports" –x
Observação Para cancelar imediatamente a atribuição da política, use o seguinte comando:
%IPSECTOOL% -w REG -p "Block RPC Ports" –y
Observação Para excluir a política do Registro, use o seguinte comando:
%IPSECTOOL% -w REG -p "Block RPC Ports" -o
Você deve reiniciar o host para que as alterações entrem em vigor.
Anotações
- As alterações de configuração de RPC exigem uma reinicialização.
- As alterações de diretiva do IPsec entram em vigor imediatamente e não exigem uma reinicialização.
Depois que a estação de trabalho ou o servidor for reiniciado, todas as interfaces RPC que usam a sequência de protocolos ncacn_ip_tcp e não especificam uma porta TCP específica à qual se associar terão uma porta alocada desse intervalo pelo tempo de execução RPC quando o servidor RPC for iniciado.
Observação O servidor pode exigir mais de 20 portas TCP. Você pode usar o comando rpcdump.exe para contar o número de pontos de extremidade RPC vinculados a uma porta TCP e aumentar esse número, se necessário. Para obter mais informações sobre como obter a ferramenta de Despejo de RPC, visite o seguinte site da Microsoft: