Algoritmos de validação de acesso de rede e exemplos para o Windows Server 2003, Windows XP e Windows 2000

Traduções deste artigo Traduções deste artigo
ID do artigo: 103390 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

A seguir está um algoritmo simplificado que explica como pode ser observada validação de conta do Windows para funcionar durante o acesso de rede usando o protocolo NTLM. Utiliza acesso através o protocolo server message block (SMB) como o exemplo, mas se aplica a todos os outros aplicativos de servidor que oferecem suporte à autenticação NTLM. Essa discussão não cobre o funcionamento interno deste processo. Com essas informações, você pode prever o comportamento de logon de rede do Windows sob condições deterministas.
Quando Kerberos é usado para autenticar o usuário e obter acesso aos recursos do servidor, o processo é muito diferente do que faz o NTLM. Para obter mais informações, visite o seguinte site da Microsoft TechNet Web:
http://technet2.microsoft.com/WindowsServer/en/Library/f5c70774-25cd-4481-8b7a-3d65c86e69b11033.mspx
Lembre-se de que o banco de dados local é o banco de dados do domínio e o banco de dados somente nos controladores de domínio. Mas, em outros servidores e todos os computadores, o banco de dados local é diferente do controlador de domínio.

Informações de plano de fundo

Quando dois computadores baseados no Windows Server 2003, com Windows XP ou baseados no Windows 2000 se comunicam através de uma rede, eles usam um protocolo de alto nível denominado bloco de mensagem de servidor (SMB). Comandos SMB são incorporados nos protocolos de transporte, como TCP/IP ou NetBIOS Enhanced User Interface (NetBEUI). Por exemplo, quando um computador cliente executa um comando NET USE , um quadro "SMB sessão Setup and X" é enviado.

No Windows, o SMB "Configuração da sessão" inclui a conta de usuário, uma função de hash da senha criptografada e domínio de logon. Um controlador de domínio vai examinar todas essas informações para determinar se o cliente tem permissões para executar o comando NET USE .

Algoritmos

Um computador cliente com Windows envia o seguinte comando em um servidor:
   NET USE x: \\server\share
		
O computador cliente do Windows envia um pacote SMB "Configuração da sessão" que contém seu domínio de logon, conta de usuário e senha.

Ele examina o nome de domínio ou nome de computador especificado por SMB. O nome é o nome do servidor, para executar o algoritmo a seguir:
    It checks its own domain database or computer database for
        a matching account.
    If it finds a matching account then
        The SMB password is compared to the domain database password or the computer database password.
        If  the password matches then
            The command completed successfully.
        If  the password does NOT match then
            The user is prompted for a password.
                The password is retested as above.
            System error 1326 has occurred. Logon failure: unknown
            user name or bad password.
        End
    If  it does NOT find the account in the domain Security Accounts Manager (SAM) database or computer SAM database then
        Guest permissions are tested.
        If  the guest account is enabled
            The command completed successfully.
        If  the guest account is disabled
            (* See Note a).
            The user is prompted for a password.
            System error 1326 has occurred. Logon failure:
                unknown user name or bad password.
        End
		
Se o domínio especificado no SMB é aquele que o servidor confia, é executado o algoritmo a seguir:
    The server will do pass-through authentication. The
        network logon request will be sent to a server that has a domain controller role in the
        specified trusted domain.
		
Se um canal seguro não estiver configurado, o algoritmo a seguir é executado:
The trusted domain controller checks its own domain database
        for a matching account.
    If the trusted domain controller finds a matching account, then
       NOT for Windows 2000 and later versions:
    It determines whether the account is a local or global account.
       If the account is local, then
           Guest permissions on the original server are tested.
           If the guest account is enabled
               The command completed successfully.
           If the guest account is disabled
               (* See Note a) The user is prompted for a password.
               System error 1326 has occurred. Logon failure:
               unknown user name or bad password.
        End
        If the account is global (the only option for Active Directory)
           The SMB password is compared to the domain database
               password.
           If  the password matches, then
               The command completed successfully.
               (* See Note b)
           If  the password does NOT match, then
               The user is prompted for a password.
                   The password is retested as above.
               System error 1326 has occurred. Logon failure:
               unknown user name or bad password.
       End
    If the trusted domain controller does NOT find the account in the trusted domain controller
           database, then
       Guest permissions are tested on the original server, not the trusted domain.  (* See Note c)
       If  the guest account is enabled
           The user will have original server guest access.
           The command completed successfully.
       If  the guest account is disabled
           (* See Note a) The user is prompted for a password.
           System error 1326 has occurred. Logon failure:
           unknown user name or bad password.
    End

IMPORTANTE

Os seguintes casos discutem os cenários em que o cliente usa um domínio de usuário diferente daquela que o servidor tem ou sabe de. Há um problema com essa incompatibilidade quando o protocolo de autenticação NTLMv2 é negociado. NTLM em v2 usa um salt de senha e o domínio do usuário é usado neste salt pelo cliente.

Quando o servidor obtém as informações e localiza o usuário no banco de dados local, o servidor usa o nome do banco de dados LOCAL para calcular o salt e o hash. Portanto, se o "domínio de origem" como enviado pelo cliente está vazio ou é um domínio desconhecido, o salt e, portanto, a senha de hash não corresponderão. Nesses casos, a tentativa de autenticação falhará com um "nome de usuário desconhecido ou senha incorreta" Erro (STATUS_LOGON_FAILURE). O evento de auditoria para a tentativa de reportará "senha incorreta", o símbolo STATUS_WRONG_PASSWORD.

Exemplo de evento:
Nome de logon: segurança
Fonte: Microsoft-Windows--auditoria de segurança
Identificação do evento: 4625
Categoria da tarefa: Logon
Nível: informações
Palavras-chave: Falha de auditoria
Computador: servidor-Computador1
Descrição:
Uma conta Falha ao fazer logon.

Assunto:

ID de segurança: SID nulo
Nome da conta:-
Domínio de conta:-
Identificação de logon: 0x0

Tipo de logon: 3

Conta para a falha de logon:

ID de segurança: SID nulo
Nome da conta: ntadmin
Domínio de conta: cliente-Computador1

Informações de falha:

Motivo da falha: Nome de usuário desconhecido ou senha incorreta.
Status: 0xc000006d
Sub Status: 0xc000006a
...

Informações detalhadas de autenticação:

Processo de logon: NtLmSsp
Pacote de autenticação: NTLM
Transitados serviços:-
Nome (NTLM) do pacote:-
Comprimento de chave: 0

Para evitar esse cenário, você precisa incluir o nome de domínio correto explicitamente no cliente. Para uma unidade de mapeamento em um cenário de grupo de trabalho, que seria o seguinte:
NET use x: \\server-computer1\data /u:server-computer1\ntadmin *
Se o domínio que está especificado no SMB é desconhecido pelo servidor ? por exemplo, se um domínio foi especificado, mas não foi reconhecido pelo servidor como seu controlador de domínio ou um domínio confiável ? o algoritmo a seguir é executado:
    It  will check its own account database for
        a matching account
    If  the server finds a matching account, then
        The SMB password is compared to the domain database password or the computer database password.
        If  the password matches, then
            The command completed successfully.
        If  the password does NOT match, then
            The user is prompted for a password.
                The password is retested as above.
            System error 1326 has occurred. Logon failure: unknown
            user name or bad password.
    End
    If  it does NOT find the account in the domain database then
        guest permissions are tested.
        If  the guest account is enabled
            The command completed successfully.
        If  the guest account is disabled
            System error 1326 has occurred. Logon failure:
            unknown user name or bad password.
    End
		
Se o domínio que está especificado no SMB é nulo, ou seja, nenhum domínio for especificado, o algoritmo a seguir é executado:
    The server will treat this as a local network logon. The server
        will test for a matching account in its own database.
    If  it finds a matching account, then
        The SMB password is compared to the SAM database password.
        If  the password matches, then
            The command completed successfully.
        If  the password does NOT match, then
            The user is prompted for a password.
                The password is retested as above.
            System error 1326 has occurred. Logon failure: unknown
            user name or bad password.
    End
    If  it does NOT find the account in the local SAM database AND
      LsaLookupRestrictIsolatedNameLevel=0, then (* See Note d)
        The server will simultaneously ask each domain that it trusts whether it has account that
            matches the SMB account.
        The first trusted domain to reply is sent a request to
            perform pass-through authentication of the client
            information.
        The trusted domain will look in its own database.
        If  an account that matches the SMB account is found, then
            The trusted domain determines whether the account is a local or global
                account.
           Not for Windows 2000 and later versions:
            If  the account is local then
                Guest permissions on the original server are tested.
                If  the guest account is enabled
                    The command completed successfully.
                If  the guest account is disabled
                The user will be prompted for a password.
                Regardless of what password is entered, the user will receive
                    "Error 5: Access has been denied."
            End
            If  the account is global (the only option for Active Directory)
                The password that was specified in the SMB is compared
                    to the SAM database password.
                If  the password matches, then
                    The command completed successfully.
                If  the password does NOT match, then
                    The user is prompted for a password.
                        The password is retested as above.
                    System error 1326 has occurred. Logon failure:
                    unknown user name or bad password.
            End
    If  no trusted domains respond to the request to identify the
        account, then
        Guest permissions are tested on the original server,
            not the trusted server.
        If  the guest account is enabled
            The command completed successfully.
        If  the guest account is disabled
            System error 1326 has occurred. Logon failure:
            unknown user name or bad password.
    End
		

Anotações

  1. Se a conta de convidado está desativada e o usuário não não conta de havean, o servidor ainda irá solicitar uma senha. Embora nenhuma senha willmeet suas necessidades, o servidor ainda irá solicitar uma senha como um securitymeasure. Essa medida de segurança garante que um usuário não autorizado não tellthe diferença entre um caso em que existe uma conta e quando a conta existe. O usuário sempre será solicitado para uma ofwhether independentemente de senha que a conta existe.
  2. Nesse ponto, as informações a seguir são retornadas do domínio confiável na resposta: SID de domínio, ID de usuário, GroupsMemberships Global, tempo de Logon, Logoff tempo, KickOffTime, nome completo, LastSet de senha, senha pode alterar sinalizador, senha deve alterar sinalizador, Script de usuário, caminho do perfil, diretório base e contagem de senha incorreta.
  3. Se nenhuma conta foi encontrada no domínio confiável, o sistema de theoperating deve usar a conta Convidado local para garantir a autenticação behaviorfor consistente em relação ao servidor.
  4. Para obter mais informações sobre como restringir a pesquisa de nomes isolados em domínios confiáveis externos usando a entrada de registro LsaLookupRestrictIsolatedNameLevel, clique no número abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
    818024 Como restringir a pesquisa de nomes isolados em domínios confiáveis externos usando a entrada de registro LsaLookupRestrictIsolatedNameLevel
  • Contas de convidado em domínios confiáveis nunca serão beavailable.
  • O processo real, interno é mais complexo do que thealgorithms são descritas aqui.
  • Esses algoritmos não discutir questões sobre a autenticação mecânica real através de ofpass. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento Microsoft:
    102716 Autenticação de usuário NTLM no Windows
  • Esses algoritmos não discutir questões sobre a encryptionprocess de senha que é usado no Windows Server 2003, Windows XP e Windows 2000. Um grande objeto binário (BLOB) derivado de hash de senha de maneira aone é enviado como parte da solicitação de autenticação. OCA desse BLOB dependerá do protocolo de autenticação escolhido para thelogon.
  • Este artigo não aborda o funcionamento interno do módulo de autenticação da Microsoft.
  • Esses algoritmos pressupõem que a conta de convidado, whenenabled, não tem nenhuma senha. Por padrão, a conta de convidado não tem apassword no Windows Server 2003, Windows XP e Windows 2000. Se uma senha guestaccount for especificada, a senha do usuário é enviada em mustmatch o SMB que convidado conta senha.

Exemplos

A seguir estão exemplos desses algoritmos em ação.

Exemplo 1

Você efetuou logon computador usando o mesmo nome de conta e a senha que está no banco de dados de conta de domínio domínio zero. Quando você executa o comando NET USE \\SCRATCH para o controlador de domínio para o domínio de zero, o comando for concluído com êxito. Quando você executa o comando NET USE \\NET para o controlador de domínio que confie no domínio domínio do zero, você recebe a seguinte mensagem de erro:
Erro de sistema 1326. Falha de logon: nome de usuário desconhecido ou senha incorreta.
A conta \SCRATCH-DOMAIN\USER1 tem permissões no \\NET.

Observação Este exemplo assume que as seguintes configurações.

Configurações

Computador que tenha uma autoridade de segurança local:
  -Login account: USER1
  -Password:      PSW1
  -Login Domain:  LOCAL1
		
Controlador de domínio do Active Directory:
  -Server Name: NET</WWITEM>
  -Domain:      NET-DOMAIN</WWITEM>
  -Trust:       NET-DOMAIN Trust SCRATCH-DOMAIN (Therefore,
                accounts on SCRATCH-DOMAIN can be granted permissions 
                in the NET- DOMAIN).
		
Domínio domínio NET:
  • O banco de dados de conta de domínio para o domínio de rede domínio contém uma conta de USER1.
  • A conta de convidado está desativada.
Windows Server 2003:
  -Server Name:                       SCRATCH
  -Domain:                            SCRATCH-DOMAIN
  -Domain Database contains account:  USER1
  -Domain Database contains password: PSW1
		
Neste exemplo, o computador está conectado ao seu domínio local, não o domínio domínio zero onde reside a conta do domínio do computador.

Exemplo 2

Quando você executa o comando NET USE x: \\NET\share , ocorrem as seguintes etapas:
  1. Thecomputer envia o seguinte no SMB "Configuração da sessão":
    conta = "Usuário1"
    senha = "PSW1"
    domínio = "LOCAL1"
  2. O servidor \\NET recebe o SMB e examinamos o accountname.
  3. Ele examina sua anddoes de banco de dados de conta de domínio local não encontrar uma correspondência.
  4. O servidor então examina o nome de domínio SMB.
  5. O servidor não confia "LOCAL1", para que o servidor faz notcheck os domínios confiáveis.
  6. O servidor verifica a conta de convidado.
  7. A conta de convidado está desativada para o "hasoccurred de 1326 de erro do sistema. Falha de logon: nome de usuário desconhecido ou senha incorreta. "isgenerated de mensagem de erro.

Exemplo 3

Quando você executa o comando NET USE x: \\SCRATCH\share, ocorrem as seguintes etapas:
  1. Thecomputer envia o seguinte no SMB "Configuração da sessão":
    conta = "Usuário1"
    senha = "PSW1"
    domínio = "LOCAL1"
  2. O servidor \\SCRATCH recebe o SMB e examina o nome theaccount.
  3. Ele examina sua andfinds de banco de dados de conta do domínio local uma correspondência.
  4. O servidor compara a senha SMB a senha domainaccount.
  5. As senhas coincidem. Portanto, é gerada a mensagem "Comando CompletesSuccessfully".
No exemplo 2 e 3 de exemplo, a relação de confiança não está disponível. Se o computador foi registrado domínio domínio de zero, o comando NET USE x: \\NET\share teria sido bem-sucedida.

A solução ideal é ter todos os log de computadores em um domínio. Para fazer logon, o usuário deve especificar o domínio, a conta e a senha. Depois que você fizer isso, todos os NET USE-tipo comandos irá passar as informações corretas de domínio, conta e senha. Os administradores devem tentar evitar contas duplicadas em vários domínios e computadores. Computadores baseados em Windows 2000 e Windows Server 2003, no Windows XP ajudam a evitar essa configuração por meio de relações de confiança entre domínios e membros que podem usar bancos de dados do domínio.

Solução alternativa

Não há uma solução alternativa que pode ser usada nesses casos. No computador, você pode executar o seguinte comando:
NET USE X: \\NET\SHARE /USER:SCRATCH-PSW1 DOMAIN\USER1
Neste comando, a seguir é verdadeira:
  - \\NET = The computer name of the domain controller being accessed.
  - \SHARE = The share name.
  - /USER: command line parameter that lets you specify the domain,
    account and password that should be specified in the "Session Setup"
    SMB.
  - SCRATCH-DOMAIN = Domain name of the domain where the user
    account resides.
  - \USER1 = account to be validated against.
  - PSW1 = password that matches account on the domain.
		
Para obter mais informações sobre este comando, digite o seguinte no prompt de comando:
NET USE /?

Nomes de domínio nulo

O cliente SMB Microsoft que está incluído no Windows Server 2003, Windows XP e Windows 2000 envia nomes de domínio NULL na "configuração da sessão SMB [x 73]" SMB. O cliente SMB Microsoft lida com o nome de domínio, especificando o nome de logon do domínio e enviando um caractere nulo se o nome de domínio não for especificado, o comando NET USE . O cliente SMB Microsoft também exibirão o comportamento descrito no exemplo 1.

Anotações

  • O nome de domínio padrão está especificado no arquivo LANMAN.INI fileon o "domínio =" linha. Isso pode ser substituído pelo /DOMAIN: switch com o comando NET LOGON .
  • Geralmente há duas representações de "Nulo" theSMB: um nome de domínio de comprimento zero e um nome de domínio de um byte que consiste em thequestion marcar caractere (?). O servidor SMB captura o ponto de interrogação e converte a forma nulo antes de passá-lo para a autoridade de segurança local (LSA).

Solução de problemas

Uma boa dica para solucionar problemas de acesso de rede é habilitar a auditoria, fazendo o seguinte.

Windows 2000 e versões mais recentes dos controladores de domínio baseados no Windows 2000

  1. Das ferramentas administrativas em um controlador de domínio, startActive Directory Users and Computers.
  2. Clique com botão direito OU controladores de domínio, e clique em Propriedades.
  3. Na guia Diretiva de grupo , clique duas vezes emDiretiva de controlador de domínio padrão.
  4. No Editor de diretiva, clique em ComputerSettings, clique em Configurações do Windows, clique emConfigurações de segurança, Diretivas locais, e clique em Diretiva de auditoria.
  5. Selecione as opções de Logon e o sucesso de Logon de contae a Falha .

Configurações de domínio para servidores Windows 2000 e membros

  1. Das ferramentas administrativas em um controlador de domínio, startActive Directory Users and Computers.
  2. Clique com botão direito no nome do domínio e, em seguida, clique emPropriedades.
  3. Na guia Diretiva de grupo , clique duas vezes emDiretiva de domínio padrão.
  4. No Editor de diretiva, clique em ComputerSettings, clique em Configurações do Windows, clique emConfigurações de segurança, Diretivas locaise clique em Diretiva de auditoria.
  5. Selecione as opções de Logon e o sucesso de Logon de contae a Falha .

Configurações locais para servidores Windows 2000 e membros

  1. Em Ferramentas administrativas, inicie SecurityPolicy Local.
  2. Abrir a diretiva de auditoria.
  3. Selecione as opções de Logon e o sucesso de Logon de contae a Falha .
Agora, sempre que um usuário da rede acessa este servidor remotamente, uma trilha de auditoria será registrada no Visualizador de eventos. Para ver esses eventos em Visualizar eventos, clique em segurança no menu Log .

Para obter mais informações sobre relações de confiança, autenticação de passagem, permissões de usuário e logons de domínio, consulte a "Visão geral técnica do Windows Server 2003 Security Services." Para fazer isso, visite o seguinte site da Microsoft:
http://www.microsoft.com/windowsserver2003/techinfo/overview/Security.mspx

Mais Informações

Basicamente, a mesma validação de acesso de rede algoritmos são se aplica ao Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, o Windows Server 2012 R2.

Esses SOS possui vários recursos novos no SMB.

Windows Server 2008

http://technet.microsoft.com/en-us/library/ff625695 (v=ws.10).aspx

http://technet.microsoft.com/en-us/library/cc770740 (v=ws.10).aspx


Windows Server 2012

http://technet.microsoft.com/en-us/library/hh831795.aspx

Propriedades

ID do artigo: 103390 - Última revisão: sábado, 15 de março de 2014 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
Palavras-chave: 
kbnetwork kbmt KB103390 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 103390

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com