Este documento descreve como configurar um túnel IPSec Internet Key Exchange Version 1 (IKEv1) de site a site (LAN a LAN) via CLI entre um Cisco Adaptive Security Appliance (ASA) e um roteador que executa o software Cisco IOS®.
A Cisco recomenda que você tenha conhecimento destes tópicos:
As informações neste documento são baseadas nestas versões de software e hardware:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Esta seção descreve como concluir as configurações de CLI do roteador ASA e IOS.
As informações neste documento usam esta configuração de rede:
Se as interfaces do ASA não estiverem configuradas, certifique-se de configurar pelo menos os endereços IP, os nomes das interfaces e os níveis de segurança:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
Para configurar as políticas ISAKMP (Internet Security Association and Key Management Protocol) para as conexões IKEv1, insira o comando crypto ikev1 policy <priority>:
crypto ikev1 policy 10
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
Você deve ativar o IKEv1 na interface que encerra o túnel VPN. Geralmente, essa é a interface externa (ou pública). Para habilitar o IKEv1, insira o comando crypto ikev1 enable <nome-da-interface> no modo de configuração global:
crypto ikev1 enable outside
Para um túnel LAN a LAN, o tipo de perfil de conexão é ipsec-l2l. Para configurar a chave pré-compartilhada de IKEv1, insira o modo de configuração tunnel-group ipsec-attribute:
tunnel-group 172.17.1.1 type ipsec-l2l
tunnel-group 172.17.1.1 ipsec-attributes
ikev1 pre-shared-key cisco123
O ASA usa listas de controle de acesso (ACLs) para diferenciar o tráfego que deve ser protegido com criptografia IPSec do tráfego que não exige proteção. Ele protege os pacotes de saída que correspondem a um permit Application Control Engine (ACE) e garante que os pacotes de entrada que correspondem a um permit ACE tenham proteção.
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
Geralmente, não deve haver NAT executado no tráfego VPN. Para isentar esse tráfego, você deve criar uma regra de NAT de identidade. A regra de NAT de identidade simplesmente converte um endereço para o mesmo endereço.
nat (inside,outside) source static local-network local-network destination static
remote-network remote-network no-proxy-arp route-lookup
Um conjunto de transformação IKEv1 é uma combinação de protocolos e algoritmos de segurança que definem a forma como o ASA protege os dados. Durante as negociações da Associação de Segurança (SA - Security Association) do IPSec, os colegas devem identificar um conjunto ou proposta de transformação que seja a mesma para ambos os colegas. O ASA então aplica o conjunto ou a proposta de transformação correspondente para criar um SA que proteja os fluxos de dados na lista de acesso para esse mapa de criptografia.
Para configurar o conjunto de transformação IKEv1, insira o comando crypto ipsec ikev1 transform-set:
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
Um mapa de criptografia define uma política de IPSec a ser negociada no SA de IPSec e inclui:
Aqui está um exemplo:
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
Você pode aplicar o mapa de criptografia à interface:
crypto map outside_map interface outside
Aqui está a configuração final no ASA:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
!
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
!
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
!
nat (inside,outside) source static local-network local-network destination
static remote-network remote-network no-proxy-arp route-lookup
!
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
!
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
crypto map outside_map interface outside
Se as interfaces do roteador IOS ainda não estiverem configuradas, pelo menos as interfaces LAN e WAN devem ser configuradas. Aqui está um exemplo:
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
no shutdown
Assegure-se de que haja conectividade com as redes interna e externa, e especialmente com o peer remoto que será usado para estabelecer um túnel VPN site a site. Você pode usar um ping para verificar a conectividade básica.
Para configurar as políticas ISAKMP para as conexões IKEv1, insira o comando crypto isakmp policy <priority> no modo de configuração global. Aqui está um exemplo:
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
Para configurar uma chave de autenticação pré-compartilhada, insira o comando crypto isakmp key no modo de configuração global:
crypto isakmp key cisco123 address 172.16.1.1
Use a lista de acesso estendida ou nomeada para especificar o tráfego que deve ser protegido por criptografia. Aqui está um exemplo:
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
Geralmente, não deve haver NAT executado no tráfego VPN. Se a sobrecarga de NAT for usada, um mapa de rota deve ser usado para isentar o tráfego de VPN de interesse da tradução. Observe que na lista de acesso usada no mapa de rotas, o tráfego de VPN de interesse deve ser negado.
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
route-map nonat permit 10
match ip address 111
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
Para definir um conjunto de transformação de IPSec (uma combinação aceitável de protocolos de segurança e algoritmos), insira o comando crypto ipsec transform-set no modo de configuração global. Aqui está um exemplo:
crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
mode tunnel
Para criar ou modificar uma entrada do mapa de criptografia e entrar no modo de configuração do mapa de criptografia, insira o comando de configuração global crypto map. Para que a entrada do mapa de criptografia seja concluída, há alguns aspectos que devem ser definidos no mínimo:
Aqui está um exemplo:
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES-SHA
match address 110
A etapa final é aplicar o mapa de criptografia definido anteriormente a uma interface. Para aplicar isso, insira o comando de configuração de interface crypto map:
interface GigabitEthernet0/0
crypto map outside_map
Aqui está a configuração final da CLI do roteador IOS:
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
crypto isakmp key cisco123 address 172.16.1.1
!
crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
mode tunnel
!
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES-SHA
match address 110
!
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
crypto map outside_map
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
!
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
!
route-map nonat permit 10
match ip address 111
!
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
Antes de verificar se o túnel está ativo e se ele passa pelo tráfego, você deve garantir que o tráfego de interesse seja enviado para o ASA ou para o roteador IOS.
Para verificar se a Fase 1 do IKEv1 está ativa no ASA, insira o comando show crypto isakmp sa. A saída esperada é ver o estado MM_ATIVE:
ciscoasa# show crypto isakmp sa
IKEv1 SAs:
Active SA: 1
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1
1 IKE Peer: 172.17.1.1
Type : L2L Role : responder
Rekey : no State : MM_ACTIVE
There are no IKEv2 SAs
ciscoasa#
Para verificar se a Fase 1 do IKEv1 está ativa no IOS, insira o comando show crypto isakmp sa. A saída esperada é ver o estado ATIVE:
Router#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
172.16.1.1 172.17.1.1 QM_IDLE 1005 ACTIVE
IPv6 Crypto ISAKMP SA
Router#
Para verificar se a Fase 2 do IKEv1 está ativa no ASA, insira o comando show crypto ipsec sa. A saída esperada é ver o índice de parâmetros de segurança (SPI) de entrada e saída. Se o tráfego passa pelo túnel, você deve ver o incremento dos contadores encaps/decaps.
Aqui está um exemplo:
ciscoasa# show crypto ipsec sa peer 172.17.1.1
peer address: 172.17.1.1
Crypto map tag: outside_map, seq num: 10, local addr: 172.16.1.1
access-list asa-router-vpn extended permit ip 10.10.10.0 255.255.255.0
10.20.10.0 255.255.255.0
local ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
current_peer: 172.17.1.1
#pkts encaps: 1005, #pkts encrypt: 1005, #pkts digest: 1005
#pkts decaps: 1014, #pkts decrypt: 1014, #pkts verify: 1014
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 1005, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#TFC rcvd: 0, #TFC sent: 0
#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
#send errors: 0, #recv errors: 0
local crypto endpt.: 172.16.1.1/0, remote crypto endpt.: 172.17.1.1/0
path mtu 1500, ipsec overhead 74(44), media mtu 1500
PMTU time remaining (sec): 0, DF policy: copy-df
ICMP error validation: disabled, TFC packets: disabled
current outbound spi: 8A9FE619
current inbound spi : D8639BD0
inbound esp sas:
spi: 0xD8639BD0 (3630406608)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 8192, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (3914900/3519)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0xFFFFFFFF 0xFFFFFFFF
outbound esp sas:
spi: 0x8A9FE619 (2325734937)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 8192, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (3914901/3519)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
ciscoasa#
Para verificar se a Fase 2 do IKEv1 está ativa no IOS, insira o comando show crypto ipsec sa. A saída esperada é ver o SPI de entrada e saída. Se o tráfego passa pelo túnel, você deve ver o incremento dos contadores encaps/decaps.
Aqui está um exemplo:
Router#show crypto ipsec sa peer 172.16.1.1
interface: GigabitEthernet0/0
Crypto map tag: outside_map, local addr 172.17.1.1
protected vrf: (none)
local ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
current_peer 172.16.1.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 2024, #pkts encrypt: 2024, #pkts digest: 2024
#pkts decaps: 2015, #pkts decrypt: 2015, #pkts verify: 2015
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 26, #recv errors 0
local crypto endpt.: 172.17.1.1, remote crypto endpt.: 172.16.1.1
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0
current outbound spi: 0xD8639BD0(3630406608)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x8A9FE619(2325734937)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2003, flow_id: Onboard VPN:3, sibling_flags 80000046,
crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4449870/3455)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xD8639BD0(3630406608)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: Onboard VPN:4, sibling_flags 80000046,
crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4449868/3455)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
Router#
Esta seção descreve os comandos que você pode usar no ASA ou no IOS para verificar os detalhes das Fases 1 e 2.
Insira o comando show vpn-sessiondb no ASA para verificação:
ciscoasa# show vpn-sessiondb detail l2l filter ipaddress 172.17.1.1
Session Type: LAN-to-LAN Detailed
Connection : 172.17.1.1
Index : 2 IP Addr : 172.17.1.1
Protocol : IKEv1 IPsec
Encryption : IKEv1: (1)AES128 IPsec: (1)AES128
Hashing : IKEv1: (1)SHA1 IPsec: (1)SHA1
Bytes Tx : 100500 Bytes Rx : 101400
Login Time : 18:06:02 UTC Wed Jul 22 2015
Duration : 0h:05m:07s
IKEv1 Tunnels: 1
IPsec Tunnels: 1
IKEv1:
Tunnel ID : 2.1
UDP Src Port : 500 UDP Dst Port : 500
IKE Neg Mode : Main Auth Mode : preSharedKeys
Encryption : AES128 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86093 Seconds
D/H Group : 2
Filter Name :
IPsec:
Tunnel ID : 2.2
Local Addr : 10.10.10.0/255.255.255.0/0/0
Remote Addr : 10.20.10.0/255.255.255.0/0/0
Encryption : AES128 Hashing : SHA1
Encapsulation: Tunnel
Rekey Int (T): 3600 Seconds Rekey Left(T): 3293 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4607901 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 26 Minutes
Bytes Tx : 100500 Bytes Rx : 101400
Pkts Tx : 1005 Pkts Rx : 1014
NAC:
Reval Int (T): 0 Seconds Reval Left(T): 0 Seconds
SQ Int (T) : 0 Seconds EoU Age(T) : 309 Seconds
Hold Left (T): 0 Seconds Posture Token:
Redirect URL :
ciscoasa#
Insira o comando show crypto session no IOS para verificação:
Router#show crypto session remote 172.16.1.1 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
Interface: GigabitEthernet0/0
Uptime: 00:03:36
Session status: UP-ACTIVE
Peer: 172.16.1.1 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 172.16.1.1
Desc: (none)
IKE SA: local 172.17.1.1/500 remote 172.16.1.1/500 Active
Capabilities:(none) connid:1005 lifetime:23:56:23
IPSEC FLOW: permit ip 10.20.10.0/255.255.255.0 10.10.10.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 2015 drop 0 life (KB/Sec) 4449870/3383
Outbound: #pkts enc'ed 2024 drop 26 life (KB/Sec) 4449868/3383
Router#
Esta seção fornece informações que você pode usar para solucionar problemas de sua configuração.
Para verificar automaticamente se a configuração de LAN para LAN do IPSec entre o ASA e o IOS é válida, você pode usar a ferramenta IPSec LAN para LAN Checker. A ferramenta é projetada para que aceite um comando show tech ou show running-config de um roteador ASA ou IOS. Ele examina a configuração e tenta detectar se um túnel IPSec LAN para LAN baseado em mapa de criptografia está configurado. Se configurado, ele executa uma verificação de vários pontos da configuração e destaca quaisquer erros e configurações de configuração para o túnel que seria negociado.
Para solucionar problemas de negociação de túnel IPSec IKEv1 em um firewall ASA, você pode usar estes comandos debug:
debug crypto ipsec 127
debug crypto isakmp 127
debug ike-common 10
Para solucionar problemas de negociação de túnel IPSec IKEv1 em um roteador IOS, você pode usar estes comandos debug:
debug crypto ipsec
debug crypto isakmp