Introdução
Quando se configura um Domínio Remoto Cliente no Studio, o E3 Studio da máquina Cliente irá acessar os arquivos do Domínio Servidor no caminho indicado na configuração do Domínio Cliente. Esse caminho pode ser uma pasta criada localmente, na máquina do Domínio Cliente, ou pode ser um compartilhamento da pasta do Domínio Servidor na máquina remota, acessado via rede. Nesse caso, o compartilhamento deve poder ser acessado remotamente pelo usuário SYSTEM. Quando as máquinas pertencem a um domínio de rede Microsoft, o usuário SYSTEM tem permissões para acessar o compartilhamento sem problemas. Porém, quando as máquinas estão apenas em um mesmo grupo de trabalho, essa permissão precisa ser definida explicitamente.
A partir da versão 3.0, onde está disponível a funcionalidade de Domínios Remotos, o E3 Server roda sempre como um serviço na conta SYSTEM. Serviços que usam a conta SYSTEM iniciam no contexto do sistema sem credenciais, ou seja, sem autenticação de usuário e de senha. Esses serviços, rodando sem um domínio de rede Microsoft, e que queiram acessar recursos da rede, terão acesso negado em função de não terem credenciais e de estarem utilizando uma sessão nula.
Este artigo mostra quais as configurações necessárias quando em ambas as máquinas estiver rodando o Windows XP Service Pack 2.
Configurações Gerais
As configurações mostradas a seguir devem ser feitas na máquina que roda o Domínio Servidor. A configuração deve ser feita diretamente no Registro do Windows. Nesse caso, siga esses procedimentos:
-
Acesse a chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters.
-
Crie a variável
RestrictNullSessAccess
, do tipo DWORD, e coloque o valor 0.
Segundo a Microsoft, a chave RestrictNullSessAccess
especifica se o servidor vai limitar o acesso ao sistema por usuários logados sem autenticação de nome de usuário e senha. Os valores possíveis são:
- 0: Acesso sem autenticação é permitido e todos os usuários podem acessar os recursos compartilhados.
- 1: Não permite acesso sem autenticação. Os usuários sem autenticação poderão acessar apenas os diretórios listados na variável
NullSessionShares
.
Em qualquer um desses casos, será necessário reiniciar a máquina para que as alterações tenham efeito.
Além disso, é necessário configurar o compartilhamento e o NTFS para aceitarem o acesso do usuário anônimo (ANONYMOUS LOGON/LOGON ANÔNIMO) e do usuário de rede (NETWORK/REDE). Isso pode ser feito de duas maneiras:
-
Acessando o compartilhamento simplificado, que em geral vem habilitado como padrão no Windows XP. Para isso, siga estes procedimentos:
-
Selecione a pasta que contém o Domínio Servidor, e que deverá ser compartilhada.
-
Clique com o botão direito do mouse sobre ela e selecione a opção Propriedades.
-
Na aba Compartilhamento, na seção Compartilhamento de rede e segurança, marque a opção Compartilhar esta pasta na rede, e informe um nome para o compartilhamento.
Desse modo o compartilhamento já será configurado, dando as permissões necessárias para os usuários anônimo (ANONYMOUS LOGON/LOGON ANÔNIMO) e de rede (NETWORK/REDE).
-
Informando as permissões explicitamente. Para isso pode ser preciso alterar o modo de visualização da janela de Propriedades, para que as abas Segurança e Compartilhamento fiquem visíveis. Para isso, siga estes procedimentos:
-
Acesse o Registro do Windows, na chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA, e altere o valor da variável
ForceGuest
para 0. -
Selecione a pasta que contém o Domínio Servidor, e que deverá ser compartilhada.
-
Clique com o botão direito do mouse sobre ela e selecione a opção Propriedades.
-
Na aba Compartilhamento, selecione a opção Compartilhar esta pasta e informe um nome para o compartilhamento.
-
Ainda na aba Compartilhamento, clique no botão Permissões.
-
Adicione o usuário REDE e o usuário LOGON ANÔNIMO, permitindo acesso para leitura à pasta e clicando após no botão OK.
-
Acesse a aba Segurança e adicione novamente os usuários REDE e LOGON ANÔNIMO (os mesmos adicionados na aba Compartilhamento), clicando após no botão OK.
Outra maneira de permitir o acesso ao compartilhamento é incluir a pasta que contém o Domínio Servidor na lista de diretórios da variável NullSessionShares
. A variável encontra-se em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters. Essa opção funciona, porém fica mais limitada, uma vez que o nome da pasta fica gravado diretamente no Registro do Windows, e uma alteração na configuração do Domínio Remoto pode requerer alteração também no Registro do Windows.
É necessário ainda configurar como os logons de rede usando contas locais são autenticados. Para isso, siga estes procedimentos:
-
Acesse o Painel de Controle, escolha Ferramentas Administrativas e logo após clique em Diretiva de Segurança Local.
-
Na opção Acesso à rede: compartilhamento e modelo de segurança para contas locais, escolha Somente convidados – usuários locais autenticados como ‘Convidados’.
Isso fará com que logons de rede que usam contas locais sejam mapeados automaticamente para a conta Convidado, que precisa estar ativada.
Para ativar a conta Convidado, acesse o Painel de Controle, escolha Ferramentas Administrativas e logo após clique em Diretiva de Segurança Local. Escolha a opção Contas: status da conta de convidado e ative-a.
Outros Cuidados
Em máquinas que rodam o Windows XP, o Firewall está normalmente habilitado. Para que a comunicação entre as máquinas funcione corretamente em tempo de execução, o Firewall deve ser configurado corretamente, ou desabilitado. Informações sobre essas configurações podem ser encontradas no artigo Configurações de Firewall e DCOM no Windows XP/2003/Vista/2008 para aplicações Elipse.
Outras Informações
- http://support.microsoft.com/kb/289655
- http://support.microsoft.com/kb/325874
- http://support.microsoft.com/kb/132679/EN-US/
- http://support.microsoft.com/kb/122702/EN-US/
- http://support.microsoft.com/kb/246261/
- http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/58643.mspx?mfr=true
- http://technet2.microsoft.com/windowsserver/en/library/2b8bdf70-becc-41f7-b305-88300df0892d1033.mspx?mfr=true
Conclusão
Antes do Windows NT 3.5, era permitido que um serviço usasse tanto a conta SYSTEM como uma conta de usuário normal para acessar recursos em uma máquina local ou remota. Nas versões posteriores do Windows, esse acesso falha se for utilizada a conta SYSTEM. A solução apresentada neste artigo libera novamente o acesso em máquinas rodando Windows XP.