Neste post foram relacionados os comandos básicos para a criação de um túnel IPsec Site-To-Site utilizando o método de autenticação IKEv1. Nos testes realizados foram utilizados dois firewalls Cisco ASA modelo 5510 com versão de software 9.1.
É bom lembrar que o IKEv1 está obsoleto e é recomendado a sua substituição pelo IKEv2 (
). As informações contidas abaixo servem apenas para mostrar como o serviço é implementado nessa versão pois em breve irei publicar as etapas necessárias para a criação de um perfil de conexão VPN com o IKEv2.
......................................................
Para a configuração da VPN é necessário cumprir algumas etapas. Na configuração via CLI é criado um perfil de conexão onde definimos os parâmetros para o estabelecimento do túnel VPN. A conexão ocorre em duas etapas, chamadas de fase 1 e fase 2. Em cada uma delas nós indicamos os algoritmos de criptografia e hash que serão utilizados. Para a autenticação dos dispositivos nós usaremos uma chave pré-compartilhada (PSK).
......................................................
CONFIGURAÇÃO
1. Criação da IKE Policy (Fase 1)
Na criação de uma política IKEv1 são definidos os parâmetros de criptografia, hash, autenticação, Diffie-Hellman e lifetime. Uma vez criada a política ela poderá ser utilizada em outros perfis de conexão VPN.
# crypto ikev1 policy <priority>
Você precisará atribuir um número de prioridade para cada política. O interessante é definir um conjunto de combinações de encryption e hash e posicionar as cifras mais fortes primeiro (Menor valor de priority). No momento da negociação de uma SA os pares tentam encontrar uma configuração correspondente entre as várias políticas existentes respeitando a ordem de prioridade.
# authentication pre-share
Para autenticação é possível utilizar o RSA através de certificado digital ou chave pré-compartilhada (PSK). Na opção acima está indicado apenas a opção de chave compartilhada.
# encryption <algoritmo de criptografia>
Você deve especificar um algoritmo de criptografia entre as opções disponíveis para a proteção dos dados.
Opções:
. 3des: 3des encryption
. aes: aes-128 encryption
. aes-192: aes-192 encryption
. aes-256: aes-256 encryption
. des: des encryption
# hash <algoritmo de hash>
Nesse ponto é preciso especificar um algoritmo de hash que será utilizado pelos pares para garantir que as mensagens não tenham sido modificadas durante a transmissão.
Opções:
. md5: set hash md5
. sha: set hash sha1
# group <ID do grupo Diffie-Hellman >
Você deve especificar o ID do grupo Diffie-Hellman entre as opções disponíveis. O Firewall ASA utiliza esse algoritmo para derivar as chaves de criptografia e hash. O grupo default é 2.
Opções:
. 1: Diffie-Hellman group 1
. 2: Diffie-Hellman group 2
. 5: Diffie-Hellman group 5
# lifetime <valor em segundos>
Você deve especificar o valor do lifetime para a
Secure Association. Esse valor corresponde ao período de tempo para o uso das chaves de criptografia. Ao término desse período a chave é substituída. Se os valores definidos não forem correspondentes entre os dispositivos envolvidos, será escolhido o menor valor. O default é 86400 (24horas).
EXEMPLO
(config)# crypto ikev1 policy 1
(config-ikev1-policy)# encryption aes-256
(config-ikev1-policy)# hash sha
(config-ikev1-policy)# authentication pre-share
(config-ikev1-policy)# group 2
(config-ikev1-policy)# lifetime 28800
2 . Habilitar a IKE Policy na interface outside
# crypto ikev1 enable <nome da interface outside>
O comando permite habilitar o IKEv1 na interface de saída do firewall.
3 . Criação do IPsec Transform (Fase 2)
O transform-set é utilizado pelos pares durante as negociações de uma associação de segurança para o estabelecimento de uma VPN IPsec. Você precisará indicar um nome para a identificação do transform set e definir os algoritmos de criptografia e hash utilizados para a criação do túnel.
# crypto ipsec ikev1 transform-set <Nome do IPsec> [Opção de criptografia] [Opção de hash]
Abaixo estão indicadas as opções disponíveis. Ao definir essas opções elas poderão ser utilizadas em outros perfis de conexão VPN.
Opções de criptografia:
. esp-3des: esp 3des encryption
. esp-aes: esp aes 128 encryption
. esp-aes-192: esp aes 192 encryption
. esp-aes-256: esp aes 256 encryption
. esp-des: esp des encryption
Opções de hash:
. esp-md5-hmac: esp md5 authentication
. esp-sha-hmac: esp sha authentication
EXEMPLO
crypto ipsec ikev1 transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac
4 . Criação de um Tunnel Group
Nessa etapa é realizada a configuração do Tunnel Group onde você informará o endereço IP do dispositivo remoto, definirá um nome para a conexão (opcional) e indicará a chave pré-compartilhada utilizada para o estabelecimento da VPN.
# tunnel-group <endereço IP do peer> type ipsec-l2l
# tunnel-group <endereço IP do peer> ipsec-attributes
# ikev1 pre-shared-key <chave compartilhada>
5. Criação de uma Access-list (Classificação do tráfego de interesse)
Nessa etapa é criada uma access-list para a definição do tráfego que será encriptado no túnel VPN. No firewall Cisco ASA podem ser criados objetos e grupos de objetos para auxiliar na identificação das redes/hosts que participarão dessa comunicação. Essa access-list será vinculada a uma Crypto Map que será configurada na próxima etapa.
# access-list <nome da ACL> line <número> extended permit <protocolo> <objeto/endereço de origem> <objeto/endereço de destino>
EXEMPLO
Criação de um objeto com o endereço da rede local (origem)
(config)# object network REDE-LOCAL
(config-network-object)# subnet 10.100.1.0 255.255.255.0
Criação de um objeto com o endereço da rede remota (destino)
(config)# object network REDE-REMOTA
(config-network-object)# subnet 192.168.100.0 255.255.255.0
Configuração da ACL
access-list ACL_CryptoMap_1 line 1 extended permit ip object REDE-LOCAL object REDE-REMOTA
6. Configuração do Crypto Map
# crypto map <nome do Crypto Map> <número/id> set peer <endereço ip do peer>
Nessa etapa você configurará o Crypto Map, definirá um nome para ele e um ID e informará o endereço IP do par remoto.
# crypto map <nome do Crypto Map> <número/id> set ikev1 transform-set <nome do transform-set>
Nesse comando você indicará o nome do perfil do
ipsec transform-set configurado anteriormente (Realizado na etapa 3).
# crypto map <nome do Crypto Map> <número/id> match address <nome da access-list>
Aqui você indicará o nome da access-list criada anteriormente (Realizado na etapa 5).
# crypto map <nome do Crypto Map> interface <nome da interface outside>
Nesse comando você indicará a interface de saída utilizada para o estabelecimento da VPN.
EXEMPLO
crypto map vpn_crypto_map 1 set peer <endereço ip do peer>
crypto map vpn_crypto_map 1 set ikev1 transform-set ESP-AES-256-SHA
crypto map vpn_crypto_map 1 match address ACL_CryptoMap_1
crypto map vpn_crypto_map interface outside
7. Criação de uma política de exceção de NAT (Opcional)
Nessa etapa você precisará garantir que os hosts com destino a VPN preservem o seu endereço IP original. No firewall Cisco ASA isso é feito com a criação de uma política de NAT vinculando o fluxo de comunicação (indicação das interfaces de origem e destino) com os hosts/redes envolvidos.
Para a criação da política são utilizados objetos ou grupos de objetos com as informações de IP dos hosts/redes correspondentes. Você precisará criar os objetos (object network) de origem e destino e inseri-los na política de NAT.
Criação do objeto
(config)# object network <nome do objeto>
(config-network-object)# subnet <endereço de rede> <máscara de rede>
Criação da Política de NAT
# nat (<interface inside>,<interface outside>) source static <objeto de origem> <objeto de origem> destination static <objeto de destino> <objeto de destino> no-proxy-arp route-lookup
EXEMPLO
Criação do objeto com o endereço da rede local
(config)# object network REDE-10-100-1-0-M24
(config-network-object)# subnet 10.100.1.0 255.255.255.0
Criação do objeto com o endereço da rede remota
(config)# object network REDE-192-168-100-0-M24
(config-network-object)# subnet 192.168.100.0 255.255.255.0
Configuração da Política de NAT
nat (inside,outside) source static REDE-10-100-1-0-M24 REDE-10-100-1-0-M24 destination static REDE-192-168-100-0-M24 REDE-192-168-100-0-M24 no-proxy-arp route-lookup
_________________________________________
As informações contidas neste post são baseadas em documentos publicados no site da Cisco e obtidas através da experiência com o próprio equipamento. Para o exemplo mostrado foram utilizados Firewalls Cisco ASA modelo 5510 com versão de software 9.1.