Introdução
Este documento descreve a configuração de um headend do FlexVPN para acesso por meio da autenticação IKEv2/EAP do Secure Client (AnyConnect) com um banco de dados de usuário local.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- Cloud Services Router versão 16.9.2
- Cliente AnyConnect versão 4.6.03049 em execução no Windows 10
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.
Informações de Apoio
O AnyConnect-EAP, ou autenticação agregada, permite que um servidor FlexVPN autentique o cliente AnyConnect pelo método proprietário do AnyConnect-EAP da Cisco.
Diferentemente dos métodos EAP (Extensible Authentication Protocol) baseados em padrões, como EAP-Generic Token Card (EAP-GTC), EAP-Message Digest 5 (EAP-MD5) e outros, o FlexVPN Server não opera no modo de passagem EAP.
Toda a comunicação EAP com o cliente termina no servidor FlexVPN e a chave de sessão necessária usada para construir o payload AUTH é calculada localmente pelo servidor FlexVPN.
O servidor FlexVPN deve se autenticar no cliente com certificados conforme exigido pelo RFC IKEv2.
A autenticação de usuário local agora é suportada no servidor Flex e a autenticação remota é opcional.
Isso é ideal para implantações de pequena escala com menos usuários e ambientes de acesso remoto sem acesso a um servidor externo de autenticação, autorização e tarifação (AAA).
No entanto, para implantações em larga escala e em cenários onde atributos por usuário são desejados, ainda é recomendável usar um servidor AAA externo para autenticação e autorização.
A implementação do AnyConnect-EAP permite o uso do Radius para autenticação, autorização e tarifação remotas.
Diagrama de Rede

Configurar
Autenticação e autorização de usuários com o banco de dados local
Note: Para autenticar os usuários no banco de dados local no roteador, o EAP precisa ser usado. No entanto, para usar o EAP, o método de autenticação local deve ser rsa-sig, portanto, o roteador precisa de um certificado de identidade apropriado e não pode usar um certificado autoassinado.
Exemplo de configuração que usa autenticação de usuário local, autorização de usuário remoto e de grupo e contabilidade remota.
Etapa 1. Ative o AAA e configure as listas de autenticação, autorização e contabilidade e adicione um nome de usuário ao banco de dados local:
aaa new-model
!
aaa authentication login a-eap-authen-local local
aaa authorization network a-eap-author-grp local
!
username test password cisco123
Etapa 2. Configurar um ponto de confiança destinado a manter o certificado do roteador. A importação do arquivo PKCS12 é usada neste exemplo. Para outras opções, consulte o Guia de Configuração de Segurança e VPN, IOS XE 17.x, Capítulo: Configurando Registro de Certificado para um documento PKI.
Router(config)# crypto pki import IKEv2-TP pkcs12 bootflash:IKEv2-TP.p12 password cisco123
Etapa 3. Definir um pool IP local para atribuir endereços a clientes AnyConnect VPN:
ip local pool ACPOOL 192.168.10.5 192.168.10.10
Etapa 4. Criar uma política de autorização local IKEv2:
crypto ikev2 authorization policy ikev2-auth-policy
pool ACPOOL
dns 10.0.1.1
Etapa 5 (opcional). Crie a proposta e a política de IKEv2 desejadas. Se não forem configurados, os padrões inteligentes serão usados:
crypto ikev2 proposal IKEv2-prop1
encryption aes-cbc-256
integrity sha256
group 14
!
crypto ikev2 policy IKEv2-pol
proposal IKEv2-prop1
Etapa 6. Criar perfil do AnyConnect
Note: O perfil do AnyConnect precisa ser entregue à máquina cliente. Consulte a próxima seção para obter mais informações.
Configure o perfil do cliente com o AnyConnect Profile Editor conforme mostrado na imagem:

Clique em Add para criar uma entrada para o gateway VPN. Certifique-se de selecionar IPsec como o protocolo primário. Desmarque a opção ASA gateway.

Salve o perfil: Arquivo -> Salvar como. O equivalente XML do perfil:
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">false</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<CertificateStoreMac>All</CertificateStoreMac>
<CertificateStoreOverride>false</CertificateStoreOverride>
<ProxySettings>Native</ProxySettings>
<AllowLocalProxyConnections>true</AllowLocalProxyConnections>
<AuthenticationTimeout>12</AuthenticationTimeout>
<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>
<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>
<LocalLanAccess UserControllable="true">false</LocalLanAccess>
<DisableCaptivePortalDetection UserControllable="true">false</DisableCaptivePortalDetection>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<IPProtocolSupport>IPv4,IPv6</IPProtocolSupport>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">ReconnectAfterResume</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="false">Automatic</RSASecurIDIntegration>
<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>
<AutomaticVPNPolicy>false</AutomaticVPNPolicy>
<PPPExclusion UserControllable="false">Disable
<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>
</PPPExclusion>
<EnableScripting UserControllable="false">false</EnableScripting>
<EnableAutomaticServerSelection UserControllable="false">false
<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>
<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>
</EnableAutomaticServerSelection>
<RetainVpnOnLogoff>false
</RetainVpnOnLogoff>
<AllowManualHostInput>true</AllowManualHostInput>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>VPN IOS-XE</HostName>
<HostAddress>vpn.example.com</HostAddress>
<PrimaryProtocol>IPsec
<StandardAuthenticationOnly>true
<AuthMethodDuringIKENegotiation>EAP-AnyConnect</AuthMethodDuringIKENegotiation>
</StandardAuthenticationOnly>
</PrimaryProtocol>
</HostEntry>
</ServerList>
</AnyConnectProfile>
Note: O AnyConnect usa *$AnyConnectClient$* como sua identidade IKE padrão do tipo key-id. No entanto, essa identidade pode ser alterada manualmente no perfil do AnyConnect para corresponder às necessidades de implantação.
Note: Para carregar o perfil XML no roteador, é necessária a versão 16.9.1 ou posterior. Se uma versão de software mais antiga for usada, o recurso de download de perfil precisará ser desativado no cliente. Consulte a seção Desativar o recurso de download do AnyConnect para obter mais informações.
Carregue o perfil XML criado na memória flash do roteador e defina o perfil:
crypto vpn anyconnect profile acvpn bootflash:/acvpn.xml
Note: O nome de arquivo usado para o perfil XML do AnyConnect é sempre acvpn.xml. Mesmo que um nome de arquivo diferente seja usado, o perfil enviado ao PC é chamado acvpn.xml. Portanto, é recomendável não alterar o nome na configuração do roteador.
Etapa 7. Crie um perfil IKEv2 para o método AnyConnect-EAP de autenticação do cliente.
crypto ikev2 profile AnyConnect-EAP
match identity remote key-id *$AnyConnectClient$*
authentication local rsa-sig
authentication remote anyconnect-eap aggregate
pki trustpoint IKEv2-TP
aaa authentication anyconnect-eap a-eap-authen-local
aaa authorization group anyconnect-eap list a-eap-author-grp ikev2-auth-policy
aaa authorization user anyconnect-eap cached
virtual-template 100
anyconnect profile acvpn
Note: Para o comando aaa authentication eap / anyconnect-eap, certifique-se de que o método de autenticação local esteja configurado como rsa-sig antes que o método de autenticação remota seja configurado.
Etapa 8. Desativar a pesquisa de certificado baseada em URL HTTP e o servidor HTTP no roteador:
no crypto ikev2 http-url cert
no ip http server
no ip http secure-server
Note: Consulte o documento Next Generation Encryption Support para confirmar se o hardware do seu roteador suporta os algoritmos NGE (por exemplo, sha-256, aes-gcm, ecdh, ecdsa), caso contrário, a instalação IPSec SA no hardware falhará no último estágio do estabelecimento do túnel.
Etapa 9. Definir os algoritmos de criptografia e hash usados para proteger os dados
crypto ipsec transform-set TS esp-aes 256 esp-sha256-hmac
mode tunnel
Etapa 10. Criar um perfil IPSec:
crypto ipsec profile AnyConnect-EAP
set transform-set TS
set ikev2-profile AnyConnect-EAP
Etapa 11. Configurar uma interface de loopback com algum endereço IP fictício. As interfaces de acesso virtual pegam emprestado o endereço IP dele.
interface loopback100
ip address 10.0.0.1 255.255.255.255
Etapa 12. Configurar um modelo virtual (associe o modelo ao perfil IKEv2)
interface Virtual-Template100 type tunnel
ip unnumbered Loopback100
ip mtu 1400
tunnel mode ipsec ipv4
tunnel protection ipsec profile AnyConnect-EAP
Etapa 13 (opcional). Por padrão, todo o tráfego do cliente é enviado pelo túnel (túnel completo). Você pode configurar um túnel dividido, que permite que apenas o tráfego selecionado passe pelo túnel.
ip access-list standard split_tunnel
permit 10.0.0.0 0.255.255.255
!
crypto ikev2 authorization policy ikev2-auth-policy
route set access-list split_tunnel
Etapa 14 (opcional). Se todo o tráfego for necessário para passar pelo túnel, configure o NAT para permitir a conectividade da Internet para clientes remotos.
ip access-list extended NAT
permit ip 192.168.10.0 0.0.0.255 any
!
ip nat inside source list NAT interface GigabitEthernet1 overload
!
interface GigabitEthernet1
ip nat outside
!
interface Virtual-Template 100
ip nat inside
Exemplo: Configuração de download do perfil do AnyConnect
Este exemplo mostra como configurar o recurso de Download de perfil do FlexVPN AnyConnect:
Note: Não é necessário modificar o arquivo de Diretiva local na máquina do Anyconnect Client. Depois que o recurso de Download de perfil do Anyconnect com IKEv2 é configurado, o módulo do VPN Downloader funciona corretamente - o perfil XML necessário é atualizado automaticamente no dispositivo cliente no caso de atualização de perfil XML.
Note: Você não deve usar o servidor HTTPS e a política SSL juntos. Antes da Política SSL ser habilitada, remova o comando ip http secure-server. Se ambos os recursos forem habilitados ao mesmo tempo e o dispositivo receber uma conexão VPN SSL de entrada, o dispositivo poderá falhar.
no ip http secure-server
crypto ssl policy ssl-policy
pki trustpoint IKEv2-TP sign
ip address local 10.0.0.1 port 443
no shutdown
crypto ssl profile ssl_prof
match policy ssl-policy
Desative o recurso AnyConnect Downloader (Somente para versões anteriores à 16.9.1).
Esta etapa só é necessária se for usada uma versão anterior à 16.9.1. Antes dessa versão, a capacidade de carregar o perfil XML para o roteador não estava disponível. O Secure Client (AnyConnect) tenta fazer o download do perfil XML após o login bem-sucedido por padrão. Se o perfil não estiver disponível, a conexão falhará. Como solução alternativa, é possível desativar o recurso de download de perfil do AnyConnect no próprio cliente. Para fazer isso, este arquivo pode ser modificado:
For Windows:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\AnyConnectLocalPolicy.xml
For MAC OS:
/opt/cisco/anyconnect/AnyConnectLocalPolicy.xml
A opção BypassDownloader está definida como true, por exemplo:
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectLocalPolicy xmlns="http://schemas.xmlsoap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap/encoding/ AnyConnectLocalPolicy.xsd" acversion="4.6.03049">
<BypassDownloader>true</BypassDownloader>
<EnableCRLCheck>false</EnableCRLCheck>
<ExcludeFirefoxNSSCertStore>false</ExcludeFirefoxNSSCertStore>
<ExcludeMacNativeCertStore>false</ExcludeMacNativeCertStore>
<ExcludePemFileCertStore>false</ExcludePemFileCertStore>
<ExcludeWinNativeCertStore>false</ExcludeWinNativeCertStore>
<FipsMode>false</FipsMode>
<RestrictPreferenceCaching>false</RestrictPreferenceCaching>
<RestrictTunnelProtocols>false</RestrictTunnelProtocols>
<RestrictWebLaunch>false</RestrictWebLaunch>
<StrictCertificateTrust>false</StrictCertificateTrust>
<UpdatePolicy>
<AllowComplianceModuleUpdatesFromAnyServer>true</AllowComplianceModuleUpdatesFromAnyServer>
<AllowISEProfileUpdatesFromAnyServer>true</AllowISEProfileUpdatesFromAnyServer>
<AllowServiceProfileUpdatesFromAnyServer>true</AllowServiceProfileUpdatesFromAnyServer>
<AllowSoftwareUpdatesFromAnyServer>true</AllowSoftwareUpdatesFromAnyServer>
<AllowVPNProfileUpdatesFromAnyServer>true</AllowVPNProfileUpdatesFromAnyServer></UpdatePolicy>
</AnyConnectLocalPolicy>
Após a modificação, o cliente AnyConnect precisa ser reiniciado.
Entrega de perfil XML do AnyConnect
Com a nova instalação do AnyConnect (sem perfis XML adicionados), o usuário pode inserir manualmente o FQDN do gateway VPN na barra de endereços do cliente AnyConnect. Isso resulta na conexão SSL com o gateway. O cliente AnyConnect não tenta estabelecer o túnel VPN com protocolos IKEv2/IPsec por padrão. Esta é a razão pela qual a instalação do perfil XML no PC cliente é obrigatória para estabelecer o túnel IKEv2/IPsec com o gateway FlexVPN.
O perfil é usado quando é selecionado na lista suspensa da barra de endereços do AnyConnect.
O nome que aparece na lista é especificado no campo Display Name no AnyConnect Profile Editor -> Server List -> Server List Entry.

O perfil XML pode ser colocado manualmente em um diretório, dependendo do sistema operacional do cliente:
For Windows:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile
For MAC OS:
/opt/cisco/anyconnect/profile
O cliente AnyConnect precisa ser reiniciado para que o perfil se torne visível na GUI. Não é suficiente fechar a janela do AnyConnect. O processo pode ser reiniciado clicando com o botão direito do mouse no ícone do AnyConnect na bandeja do Windows e selecionando a opção Sair:

Fluxo de comunicação
clique aqui
Intercâmbio de IKEv2 e EAP

Verificar
Use esta seção para confirmar se a sua configuração funciona corretamente.
! Check IKEv2 SA parameters
Router# show crypto ikev2 sa detailed
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 192.0.2.1/4500 192.0.2.100/50899 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: RSA, Auth verify: AnyConnect-EAP
Life/Active Time: 86400/758 sec
CE id: 1004, Session-id: 4
Status Description: Negotiation done
Local spi: 413112E83D493428 Remote spi: 696FA78292A21EA5
Local id: 192.0.2.1
Remote id: *$AnyConnectClient$*
Remote EAP id: test <------ username
Local req msg id: 0 Remote req msg id: 31
Local next msg id: 0 Remote next msg id: 31
Local req queued: 0 Remote req queued: 31
Local window: 5 Remote window: 1
DPD configured for 0 seconds, retry 0
Fragmentation not configured.
Dynamic Route Update: disabled
Extended Authentication not configured.
NAT-T is detected outside
Cisco Trust Security SGT is disabled
Assigned host addr: 192.168.10.8. <---- Assigned IP
Initiator of SA : No
! Check the crypto session information
Router# show crypto session detail
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
R - IKE Auto Reconnect, U - IKE Dynamic Route Update
S - SIP VPN
Interface: Virtual-Access1. <----- Virtual interface associated with the client
Profile: AnyConnect-EAP
Uptime: 00:14:54
Session status: UP-ACTIVE
Peer: 192.0.2.100 port 50899 fvrf: (none) ivrf: (none). <----- Public IP of the remote client
Phase1_id: *$AnyConnectClient$*
Desc: (none)
Session ID: 8
IKEv2 SA: local 192.0.2.1/4500 remote 192.0.2.100/50899 Active
Capabilities:N connid:1 lifetime:23:45:06
IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 192.168.10.8
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 89 drop 0 life (KB/Sec) 4607990/2705. <------ Packets received from the client
Outbound: #pkts enc'ed 2 drop 0 life (KB/Sec) 4607999/2705. <------ Packets sent to the client
! Check the actual configuration applied for the Virtual-Acces interface associated with client
Router# show derived-config interface virtual-access 1.
Building configuration...
Derived configuration : 258 bytes
!
interface Virtual-Access1
ip unnumbered Loopback100
ip mtu 1400
ip nat inside
tunnel source 192.0.2.1
tunnel mode ipsec ipv4
tunnel destination 192.0.2.100
tunnel protection ipsec profile AnyConnect-EAP
no tunnel protection ipsec initiate
end
Troubleshooting
Esta seção fornece informações que podem ser usadas para o troubleshooting da sua configuração.
- Depurações IKEv2 para coletar do headend:
debug crypto ikev2
debug crypto ikev2 packet
debug crypto ikev2 error
- Depurações AAA para ver a atribuição de atributos locais e/ou remotos:
debug aaa authorization
debug aaa authentication
- Ferramenta de diagnóstico e relatório (DART) para o cliente AnyConnect.
Para coletar o pacote DART, execute as etapas descritas no Guia do Administrador do Cisco Secure Client (incluindo AnyConnect), Versão 5, Capítulo: Capítulo: Solucionar problemas do Cisco Secure Client.