Este artigo descreve como desabilitar o gerenciamento remoto
de DNS de um servidor DNS que está executando um dos seguintes sistemas
operacionais:
- Microsoft Windows Server 2003
- Microsoft Windows 2000 Server
É possível usar o método mencionado neste artigo para aprimorar
a segurança dos computadores que estão executando o serviço Servidor DNS em uma
empresa.
Para obter mais informações sobre um problema que afeta o
serviço Servidor DNS no Windows Server 2003 e no Windows 2000 Server, visite o
seguinte site da Microsoft:
Visão Geral
Por padrão, o serviço Servidor DNS o gerenciamento remoto usando
muitas interfaces. Ao iniciar, o serviço Servidor DNS é ligado a uma porta
dinâmica em um intervalo efêmero. Esta porta é usada pelo snap-in MMC (Console
de Gerenciamento Microsoft) e pelo provedor WMI (Instrumentação de
Gerenciamento do Windows) do DNS. É possível usar a seguinte entrada do
Registro para controlar se o serviço Servidor DNS permite o gerenciamento
remoto:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
Nome do valor: RpcProtocol
Tipo do valor: REG_DWORD
Dados do valor: 0x4
Os seguintes valores estão disponíveis para a entrada do Registro
RpcProtocol:
- 0x1
Esse valor corresponde a uma configuração de
DNS_RPC_USE_TCPIP - 0x2
Esse valor corresponde a uma configuração de
DNS_RPC_USE_NAMED_PIPE - 0x4
Esse valor corresponde a uma configuração de
DNS_RPC_USE_LPC
Observação Um valor de 0x4 restringe a interface DNS RPC somente para as
chamadas de procedimento local. Isto permite apenas o gerenciamento local.
O efeito em desabilitar o gerenciamento remoto
Ao definir a entrada do Registro RpcProtocol para 0x4, o serviço
Servidor DNS remoto será desabilitado. Por isso, não é possível usar a ROC ou o
WMI para gerenciar o servidor DNS. Neste cenário, as ferramentas de
gerenciamento do servidor DNS não funciona mais de um local remoto. No entanto,
ainda é possível usar as ferramentas de gerenciamento local para gerenciar o
servidor DNS, e realizar o gerenciamento remoto do servidor DNS usando uma
conexão Serviços de Terminal.
A configuração do RpcProtocol to 0x4 não
afeta as consultas DNS, as atualizações dinâmicas DNS, as transferências de
zona DNS e assim por diante.
Observação A administração e configuração local do serviço Servidor DNS
podem não funcionar se as seguintes condições forem verdadeiras:
- O servidor que deseja gerenciar tem um nome do host com 15
caracteres.
- Você seleciona o servidor usando o nome do host.
Para resolver esse problema, especifique o FQDN (nome de domínio
totalmente qualificado) do computador ao gerenciá-lo usando as ferramentas
administrativas de servidor DNS.
Para desabilitar o gerenciamento remoto do serviço Servidor DNS
Aviso O uso incorreto do Editor do Registro, ou outro método, pode
causar sérios problemas que talvez exijam a reinstalação do sistema
operacional. A Microsoft não garante que os problemas resultantes do uso
incorreto do Editor do Registro possam ser solucionados. O uso do Editor do
Registro é de sua responsabilidade.
Para desabilitar a
funcionalidade gerenciamento remoto sobre RPC em um computador executando o
serviço Servidor DNS, execute as seguintes etapas:
- Clique em Iniciar, em
Executar, digite regedit e clique em
OK.
- Localize e clique na seguinte subchave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
- No menu Editar, aponte para
Novo e clique em Valor DWORD.
- Na caixa Novo valor #1, digite
RpcProtocol e pressione ENTER.
- Clique com o botão direito do mouse em
RpcProtocol e clique em Modificar.
- Na caixa Dados do valor, digite
4 e clique em OK.
- Saia do Editor do Registro e reinicie o serviço Servidor
DNS. Para reiniciar o serviço Servidor DNS, execute as seguintes etapas:
- Clique em Iniciar, em
Executar, digite cmd e clique em
OK.
- No prompt do comando, digite o seguinte comando e
pressione ENTER:
net stop dns && net start dns
Para implantar o valor do Registro RpcProtocol em muitos computadores
É possível usar um script para implantar o valor do Registro
RpcProtocol. Isto permite que você desabilite com mais facilidade o
gerenciamento remoto do serviço Servidor DNS em muitos computadores. Para fazer
isto, execute as seguintes etapas:
- Faça logon no domínio usando uma conta que tem direitos
para modificar os servidores DNS. Por exemplo, faça logon como administrador de
domínio.
- Crie uma lista de todos os servidores DNS. Para fazer isto,
execute o seguinte comando no prompt de comando:
dsquery * -filter "(servicePrincipalName=DNS*)" -attr dNSHostName -l > dns_servers.txt
Se for necessário, edite manualmente o arquivo
dns_servers.txt criado para especificar todos os servidores DNS. Por exemplo,
esse comando apenas captura os controladores de domínio configurados como
servidores DNS. Por isso, é necessário adicionar manualmente os servidores DNS
configurados como servidores membro.
Observação É possível usar a guia Servidores de nomes na
caixa de diálogo Zona DNS
Propriedades em cada zona no snap-in DNS para determinar os nomes dos
servidores DNS que deseja adicionar à lista. - Se for solicitado, use o comando cd no prompt de comando para alterar para o diretório no qual o
arquivo dns_servers.txt foi salvo.
- Digite o seguinte comando e pressione ENTER.
for /f %i in (dns_servers.txt) do reg add \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /t REG_DWORD /d 4 /f
Esse comando adiciona a entrada do Registro RpcProtocol com um
valor de 0x4. - Interrompa o serviço Servidor DNS em todos os computadores:
Para fazer isto, digite o seguinte comando e pressione ENTER:
for /f %i in (dns_servers.txt) do sc \\%i stop DNS
- Inicie o serviço Servidor DNS em todos os computadores:
Para fazer isto, digite o seguinte comando e pressione ENTER:
for /f %i in (dns_servers.txt) do sc \\%i stop DNS
Para verificar se a entrada do Registro RpcProtocol está definida em muitos computadores
Para consultar os servidores e verificar se a entrada do Registro
está definida, execute as seguintes etapas:
- Faça logon em um servidor DNS que tenha a entrada do
Registro RpcProtocol definida.
- Copie o seguinte script em um arquivo de texto e nomeie-o
como Dnsquery.cmd:
Echo Comparing registry value for: > dns_errors.txt echo HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters >> dns_errors.txt
echo Data Value for "RpcProtocol" >> dns_errors.txt echo. >> dns_errors.txt echo. >> dns_errors.txt
Echo Errorlevel 1 - Failed to compare registry values >> dns_errors.txt
Echo Errorlevel 2 - Reg values compared are different >> dns_errors.txt echo. >> dns_errors.txt
echo. >> dns_errors.txt echo ===================================================== >> dns_errors.txt
set _MachineName=
for /f %%i in (dns_servers.txt) do ( call :TEST %%i )
:TEST
Set _MachineName=%1
echo %_MachineName%
reg.exe compare "HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters" "\\%_MachineName%\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v RpcProtocol
if %_MachineName% == "" echo 0 > nul
if %errorlevel% == 0 echo 0 > nul
if %errorlevel% == 1 Echo Computername: %_MachineName% Errorlevel returned: 1 - Failed >> dns_errors.txt
if %errorlevel% == 2 Echo Computername: %_MachineName% Errorlevel returned: 2 - Different >> dns_errors.txt
:End
rem exit
Observação Esse script compara a subchave do Registro Parameters nos
computadores remotos com aquele no computador em que você executou o
script.
Importante Não deve haver nenhum caractere de espaço à direita nesse
script. - Clique duas vezes no arquivo Dnsquery.cmd para
executá-lo.
Para remover o valor do Registro RpcProtocol de muitos computadores
Para desfazer a operação que define o valor do Registro, execute
as seguinte etapas:
- Faça logon no domínio usando uma conta que tem direitos
para modificar os servidores DNS. Por exemplo, faça logon como administrador de
domínio.
- Inicie o prompt de comando e use o comando cd para alterar para o diretório no qual o arquivo Dns_servers.txt
foi salvo.
- Digite o seguinte comando e pressione ENTER.
for /f %i in (dns_servers.txt) do reg delete \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /f
- Interrompa o serviço Servidor DNS em todos os computadores:
Para fazer isto, digite o seguinte comando e pressione ENTER:
for /f %i in (dns_servers.txt) do sc \\%i stop DNS
- Inicie o serviço Servidor DNS em todos os computadores.
Para fazer isto, digite o seguinte comando e pressione ENTER:
for /f %i in (dns_servers.txt) do sc \\%i stop DNS