Este artigo descreve como desactivar a gestão remota de um servidor de DNS com um dos seguintes sistemas operativos:
- Microsoft Windows Server 2003
- Microsoft Windows 2000 Server
Pode utilizar o método mencionado neste artigo para melhorar a segurança dos computadores que tenham o serviço de servidor de DNS em execução numa organização.
Para obter mais informações sobre um problema que afecta o serviço de servidor de DNS no Windows Server 2003 e no Windows 2000 Server, visite o seguinte Web site da Microsoft:
Descrição geral
Por predefinição, o serviço de servidor de DNS permite a gestão remota utilizando muitas interfaces. Quando o serviço de servidor de DNS é iniciado, este associa-se a uma porta dinâmica no intervalo efémero. Esta porta é utilizada pelo snap-in da consola de gestão da Microsoft (MMC,
Microsoft Management Console) do DNS e pelo fornecedor do WMI (Windows Management Instrumentation) do DNS. Pode utilizar a seguinte entrada de registo para controlar se o serviço de servidor de DNS permite a gestão remota:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
Nome do valor: RpcProtocol
Tipo de valor: REG_DWORD
Dados do valor: 0x4
Estão disponíveis os seguintes valores para a entrada de registo RpcProtocol:
- 0x1
Este valor corresponde a uma definição de DNS_RPC_USE_TCPIP - 0x2
Este valor corresponde a uma definição de DNS_RPC_USE_NAMED_PIPE - 0x4
Este valor corresponde a uma definição de DNS_RPC_USE_LPC
Nota: um valor de 0x4 restringe a interface de RPC do DNS apenas a chamadas de procedimento local. Esta situação permite apenas a gestão local.
Consequências da desactivação da gestão remota
Quando define a entrada de registo RpcProtocol como 0x4, a gestão remota do serviço de servidor de DNS é desactivada. Por conseguinte, não poderá utilizar a RPC ou o WMI (Windows Management Instrumentation) para gerir o servidor de DNS. Neste cenário, as ferramentas de gestão do servidor de DNS não funcionarão a partir de uma localização remota. No entanto, poderá continuar a utilizar as ferramentas de gestão locais para gerir o servidor de DNS e poderá continuar a efectuar a gestão remota do servidor de DNS utilizando uma ligação dos serviços de terminal.
A definição de RpcProtocol como 0x4 não afecta as consultas de DNS, as actualizações dinâmicas de DNS, as transferências de zona de DNS, etc.
Nota: a administração e configuração local do serviço de servidor de DNS poderá não funcionar caso se verifiquem as seguintes condições:
- O servidor que pretende gerir tem um nome de anfitrião com 15 caracteres.
- Seleccionou o servidor utilizando o nome de anfitrião.
Para resolver este problema, especifique o nome de domínio totalmente qualificado (FQDN,
fully qualified domain name) do computador quando o gerir utilizando as ferramentas de administração do servidor de DNS.
Desactivar a gestão remota do serviço de servidor de DNS
Aviso: poderão ocorrer problemas graves se modificar o registo de forma incorrecta utilizando o
Editor de registo (
Registry Editor) ou qualquer outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. A Microsoft não garante que estes problemas possam ser resolvidos. Todo e qualquer risco decorrente da modificação do registo é da responsabilidade do utilizador.
Para desactivar a gestão remota através da funcionalidade de RPC de um computador com o serviço de servidor de DNS em execução, siga estes passos:
- Clique em Iniciar (Start), clique em Executar (Run), escreva regedit e clique em OK.
- Localize e clique na seguinte subchave de registo:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
- No menu Editar (Edit), aponte para Novo (New) e clique em Valor DWORD (DWORD Value).
- Na caixa Novo valor #1 (New Value #1), escreva RpcProtocol e prima ENTER.
- Clique com o botão direito do rato em RpcProtocol e clique em Modificar (Modify).
- Na caixa Dados do valor (Value data), escreva 4 e clique em OK.
- Saia do Editor de registo (Registry Editor) e reinicie o serviço de servidor de DNS. Para reiniciar o serviço de servidor de DNS, siga estes passos:
- Clique em Iniciar (Start), clique em Executar (Run), escreva cmd e clique em OK.
- Na linha de comandos, escreva o seguinte comando e prima ENTER:
net stop dns && net start dns
Implementar o valor de registo RpcProtocol em muitos computadores
Pode utilizar um script para implementar o valor de registo RpcProtocol. Deste modo, consegue desactivar mais facilmente a gestão remota do serviço de servidor de DNS em muitos computadores. Para tal, siga estes passos:
- Inicie sessão no domínio utilizando uma conta com direitos para modificar os servidores de DNS. Por exemplo, inicie sessão como um administrador de domínio.
- Crie uma lista de todos os servidores de DNS. Para o fazer, execute o seguinte comando numa linha de comandos:
dsquery * -filter "(servicePrincipalName=DNS*)" -attr dNSHostName -l > dns_servers.txt
Se necessário, edite manualmente o ficheiro dns_servers.txt criado para especificar todos os servidores de DNS. Por exemplo, este comando apenas captura controladores de domínio configurados como servidores de DNS. Assim, terá de adicionar manualmente servidores de DNS que estejam configurados como servidores membro.
Nota: pode utilizar o separador Servidores de nomes (Name Servers) da caixa de diálogo Propriedades de zona DNS (Zona DNS Properties) para cada zona do snap-in do DNS para determinar os nomes dos servidores de DNS que pretende adicionar a esta lista. - Se for necessário, utilize o comando cd da linha de comandos para mudar para o directório em que guardou o ficheiro dns_servers.txt.
- Escreva o seguinte comando e prima 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
Este comando adiciona a entrada de registo RpcProtocol e um valor de 0x4. - Pare o serviço de servidor de DNS em todos os computadores. Para o fazer, escreva o seguinte comando e prima ENTER:
for /f %i in (dns_servers.txt) do sc \\%i stop DNS
- Inicie o serviço de servidor de DNS em todos os computadores. Para o fazer, escreva o seguinte comando e prima ENTER:
for /f %i in (dns_servers.txt) do sc \\%i start DNS
Verificar se a entrada de registo RpcProtocol está definida em muitos computadores
Para consultar os servidores e para verificar se a entrada de registo RpcProtocol está definida, siga estes passos:
- Inicie sessão num servidor de DNS que tenha a entrada de registo RpcProtocol definida.
- Copie o seguinte script para um ficheiro de texto e atribua o nome Dnsquery.cmd a este ficheiro:
Echo A comparar o valor de registo de: > dns_errors.txt
echo HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters >> dns_errors.txt
echo Dados do valor de "RpcProtocol" >> dns_errors.txt echo. >> dns_errors.txt echo. >> dns_errors.txt
Echo Nível de erro 1 - Falha ao comparar valores de registo >> dns_errors.txt
Echo Nível de erro 2 - Os valores Reg comparados são diferentes >> 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 Nome_computador: %_MachineName% Nível de erro devolvido: 1 - Falhou >> dns_errors.txt
if %errorlevel% == 2 Echo Nome_computador: %_MachineName% Nível de erro devolvido: 2 - Diferentes >> dns_errors.txt
:End
rem exit
Nota: este script compara a subchave de registo Parameters dos computadores remotos à existente no computador em que o script é executado.
Importante: não poderão existir espaços à direita neste script. - Faça duplo clique no ficheiro Dnsquery.cmd para o executar.
Remover o valor de registo RpcProtocol de muitos computadores
Para anular a operação que define o valor de registo RpcProtocol, siga estes passos:
- Inicie sessão no domínio utilizando uma conta com direitos para modificar os servidores de DNS. Por exemplo, inicie sessão como um administrador de domínio.
- Inicie uma linha de comandos e utilize o comando cd para mudar para o directório em que guardou o ficheiro Dns_servers.txt.
- Escreva o seguinte comando e prima ENTER:
for /f %i in (dns_servers.txt) do reg delete \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /f
- Pare o serviço de servidor de DNS em todos os computadores. Para o fazer, escreva o seguinte comando e prima ENTER:
for /f %i in (dns_servers.txt) do sc \\%i stop DNS
- Inicie o serviço de servidor de DNS em todos os computadores. Para o fazer, escreva o seguinte comando e prima ENTER:
for /f %i in (dns_servers.txt) do sc \\%i start DNS