Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Configuração

Diagrama e cenário de rede

Determinar o DN de base e o DN do grupo do LDAP

Copiar a Raiz do Certificado SSL LDAPS

No caso de vários certificados instalados no armazenamento do computador local no servidor LDAPs (opcional)

Configurações do FMC

Verificar licenciamento

Configurar realm

Configurar o AnyConnect para gerenciamento de senha

Implantar

Configuração final

Configuração do AAA

Configuração do AnyConnect

Verificação

Conectar-se ao AnyConnect e verificar o processo de gerenciamento de senhas para a conexão do usuário

Troubleshooting

Debugs

Trabalhando com depurações de gerenciamento de senhas

Erros comuns encontrados durante o gerenciamento de senhas

Introdução

Este documento descreve a configuração do Gerenciamento de senhas usando LDAPs para clientes AnyConnect que se conectam ao Cisco Firepower Threat Defense (FTD).

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento básico destes tópicos:

- Conhecimento básico da configuração da VPN (Remote Access Virtual Private Network) do RA no FMC

- Conhecimento básico da configuração do servidor LDAP no FMC

- Conhecimento básico do Active Directory

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Servidor Microsoft 2012 R2

- FMCv executando 7.3.0

- FTDv executando 7.3.0

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Configuração

Diagrama e cenário de rede

O servidor Windows é pré-configurado com ADDS e ADCS para testar o processo de gerenciamento de senha do usuário. Neste guia de configuração, essas contas de usuário são criadas.

Contas do usuário:

- Administrador: usado como a conta do diretório para permitir que o FTD se vincule ao servidor do Ative Diretory.

- admin: uma conta de administrador de teste usada para demonstrar a identidade do usuário.

Determinar o DN de base e o DN do grupo do LDAP

1. AbrirActive Directory Users and Computers através do Painel do Gerenciador do Servidor.

2. Abra o View Option no painel superior e ative a opçãoAdvanced Features,conforme mostrado na imagem:

3. Isso permite a exibição de propriedades adicionais sob os objetos do AD.

Por exemplo, para encontrar o DN da raiz razor.local, clique com o botão direito do mouse razor.locale escolha Properties, como mostrado nesta imagem:

4. Sob Properties, escolha o Attribute Editor guia. Localizar distinguishedName em Atributos, clique em View,conforme mostrado na imagem.

Essa ação abre uma nova janela em que o DN pode ser copiado e colado no FMC posteriormente.

Neste exemplo, o DN raiz é DC=razor, DC=local. Copie o valor e salve-o para depois. Clique em OK para sair da janela Editor de atributos de string e clique em OK novamente para sair das Propriedades.

Copiar a Raiz do Certificado SSL LDAPS

1. Pressione Win+R e insira mmc.exee clique em OK, como mostrado nesta imagem.

2. Navegue até File > Add/Remove Snap-in..., conforme mostrado nesta imagem:

3. Em snap-ins disponíveis, escolha Certificates e clique em Add, como mostrado nesta imagem:

4. Escolher Computer account e clique em Next, como mostrado nesta imagem:

Como mostrado aqui, clique em Finish.

5. Agora, clique em OK, como mostrado nesta imagem.

6. Expanda a Personal e clique em Certificates. O certificado usado por LDAPs deve ser emitido para o FQDN (Fully Qualified Domain Name, Nome de domínio totalmente qualificado) do servidor Windows. Neste servidor, há três certificados listados:

- Um Certificado CA foi emitido para e por razor-WIN-E3SKFJQD6J7-CA.

- Um certificado CA emitido para e por supinfo-WIN-FNJVP9QUEH9-CA.

- Um certificado de identidade foi emitido para WIN-E3SKFJQD6J7.razor.local por razor-WIN-E3SKFJQD6J7-CA.

Neste guia de configuração, o FQDN é WIN-E3SKFJQD6J7.razor.local e, portanto, os dois primeiros certificados não são válidos para uso como o certificado SSL LDAPs. O certificado de identidade emitido para WIN-E3SKFJQD6J7.razor.local é um certificado que foi emitido automaticamente pelo serviço de CA do Windows Server. Clique duas vezes no certificado para verificar os detalhes.

7. Para ser usado como o Certificado SSL LDAPs, o certificado deve atender aos seguintes requisitos:

- O nome comum ou nome alternativo do assunto DNS corresponde ao FQDN do Windows Server.

- O certificado tem autenticação de servidor no campo Uso avançado de chave.

Sob o comandoDetails para o certificado, escolhaSubject Alternative Name, onde o FQDN WIN-E3SKFJQD6J7.razor.local está presente.

Sob Enhanced Key Usage, Server Authentication está presente.

8. Uma vez confirmado, sob o comando Certification Path selecione o certificado de nível superior, que é o certificado raiz da CA, e clique em View Certificate. Isso abre os detalhes do certificado para o certificado CA raiz conforme mostrado na imagem:

9. Sob o comando Details do certificado CA raiz, clique em Copy to File e navegue peloCertificate Export Wizard que exporta a CA raiz no formato PEM.

Escolher Base-64 encoded X.509 como o formato do arquivo.

10. Abra o certificado de CA raiz armazenado no local selecionado na máquina com um bloco de notas ou algum outro editor de texto.

Essa ação mostra o certificado em formato PEM. Salve-o para usar mais tarde.

-----BEGIN CERTIFICATE-----

MIIDfTCCAmWgAwIBAgIQV4ymxtI3BJ9JHnDL+luYazANBgkqhkiG9w0BAQUFADBRMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxFTATBgoJkiaJk/IsZAEZFgVyYXp

vcjEhMB8GA1UEAxMYcmF6b3ItV0lOLUUzU0tGSlFENko3LUNBMB4XDTIxMDMyMjE0MzMxNVoXDTI2MDMyMjE0NDMxNVowUTEVMBMGCgmSJomT8ixkARkW

BWxvY2FsMRUwEwYKCZImiZPyLGQBGRYFcmF6b3IxITAfBgNVBAMTGHJhem9yLVdJTi1FM1NLRkpRRDZKNy1DQTCCASIwDQYJKoZIhvcNAQEBBQADggEPAD

CCAQoCggEBAL803nQ6xPpazjj+HBZYc+8fV++RXCG+cUnblxwtXOB2G4UxZ3LRrWznjXaS02Rc3qVw4lnOAziGs4ZMNM1X8UWeKuwi8QZQljJtuSBxL4yjWLyPIg

9dkncZaGtQ1cPmqcnCWunfTsaENKbgoKi4eXjpwwUSbEYwU3OaiiI/tp422ydy3Kgl7Iqt1s4XqpZmTezykWra7dUyXfkuESk6lEOAV+zNxfBJh3Q9Nzpc2IF/FtktWnhj

CSkTQTRXYryy8dJrWjAF/n6A3VnS/l7Uhujlx4CD20BkfQy6p5HpGxdc4GMTTnDzUL46ot6imeBXPHF0IJehh+tZk3bxpoxTDXECAwEAAaNRME8wCwYDVR0PBAQ

DAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFM+DkqQUAOdY379NnViaMIJAVTZ1MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQU

AA4IBAQCiSm5U7U6Y7zXdx+dleJd0QmGgKayAAuYAD+MWNwC4NzFD8Yr7BnO6f/VnF6VGYPXa+Dvs7VLZewMNkp3i+VQpkBCKdhAV6qZu15697plajfI/eNPrcI

4sMZffbVrGlRz7twWY36J5G5vhNUhzZ1N2OLw6wtHg2SO8XlvpTS5fAnyCZgSK3VPKfXnn1HLp7UH5/SWN2JbPL15r+wCW84b8nrylbBfn0NEX7l50Ff502DYCP

GuDsepY7/u2uWfy/vpTJigeok2DH6HFfOET3sE+7rsIAY+of0kWW5gNwQ4hOwv4Goqj+YQRAXXi2OZyltHR1dfUUbwVENSFQtDnFA7X

-----END CERTIFICATE-----

No caso de vários certificados instalados no armazenamento do computador local no servidor LDAPs (opcional)

1. Numa situação de múltiplos certificados de identificação que podem ser utilizados pelo LDAPS e quando há incerteza quanto ao que é utilizado, ou quando não há acesso ao servidor LDAPS, ainda é possível extrair a AC raiz de uma captura de pacotes efetuada no FTD.

2. Caso você tenha vários certificados válidos para Autenticação de Servidor no servidor LDAP (como o controlador de domínio do AD DS) armazenamento de certificados de computador local, observe que um certificado diferente é usado para comunicações LDAPS. A melhor solução para esse problema é remover todos os certificados desnecessários do repositório de certificados do computador local e ter apenas um certificado válido para a autenticação do servidor.

No entanto, se houver um motivo legítimo para você exigir dois ou mais certificados e ter pelo menos um servidor LDAP do Windows Server 2008, o armazenamento de certificados dos Serviços de Domínio Ative Diretory (NTDS\Personal) poderá ser usado para comunicações LDAPs.

Estas etapas demonstram como exportar um certificado habilitado para LDAPS de um repositório de certificados do computador local do controlador de domínio para o repositório de certificados do serviço dos Serviços de Domínio Ative Diretory (NTDS\Personal).

- Navegue até o console MMC no servidor do Ative Diretory, escolha Arquivo e clique em Add/Remove Snap-in.

- Clique em Certificates e clique em Add.

- No Certificates snap-in, escolha Computer account e clique em Next.

- IN Select Computer, escolha Local Computer, clique em OKe clique em Finish. IN Add or Remove Snap-ins, clique em OK.

- No console de certificados de um computador que contém um certificado usado para Autenticação de Servidor, clique com o botão direito do mouse no certificate, clique em All Taskse clique em Export.

- Exportar o certificado no pfx nas seções subsequentes. Consulte este artigo sobre como exportar um certificado no pfx formato do MMC:

https://www.cisco.com/c/en/us/support/docs/security/web-security-appliance/118339-technote-wsa-00.html.

- Quando a exportação do certificado for concluída, navegue até Add/Remove Snap-in ligado MMC console. Clique em Certificates e clique em Add.

- Escolher Service account e clique em Next.

- No Select Computer , escolha Local Computer e clique em Next.

- Escolher Active Directory Domain Services e clique em Finish.

- Na guia Add/Remove Snap-ins , clique em OK.

- Expandir Certificates - Services (Active Directory Domain Services) e clique em NTDS\Personal.

- Clique com o botão direito do mouse NTDS\Personal, clique em All Taskse clique em Import.

- Na guia Certificate Import Wizard bem-vindo, clique em Next.

- Na tela Arquivo a ser importado, clique em Browsee localize o arquivo de certificado que você exportou anteriormente.

- Na tela Aberta, verifique se a opção Troca de informações pessoais (*pfx,*.p12) é selecionado como o tipo de arquivo e, em seguida, navegue pelo sistema de arquivos para localizar o certificado exportado anteriormente. Em seguida, clique nesse certificado.

- Clique em Open e clique em Next.

- Na tela Senha, digite a senha definida para o arquivo e clique em Next.

- Na página Repositório de Certificados, certifique-se de que a opção Colocar todos os certificados esteja selecionada e leia Repositório de Certificados: NTDS\Personal e clique em Next.

- Na guia Certificate Import Wizard de conclusão, clique em Finish. Em seguida, você verá uma mensagem de que a importação foi bem-sucedida. Clique em OK. Verifica-se que o certificado foi importado no armazenamento de certificados: NTDS\Personal.

Configurações do FMC

Verificar licenciamento

Para implantar a configuração do AnyConnect, o FTD deve ser registrado com o servidor de licenciamento inteligente e uma licença Plus, Apex ou VPN Only válida deve ser aplicada ao dispositivo.

Configurar realm

1. Navegue até System > Integration. Navegue até Realmse clique em Add Realm, como mostrado nesta imagem:

2. Preencha os campos exibidos com base nas informações coletadas do servidor Microsoft para LDAPs. Antes disso, importe o Certificado de CA raiz que assinou o certificado do serviço LDAP no Windows Server em Objects > PKI > Trusted CAs > Add Trusted CA, como é referenciado noDirectory Server Configuration  do território. Depois de concluído, clique em OK.

3. Clique em Test para garantir que o FMC possa ligar-se com êxito ao nome de usuário e à senha do diretório fornecidos na etapa anterior. Como esses testes são iniciados a partir do FMC e não por meio de uma das interfaces roteáveis configuradas no FTD (como interno, externo, dmz), uma conexão bem-sucedida (ou com falha) não garante o mesmo resultado para a autenticação do AnyConnect, já que as solicitações de autenticação LDAP do AnyConnect são iniciadas a partir de uma das interfaces roteáveis do FTD.

4. Ative o novo realm.

Configurar o AnyConnect para gerenciamento de senha

1. Escolha o perfil de conexão existente ou crie um novo, se for uma configuração inicial do AnyConnect. Aqui, é usado um perfil de conexão existente chamado 'AnyConnect-AD' mapeado com autenticação local.

2. Edite o perfil do Connection e mapeie o novo servidor LDAP configurado nas etapas anteriores, sob as configurações AAA do Perfil de conexão. Depois de concluído, clique emSave no canto superior direito.

3. Habilite o gerenciamento de senhas no AAA > Advanced Settings e salve a configuração.

Implantar

1. Depois de concluir todas as configurações, clique no botãoDeploy na parte superior direita.

2. Clique na caixa de seleção ao lado da configuração do FTD aplicada a ele e clique em Deploy, como mostrado nesta imagem:

Configuração final

Esta é a configuração vista na CLI do FTD após a implantação bem-sucedida.

Configuração do AAA

> show running-config aaa-server

aaa-server LDAP-Server protocol ldap                                                          <------ aaa-server group configured for LDAPs authentication

max-failed-attempts 4

realm-id 8

aaa-server LDAP-Server host WIN-E3SKFJQD6J7.razor.local                          <-------- LDAPs Server to which the queries are sent

server-port 636

ldap-base-dn DC=razor,DC=local

ldap-group-base-dn DC=razor,DC=local

ldap-scope subtree

ldap-naming-attribute sAMAccountName

ldap-login-password *****

ldap-login-dn *****@razor.local

ldap-over-ssl enable

server-type microsoft

Configuração do AnyConnect

> show running-config webvpn

webvpn

enable Outside

anyconnect image disk0:/csm/anyconnect-win-4.10.01075-webdeploy-k9.pkg 1 regex "Windows"

anyconnect profiles FTD-Client-Prof disk0:/csm/ftd.xml

anyconnect enable

tunnel-group-list enable

cache

no disable

error-recovery disable

> show running-config tunnel-group

tunnel-group AnyConnect-AD type remote-access

tunnel-group AnyConnect-AD general-attributes

address-pool Pool-1

authentication-server-group LDAP-Server                                            <-------- LDAPs Server group name mapped to the tunnel-group

default-group-policy AnyConnect-Group

password-management password-expire-in-days 1                             <-------- Password-management configuration mapped under the tunnel-group

tunnel-group AnyConnect-AD webvpn-attributes

group-alias Dev enable

> show running-config group-policy AnyConnect-Group

group-policy AnyConnect-Group internal                                                    <--------- Group-Policy configuration that is mapped once the user is authenticated

group-policy AnyConnect-Group attributes

vpn-simultaneous-logins 3

vpn-idle-timeout 35791394

vpn-idle-timeout alert-interval 1

vpn-session-timeout none

vpn-session-timeout alert-interval 1

vpn-filter none

vpn-tunnel-protocol ikev2 ssl-client                                                 <-------- Protocol specified as SSL to entertain the AnyConnect connection over port 443

split-tunnel-policy tunnelspecified

split-tunnel-network-list value Remote-Access-Allow

default-domain none

split-dns none

split-tunnel-all-dns disable

client-bypass-protocol disable

vlan none

address-pools none

webvpn

anyconnect ssl dtls enable

anyconnect mtu 1406

anyconnect firewall-rule client-interface public none

anyconnect firewall-rule client-interface private none

anyconnect ssl keepalive 20

anyconnect ssl rekey time none

anyconnect ssl rekey method none

anyconnect dpd-interval client 30

anyconnect dpd-interval gateway 30

anyconnect ssl compression none

anyconnect dtls compression none

anyconnect modules value none

anyconnect profiles value FTD-Client-Prof type user

anyconnect ask none default anyconnect

anyconnect ssl df-bit-ignore disable

> show running-config ssl

ssl trust-point ID-New-Cert Outside                                                   <-------- FTD ID-cert trustpoint name mapped to the outside interface on which AnyConnect Connections are entertained

Verificação

Conectar-se ao AnyConnect e verificar o processo de gerenciamento de senhas para a conexão do usuário

1. Inicie uma Conexão com o perfil de conexão em questão. Depois que for determinado no login inicial que a senha deve ser alterada, uma vez que a senha anterior foi rejeitada pelo Microsoft Server quando expirou, o usuário é solicitado a alterar a senha.

2. Depois que o usuário digitar a nova senha para login, a conexão será estabelecida com êxito.

3. Verifique a conexão do usuário na CLI do FTD:

FTD_2# sh vpn-sessiondb anyconnect

Session Type: AnyConnect

Username     : admin                Index        : 7                                                                                                    <------- Username, IP address assigned information of the client

Assigned IP  : 10.1.x.x               Public IP    : 10.106.xx.xx

Protocol     : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel

License      : AnyConnect Premium

Encryption   : AnyConnect-Parent: (1)none  SSL-Tunnel: (1)AES-GCM-256  DTLS-Tunnel: (1)AES-GCM-256

Hashing      : AnyConnect-Parent: (1)none  SSL-Tunnel: (1)SHA384  DTLS-Tunnel: (1)SHA384

Bytes Tx     : 16316                  Bytes Rx     : 2109

Group Policy : AnyConnect-Group       Tunnel Group : AnyConnect-AD                                                  <-------- Tunnel-Group to which the AnyConnect connection falls, and the group-policy assigned to user

Login Time   : 13:22:24 UTC Mon Apr 25 2022

Duration     : 0h:00m:51s

Inactivity   : 0h:00m:00s

VLAN Mapping : N/A                    VLAN         : none

Audt Sess ID : 0ac5e0fa000070006266a090

Security Grp : none                   Tunnel Zone  : 0

Troubleshooting

Debugs

Essa depuração pode ser executada na CLI de diagnóstico para solucionar problemas relacionados ao gerenciamento de senhas: debug ldap 255.

Trabalhando com depurações de gerenciamento de senhas

[24] Session Start

[24] New request Session, context 0x0000148f3c271830, reqType = Authentication

[24] Fiber started

[24] Creating LDAP context with uri=ldaps://10.106.71.234:636

[24] Connect to LDAP server: ldaps://10.106.71.234:636, status = Successful                                                    <-------- Successful connection to the LDAPs server over post 636

[24] supportedLDAPVersion: value = 3

[24] supportedLDAPVersion: value = 2

[24] Binding as *****@razor.local

[24] Performing Simple authentication for *****@razor.local to 10.106.71.234

[24] LDAP Search:

Base DN = [DC=razor,DC=local]

Filter  = [sAMAccountName=admin]

Scope   = [SUBTREE]

[24] User DN = [CN=admin,CN=Users,DC=razor,DC=local]

[24] Talking to Active Directory server 10.106.71.234

[24] Reading password policy for admin, dn:CN=admin,CN=Users,DC=razor,DC=local                                <--------- Once the client enters credentials during initial login, if the password is expired, then it is read and the user is asked to provide a new password

[24] Read bad password count 3

[24] Binding as admin

[24] Performing Simple authentication for admin to 10.106.71.234

[24] Simple authentication for admin returned code (49) Invalid credentials

[24] Message (admin): 80090308: LdapErr: DSID-0C0903C5, comment: AcceptSecurityContext error, data 773, v23f0

[24] Checking password policy

[24] New password is required for admin                                                                                                           <---------- New password is asked to be provided

[24] Fiber exit Tx=622 bytes Rx=2771 bytes, status=-1

[24] Session End

[25] Session Start

[25] New request Session, context 0x0000148f3c271830, reqType = Modify Password

[25] Fiber started

[25] Creating LDAP context with uri=ldaps://10.106.71.234:636

[25] Connect to LDAP server: ldaps://10.106.71.234:636, status = Successful                                                                       <----------- New connection is initiated to the LDAPs server for the password change

[25] supportedLDAPVersion: value = 3

[25] supportedLDAPVersion: value = 2

[25] Binding as *****@razor.local

[25] Performing Simple authentication for *****@razor.local to 10.106.71.234

[25] LDAP Search:

Base DN = [DC=razor,DC=local]

Filter  = [sAMAccountName=admin]

Scope   = [SUBTREE]

[25] User DN = [CN=admin,CN=Users,DC=razor,DC=local]

[25] Talking to Active Directory server 10.106.71.234

[25] Reading password policy for admin, dn:CN=admin,CN=Users,DC=razor,DC=local

[25] Read bad password count 3

[25] Change Password for admin successfully converted old password to unicode

[25] Change Password for admin successfully converted new password to unicode                                                            <----------- Client provides the new password value

[25] Password for admin successfully changed                                                                                                                  <----------- Password is changed successfully for the client

[25] Retrieved User Attributes:

[25]   objectClass: value = top

[25]   objectClass: value = person

[25]   objectClass: value = organizationalPerson

[25]   objectClass: value = user

[25]   cn: value = admin

[25]   givenName: value = admin

[25]   distinguishedName: value = CN=admin,CN=Users,DC=razor,DC=local

[25]   instanceType: value = 4

[25]   whenCreated: value = 20201029053516.0Z

[25]   whenChanged: value = 20220426032127.0Z

[25]   displayName: value = admin

[25]   uSNCreated: value = 16710

[25]   uSNChanged: value = 98431

[25]   name: value = admin

[25]   objectGUID: value = ..0.].LH.....9.4

[25]   userAccountControl: value = 512

[25]   badPwdCount: value = 3

[25]   codePage: value = 0

[25]   countryCode: value = 0

[25]   badPasswordTime: value = 132610388348662803

[25]   lastLogoff: value = 0

[25]   lastLogon: value = 132484577284881837

[25]   pwdLastSet: value = 0

[25]   primaryGroupID: value = 513

[25]   objectSid: value = ................7Z|....RQ...

[25]   accountExpires: value = 9223372036854775807

[25]   logonCount: value = 0

[25]   sAMAccountName: value = admin

[25]   sAMAccountType: value = 805306368

[25]   userPrincipalName: value = ******@razor.local

[25]   objectCategory: value = CN=Person,CN=Schema,CN=Configuration,DC=razor,DC=local

[25]   dSCorePropagationData: value = 20220425125800.0Z

[25]   dSCorePropagationData: value = 20201029053516.0Z

[25]   dSCorePropagationData: value = 16010101000000.0Z

[25]   lastLogonTimestamp: value = 132953506361126701

[25]   msDS-SupportedEncryptionTypes: value = 0

[25]   uid: value = ******@razor.local

[25] Fiber exit Tx=714 bytes Rx=2683 bytes, status=1

[25] Session End

Erros comuns encontrados durante o gerenciamento de senhas

Geralmente, se a política de senha definida pelo Microsoft Server não for atendida durante o tempo em que o usuário fornecer a nova senha, a conexão será encerrada com o erro "A senha não atende aos requisitos da política de senha". Portanto, certifique-se de que a nova senha atenda à política definida pelo Microsoft Server para LDAPs.