Introdução
Este documento descreve como conectar um PC a um Cisco Adaptive Security Appliance (ASA) com o uso do AnyConnect IPsec (IKEv2), bem como autenticação de certificado e autenticação de AAA (Authentication, Authorization, and Accounting).
Observação: o exemplo fornecido neste documento descreve apenas as partes relevantes que são usadas para obter uma conexão IKEv2 entre o ASA e o AnyConnect. Um exemplo completo de configuração não é fornecido. A configuração da Network Address Translation (NAT) ou da lista de acesso não está descrita ou não é necessária neste documento.
Preparar-se para a conexão
Esta seção descreve as preparações necessárias para que você possa conectar seu PC ao ASA.
Certificados com EKU apropriado
É importante observar que, mesmo que não seja necessário para a combinação do ASA e do AnyConnect, o RFC exige que os certificados tenham Uso Estendido de Chave (EKU - Extended Key Usage):
- O certificado para o ASA deve conter o EKU server-auth.
- O certificado do PC deve conter o EKU client-auth.
Observação: um roteador IOS com a revisão de software recente pode colocar EKUs em certificados.
Configuração no ASA
Esta seção descreve as configurações do ASA necessárias antes que a conexão ocorra.
Observação: o Cisco Adaptive Security Device Manager (ASDM) permite criar a configuração básica com apenas alguns cliques. A Cisco recomenda que você o use para evitar erros.
Configuração do mapa de criptografia
Aqui está um exemplo de configuração de mapa de criptografia:
crypto dynamic-map DYN 1 set pfs group1
crypto dynamic-map DYN 1 set ikev2 ipsec-proposal secure
crypto dynamic-map DYN 1 set reverse-route
crypto map STATIC 65535 ipsec-isakmp dynamic DYN
crypto map STATIC interface outside
Propostas de IPsec
Aqui está uma configuração de exemplo de proposta IPsec:
crypto ipsec ikev2 ipsec-proposal secure
protocol esp encryption aes 3des
protocol esp integrity sha-1
crypto ipsec ikev2 ipsec-proposal AES256-SHA
protocol esp encryption aes-256
protocol esp integrity sha-1
Políticas IKEv2
Aqui está uma configuração de exemplo de política IKEv2:
crypto ikev2 policy 1
encryption aes-256
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 10
encryption aes-192
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 20
encryption aes
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 30
encryption 3des
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 40
encryption des
integrity sha
group 5 2
prf sha
lifetime seconds 86400
Serviços e certificado do cliente
Você deve habilitar os serviços e certificados do cliente na interface correta, que é a interface externa nesse caso. Aqui está um exemplo de configuração:
crypto ikev2 enable outside client-services port 443
crypto ikev2 remote-access trustpoint OUTSIDE
ssl trust-point OUTSIDE outside
Observação: o mesmo ponto de confiança também é atribuído ao Secure Sockets Layer (SSL), que é intencional e obrigatório.
Ativar perfil do AnyConnect
Você deve habilitar o perfil do AnyConnect no ASA. Aqui está um exemplo de configuração:
webvpn
enable outside
anyconnect image disk0:/anyconnect-win-3.0.5080-k9.pkg 1 regex "Windows NT"
anyconnect profiles Anyconnect disk0:/anyconnect.xml
anyconnect enable
tunnel-group-list enable
Nome de usuário, Diretiva de grupo e Grupo de túneis
Aqui está um exemplo de configuração para um nome de usuário básico, política de grupo e grupo de túneis no ASA:
group-policy GroupPolicy_AC internal
group-policy GroupPolicy_AC attributes
dns-server value 4.2.2.2
vpn-tunnel-protocol ikev1 ikev2 l2tp-ipsec ssl-client ssl-clientless
default-domain value cisco.com
webvpn
anyconnect profiles value Anyconnect type user
username cisco password 3USUcOPFUiMCO4Jk encrypted privilege 15
tunnel-group AC type remote-access
tunnel-group AC general-attributes
address-pool VPN-POOL
default-group-policy GroupPolicy_AC
tunnel-group AC webvpn-attributes
authentication aaa certificate
group-alias AC enable
group-url https://bsns-asa5520-1.cisco.com/AC enable
without-csd
Perfil do AnyConnect
Aqui está um perfil de exemplo com as partes relevantes mostradas em negrito:
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">false
</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<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>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">DisconnectOnSuspend
</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="true">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>
</ClientInitialization>
<ServerList>
<HostEntry>
bsns-asa5520-1
<HostAddress>bsns-asa5520-1.cisco.com</HostAddress>
<UserGroup>AC</UserGroup>
<PrimaryProtocol>IPsec</PrimaryProtocol>
</HostEntry>
</ServerList>
</AnyConnectProfile>
Aqui estão algumas observações importantes sobre este exemplo de configuração:
- Quando você cria o perfil, o HostAddress deve corresponder ao Nome do certificado (CN) no certificado usado para IKEv2. Insira o comando crypto ikev2 remote-access trustpoint para definir isso.
- O UserGroup deve corresponder ao nome do grupo de túneis ao qual a conexão IKEv2 se encaixa. Se não corresponderem, a conexão frequentemente falha e as depurações indicam uma incompatibilidade de grupo Diffie-Hellman (DH) ou um falso negativo semelhante.
Faça a conexão
Esta seção descreve a conexão PC-para-ASA quando o perfil já está presente.
Observação: as informações que você insere na GUI para se conectar são o valor <HostName> configurado no perfil do AnyConnect. Nesse caso, bsns-asa5520-1 é inserido, não o nome de domínio totalmente qualificado (FQDN) completo.
Quando você tentar se conectar pela primeira vez por meio do AnyConnect, o gateway solicita que você selecione o certificado (se a seleção automática de certificado estiver desativada):
Em seguida, insira o nome de usuário e a senha:
Depois que o nome de usuário e a senha são aceitos, a conexão é bem-sucedida e as estatísticas do AnyConnect podem ser verificadas:
Verificação no ASA
Insira este comando no ASA para verificar se a conexão usa IKEv2, bem como AAA e autenticação de certificado:
bsns-asa5520-1# show vpn-sessiondb detail anyconnect filter name cisco
Session Type: AnyConnect Detailed
Username : cisco Index : 6
Assigned IP : 172.16.99.5 Public IP : 1.2.3.4
Protocol : IKEv2 IPsecOverNatT AnyConnect-Parent
License : AnyConnect Premium
Encryption : AES256 AES128 Hashing : none SHA1 SHA1
Bytes Tx : 0 Bytes Rx : 960
Pkts Tx : 0 Pkts Rx : 10
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : GroupPolicy_AC Tunnel Group : AC
Login Time : 15:45:41 UTC Tue Aug 28 2012
Duration : 0h:02m:41s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
IKEv2 Tunnels: 1
IPsecOverNatT Tunnels: 1
AnyConnect-Parent Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 6.1
Public IP : 1.2.3.4
Encryption : none Auth Mode : Certificate and userPassword
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Client Type : AnyConnect
Client Ver : 3.0.08057
IKEv2:
Tunnel ID : 6.2
UDP Src Port : 60468 UDP Dst Port : 4500
Rem Auth Mode: Certificate and userPassword
Loc Auth Mode: rsaCertificate
Encryption : AES256 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86238 Seconds
PRF : SHA1 D/H Group : 5
Filter Name :
Client OS : Windows
IPsecOverNatT:
Tunnel ID : 6.3
Local Addr : 0.0.0.0/0.0.0.0/0/0
Remote Addr : 172.16.99.5/255.255.255.255/0/0
Encryption : AES128 Hashing : SHA1\
Encapsulation: Tunnel
Rekey Int (T): 28800 Seconds Rekey Left(T): 28638 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4608000 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Bytes Tx : 0 Bytes Rx : 960
Pkts Tx : 0 Pkts Rx : 10
Caveats conhecidos
Estas são as advertências e os problemas conhecidos relacionados às informações descritas neste documento:
- Os pontos de confiança IKEv2 e SSL devem ser os mesmos.
- A Cisco recomenda que você use o FQDN como o CN para os certificados do ASA. Certifique-se de fazer referência ao mesmo FQDN para o <HostAddress> no perfil do AnyConnect.
- Lembre-se de inserir o valor <HostName> do perfil do AnyConnect ao se conectar.
- Mesmo na configuração de IKEv2, quando o AnyConnect se conecta ao ASA, ele baixa atualizações de perfil e binárias em SSL, mas não em IPsec.
- A conexão do AnyConnect via IKEv2 ao ASA usa o EAP-AnyConnect, um mecanismo proprietário que permite uma implementação mais simples.