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

Artigo: 103390 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Segue-se um algoritmo simplificado que explica como validação de conta do Windows é observada para função durante o acesso à rede utilizando o protocolo NTLM. Está a utilizar acesso através do protocolo server message block (SMB) do exemplo, mas se aplica a todas as outras aplicações de servidor que suportem a autenticação NTLM. Esta discussão não abrange o funcionamento interno deste processo. Com estas informações, poderá prever Windows comportamento de início de sessão em determinista condições de rede.
Quando o Kerberos é utilizado para autenticar o utilizador e obter acesso a recursos do servidor, o processo é muito diferente do que faz NTLM. Para mais informações, visite o seguinte site da Web da Microsoft TechNet:
http://technet2.microsoft.com/WindowsServer/en/Library/f5c70774-25cd-4481-8b7a-3d65c86e69b11033.mspx
Tenha em atenção que a base de dados local é a base de dados do domínio e a única base de dados nos controladores de domínio. Mas em outros servidores e todos os computadores, a base de dados local difere o controlador de domínio.

Informações de fundo

Quando dois computadores baseados no Windows Server 2003, baseado no Windows XP ou baseados no Windows 2000 comunicam através de uma rede, utilizam um protocolo de nível superior denominado bloco de mensagem de servidor (SMB). Comandos SMB são incorporados nos protocolos de transporte, tal como interface do utilizador avançado de NetBIOS (NetBEUI) ou TCP/IP. Por exemplo, quando um computador cliente executa um comando NET USE , é enviado um pacote de "SMB sessão de programa de configuração e X".

No Windows, "Session Setup" SMB inclui a conta de utilizador, uma função de hash do domínio de início de sessão e palavra-passe encriptada. Um controlador de domínio irá examinar todas estas informações para determinar se o cliente tem permissões para concluir o comando NET USE .

Algoritmos

Um computador de cliente Windows envia o seguinte comando para um servidor: computador cliente do Windows O
   NET USE x: \\server\share
		
envia um SMB "Session Setup" que contém o domínio de início de sessão, conta de utilizador e palavra-passe.

O servidor examina o nome de domínio ou nome de computador que foi especificado pelo SMB. Se o nome é o nome do servidor, o seguinte algoritmo é executado:
    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 é que o servidor de fidedignidades, é executado o seguinte algoritmo:
    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 está configurado, o seguinte algoritmo é 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
se o domínio especificado no SMB é desconhecido pelo servidor, por exemplo, se foi especificado um domínio, mas não foi reconhecido pelo servidor como um domínio fidedigno ou o controlador de domínio, o seguinte algoritmo é 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 especificado no SMB for NULL, ou seja, não é especificado nenhum domínio, o seguinte algoritmo é executado:
    The server will treat this 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
		

Notas

  1. Se a conta de convidado está desactivada e o utilizador não tem uma conta, o servidor pedirá ainda uma palavra-passe. Embora nenhuma palavra-passe irá cumprir os requisitos, o servidor pedirá ainda uma palavra-passe como medida de segurança. Esta medida de segurança assegura que um utilizador não autorizado não perceber a diferença entre um incidente onde existe uma conta e quando a conta não existe. Sempre vai ser pedido ao utilizador uma palavra-passe independentemente se a conta já existe.
  2. Neste ponto, as informações seguintes são devolvidas do domínio fidedigno na resposta: SID de domínio, ID de utilizador, membros de grupos globais, hora de início de sessão, hora de fim de sessão, KickOffTime, nome completo, LastSet de palavra-passe, palavra-passe pode alterar sinalizador, sinalizador de alterar tem palavra-passe, script de utilizador, caminho do perfil, directório raiz e contagem de palavra-passe incorrecta.
  3. Não se for encontrada nenhuma conta no domínio fidedigno, o sistema operativo tem de utilizar a conta de convidado local para garantir um comportamento consistente de autenticação relativamente ao servidor.
  4. Para obter mais informações sobre como restringir a pesquisa de isolado nomes externos de domínios fidedignos utilizando a entrada de registo LsaLookupRestrictIsolatedNameLevel, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    818024Como restringir a pesquisa de isolado nomes externos de domínios fidedignos utilizando a entrada de registo LsaLookupRestrictIsolatedNameLevel
  • Contas de convidado em domínios fidedignos nunca estará disponíveis.
  • O processo interno, real é mais complexo do que os algoritmos são aqui descritos.
  • Estes algoritmos não debater mechanics real da autenticação pass-through. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    102716A autenticação de utilizador NTLM no Windows
  • Estes algoritmos não explica o processo de encriptação de palavra-passe que é utilizado no Windows Server 2003, Windows XP e Windows 2000. Um objectos grandes binários (BLOB) derivado de um hash unidireccional palavra-passe é enviado como parte do pedido de autenticação. O conteúdo deste BLOB dependerá do protocolo de autenticação seleccionado para o início de sessão.
  • Este artigo não explica o funcionamento interno do módulo de autenticação da Microsoft.
  • Estes algoritmos partem do princípio que a conta de convidado, quando activada, tem sem palavra-passe. Por predefinição, a conta de convidado não tem uma palavra-passe no Windows Server 2003, Windows XP e Windows 2000. Se for especificada uma palavra-passe da conta de convidado, a palavra-passe do utilizador que é enviada no SMB deverão corresponder às palavra-passe de que conta de convidado.

Exemplos

Seguem-se exemplos destes algoritmos em acção.

Exemplo 1

Tem sessão iniciada no computador utilizando o mesmo nome de conta e palavra-passe que está a ser a base de dados novo domínio de contas de domínio. Quando executa o comando NET USE \\SCRATCH para o controlador de domínio para o domínio do domínio de raiz, o comando for concluído com êxito. Quando executar o comando NET USE \\NET para o controlador de domínio nesse domínio fidedignidades de domínio de raiz, receberá a seguinte mensagem de erro:
Sistema 1326 erro. Falha de início de sessão: nome de utilizador desconhecido ou palavra-passe incorrecta.
A conta \SCRATCH-DOMAIN\USER1 tem as permissões no \\NET.

Nota Este exemplo assume 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:
  • A base de conta de domínio dados para o domínio de NET-domínio não contém uma conta de Utilizador1.
  • A conta de convidado está desactivada.
Windows Server 2003:
  -Server Name:                       SCRATCH
  -Domain:                            SCRATCH-DOMAIN
  -Domain Database contains account:  USER1
  -Domain Database contains password: PSW1
		
neste exemplo, o computador é registado no respectivo domínio local, não o domínio do domínio raiz onde reside a conta de domínio do computador.

Exemplo 2

Quando executa o comando NET USE x: \\NET\share , ocorrem os seguintes passos:
  1. O computador envia seguinte no SMB "Session Setup":
    conta = "Utilizador1"
    palavra-passe = "PSW1"
    domínio = "LOCAL1"
  2. O servidor \\NET recebe o SMB e olhou para o nome da conta.
  3. O servidor examina a respectiva base de conta de domínio local dados e não encontrar uma correspondência.
  4. O servidor, em seguida, examina o nome de domínio SMB.
  5. O servidor não fidedigna "LOCAL1," para que o servidor não verifica os domínios fidedignos.
  6. O servidor, em seguida, verifica a respectiva conta de convidado.
  7. A conta de convidado está desactivada, o "sistema 1326 erro. Falha de início de sessão: nome de utilizador desconhecido ou palavra-passe incorrecta. "mensagem de erro é gerada.

Exemplo 3

Quando executa o comando NET USE x: \\SCRATCH\share , ocorrem os seguintes passos:
  1. O computador envia seguinte no SMB "Session Setup":
    conta = "Utilizador1"
    palavra-passe = "PSW1"
    domínio = "LOCAL1"
  2. O servidor \\SCRATCH recebe o SMB e examina o nome da conta.
  3. O servidor examina a respectiva base de conta de domínio local dados e encontra uma correspondência.
  4. Em seguida, o servidor compara a palavra-passe SMB para a palavra-passe da conta de domínio.
  5. As palavras-passe correspondem. Por conseguinte, é gerada a mensagem "com comando conclui êxito".
No exemplo 2 e 3 de exemplo, a relação de fidedignidade não está disponível. Se o computador tinha sido iniciado sessão no domínio do domínio de raiz, o comando NET USE x: \\NET\share poderia ter sido com êxito.

A solução ideal consiste em ter todos os computadores registo para um domínio. Para iniciar sessão, o utilizador tem de especificar o domínio, conta e palavra-passe. Depois de o fazer, todos os NET USE -tipo comandos passará as informações de domínio, conta e palavra-passe correctas. Os administradores deverão tentar evitar contas duplicadas em computadores e vários domínios. Computadores baseados no Windows 2000 e Windows Server 2003, Windows XP ajudam a evitar esta configuração, utilizar fidedignidades entre domínios e utilizando membros que podem utilizar bases de dados de domínio.

Solução

Existe uma solução que pode ser utilizada nestes casos. A partir do computador, pode executar o seguinte comando:
NET USE X: \\NET\SHARE /USER:SCRATCH-DOMAIN\USER1 PSW1
Neste comando, acontece o seguinte:
  - \\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, escreva o seguinte na linha de comandos:
NET USE /?

Nomes de domínio NULL

A Microsoft SMB cliente incluído no Windows Server 2003, Windows XP e Windows 2000 envia nomes de domínio NULL na "sessão configuração SMB [x 73]" SMB. O cliente SMB Microsoft processa o nome de domínio, especificando o nome de domínio de início de sessão e enviando um carácter nulo se o nome de domínio não for especificado no comando NET USE . O cliente Microsoft SMB também vai apresentar o comportamento descrito no exemplo 1.

Notas

  • O nome de domínio predefinido é especificado no ficheiro LANMAN.ini no "DOMAIN =" linha. Isto pode ser substituído pelo / DOMAIN: mudar com o comando NET LOGON .
  • Normalmente, existem duas representações de "NULL" no SMB: um nome de domínio de comprimento zero e um nome de um byte domínio que consiste o carácter de ponto de interrogação (?). O servidor SMB identificou o ponto de interrogação e converte-NULL antes de passar à autoridade de segurança local (LSA).

Resolução de problemas

Uma boa sugestão para a resolução de problemas de acesso de rede deve activar a auditoria, efectuando o seguinte procedimento.

Windows 2000 e versões posteriores de controladores de domínio baseado no Windows 2000

  1. A partir das ferramentas administrativas num controlador de domínio, inicie computadores e utilizadores do Active Directory.
  2. Clique com o botão direito do rato OU dos controladores de domínio e, em seguida, clique em Propriedades .
  3. No separador Política de grupo , faça duplo clique em Política predefinida de controlador de domínio .
  4. No Editor de política, clique em Definições do computador , clique em Definições do Windows , clique em Definições de segurança , clique em Políticas locais (Local Policies) e clique em Política de auditoria .
  5. Seleccione o início de sessão e com êxito de início de sessão de conta e a opção de Falha .

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

  1. A partir das ferramentas administrativas num controlador de domínio, inicie computadores e utilizadores do Active Directory.
  2. Clique com o botão direito do rato no nome de domínio e, em seguida, clique em Propriedades .
  3. No separador Política de grupo , faça duplo clique em Política predefinida de domínio .
  4. No Editor de política, clique em Definições do computador , clique em Definições do Windows, clique em Definições de segurança , clique em Políticas locais (Local Policies) e clique em Política de auditoria .
  5. Seleccione o início de sessão e com êxito de início de sessão de conta e a opção de Falha .

Definições de locais para servidores Windows 2000 e membros

  1. Ferramentas administrativas, inicie o local de segurança política.
  2. Abra Política de auditoria.
  3. Seleccione o início de sessão e com êxito de início de sessão de conta e a opção de Falha .
Agora, sempre que um utilizador de rede acede a este servidor remotamente, um registo de auditoria será registado no Visualizador de eventos. Para ver estes eventos no Visualizador de eventos, clique em segurança no menu Iniciar .

Para obter mais informações sobre relações de fidedignidade, autenticação pass-through, permissões de utilizador e inícios de sessão de domínio, consulte o "Descrição técnica geral do Windows Server 2003 Security Services." Para o fazer, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/windowsserver2003/techinfo/overview/security.mspx

Propriedades

Artigo: 103390 - Última revisão: terça-feira, 20 de Fevereiro de 2007 - Revisão: 4.4
A informação contida neste artigo aplica-se a:
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
Palavras-chave: 
kbmt kbnetwork KB103390 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 103390

Submeter comentários