Notas prévias: Este artigo tem como função ser uma mera introdução à configuração de VPN’s IPsec site-to-site em Routers Cisco, sendo efectuada uma descrição sucinta sobre as tecnologias e protocolos utilizados. Refira-se que actualmente a utilização da interface gráfica (SDM)dos routers Cisco mais recentes, facilita imenso a configuração de VPN’s No entanto, na vida real poderão existir equipamentos mais antigos e sem SDM instalado, sendo necessário recorrer ao CLI. Nessa eventualidade a informação contida neste artigo poderá ser útil.
Actualmente uma parte significativa da força laboral das empresas encontra-se fora das respectivos locais de trabalho. Como tal, o acesso a recursos por parte dos funcionários que não se encontram na empresa tornou-se indispensável. Antigamente uma série de Tecnologias Wan era utilizadas para garantir acesso remoto ( linhas dedicadas em Redes ATM, Frame Relay...).
Devido ao aumento da largura de banda disponível, tornou-se entretanto possível utilizar a Internet através das VPN’s, estabelecendo-se ligações seguras e confiáveis que garantem igualmente acesso a recursos de forma segura e confiável. Um funcionário poderá utilizar um software no seu portátil, tablet ou smartphone para estabelecer uma VPN road-warrior a um dispositivo servidor ou concentrador de VPN’s localizado na empresa.
Há situações que exigem uma ligação permanente entre dois locais, por exemplo, para interligar várias delegações de uma empresa - VPN site-to-site. Nesse caso os computadores das delegações terão conectividade IP permanente sem a necessidade de instalar e configurar software específico nos mesmos para o efeito.
Para configurar uma VPN site-to-site, com equipamentos Cisco, necessitamos de ter nas respectivas delegações um equipamento com suporte para VPN’s para estabelecer um Túnel entre os dois pontos ( Túnel IPsec [IP security] e/ou GRE [Generic Router Encapsulation Tunnel]), e de uma ligação de Banda Larga com atribuição de IP’s fixos ( no caso de um Router, deverá verificar versão do IOS e respectivas funcionalidades. A partir da versão 15.0 do IOS necessitará de licenciamento específico para garantir o suporte a VPN’s) . Relembre-se que uma VPN permite estabelecer uma ligação segura num meio intrínsecamente inseguro como é a Internet. Para tal, diferentes tecnologias ( IPsec, GRE, L2TP e L2F) existem, oferecendo diferentes funcionalidades. No caso do IPsec, garantimos:
- Confidencialidade através da encriptação dos dados.
- Integridade, assegurando-se que os dados não são alterados quando em trânsito.
- Autenticação, assegurando-se que ambos os pontos da VPN garantem mutuamente a sua identidade. O IPsec tornou-se uma Tecnologia VPN muito atraente e largamente utilizada porque actua na camada 3 do modelo OSI sendo assim transparente para as aplicações visto estas não necessitarem de nenhum suporte específico.
Existem 3 modos de operação no IKE:
- Principal: Um dos pares, o iniciante, envia um pedido ao outro par com uma proposta de ligação que inclui a encriptação suportada, protocolos de autenticação, tempo de duração das chaves e a obrigatoriedade ou não de utilizar PFS ( Perfect forward secrecy). O PFS garante que uma sessão permanece segura mesmo que uma das chaves privadas trocadas entre os pares seja comprometida. O par que responde escolhe uma das propostas recebidas e é criada, através do algorítmo Diffie-Hellman (DH), uma chave segura, estabelecendo-se assim uma sessão ISAKMP ( Internet Security Association and Key Management Protocol).
- Agressivo: São conseguidos os mesmos resultados apenas com a troca de 3 pacotes entre os pares. O primeiro pacote contém a informação necessária para estabelecer a associação SA ( security association), sendo enviado pelo par que inicia a ligação. Como resposta é enviado um segundo pacote com os parâmetros escolhidos pelo par que responde ao pedido. O terceiro pacote é então enviado pelo iniciador, formalizando a autenticação da sessão ISAKMP.
- Rápido: a associação é feita (SA) sem a acção do ISAKMP. O IKE reflecte as duas primeiras fases do estabelecimento de um túnel IPsec:
A fase 2 ocorre com a protecção da túnel estabelecido na fase 1, utilizando-se para o efeito o modo rápido anteriormente descrito. Nesta fase as negociações SA são unidirecionais o que significa que cada troca de dados utiliza uma chave diferente. Um túnel IPsec pode-se estabelecer com o recurso às fases IKE 1 e 2. No entanto uma fase opcional IKE 1.5 pode ser utilizada. Essa fase utiliza o protocolo XAUTH ( Extended Authentication Protocol) para autenticar túneis IPsec. Para autenticação de utilizadores esta fase providencia uma camada adicional de autenticação em que parâmetros IP, DNS, WINS, etc., poderão são fornecidos.
Para além do IKE, que estabelece o Túnel, o IPsec recorre ao AH (Authentication Header protocol) e ao ESP (Encapsulating Security Payload ) para assegurar que os pares são autênticos e que os dados não são modificados. Contudo apena o ESP encripta os pacotes ao contrário do AH que não oferece qualquer serviço de encriptação. Como tal o ESP é o protocolo utilizado escolhidos pelos Administradores de Redes.
O ESP, assim como o AH, podem ser utilizados em modo de Túnel ou em modo de Transporte:
Modo de Transporte: É utilizado o cabeçalho do pacote IP original ao invés de ser adicionado um cabeçalho extra de túnel. Esta abordagem evita o aumento do pacote sendo a opção a considerar em cenários onde tal possa constituir um problema. Esta opção é utilizada normalmente em VPN’s road-warrior.
Modo de Túnel: Neste modo o pacote é totalmente encapsulado ficando com um cabeçalho IPsec. Esse cabeçalho contém informação sobre o IP de origem e destino de ambos os pares da VPN. Este é o modo mais utilizado em VPN’s site-to-site.
Nota: Aparentemente pode-se depreender que o modo de Transporte permite a visibilidade do pacote IP em trânsito. Tal não sucede, porque normalmente o IPsec é utilizado em conjunção com o GRE. Nesse cenário o pacote original é inicialmente encapsulado num pacote GRE sendo adicionado um cabeçalho GRE e só após é que o pacote resultante é enviado no túnel IPsec. Assim sendo, mesmo em modo de Transporte, o cabeçalho IP original não é visível. Tal situação pode ser encarada como uma limitação do IPsec. Relembre-se que um túnel IPsec apenas transmite tráfego unicast. Em grandes Redes empresariais poderá existir a necessidade de permito tráfego Multicast e Broadcast ( protocolos de roteamento como o OSPF), como tal, o encapsulamento do pacote original de multicast em GRE e o seu envio no Túnel IPsec garantirá a sua correcta transmissão.
Recomendações a ter em conta na implementação de VPN’s IPsec
- O design de VPN’s IPsec deverão assegurar mecanismos que permitam que os dispositivos intervenientes sejam segura e correctamente identificados/autenticados. As VPN’s IPsec podem usar chaves pré-partilhadas ou certificados digitais para a autenticação.
- Os equipamentos de terminação VPN em cada um dos lados do túnel devem ser configurados com chaves pré-partilhas utilizando o algoritmo Diffie-Hellman.
- Grupos de chaves pré-partilhadas e chaves generalistas devem ser evitadas em VPN’s site-to-site. Os certificados digitais tem melhor escalabilidade se utilizarem chaves pré-partilhadas, devendo como tal ser utilizados em Redes com mais de 20 dispositivos.
- Como os certificados digitais têm um determinado tempo de associação deverá ser assegurada uma correcta sincronização.
- É preferível proteger Certificados digitais e chaves pré-partilhadas recorrendo a uma solução baseada em hardware como oposto a uma solução, menos segura, baseada em software. Utilizar sempre ESP em VPN’s IPsec para garantir integridade e encriptação em oposição ao protocolo AH (alguns equipamentos Cisco deixaram de o suportar).
- Usar sempre algoritmos fortes para encriptação ( 3DES e AES). Não utilizar DES.
- Usar sempre SHA como algoritmo de hashing. Não utilizar MD5.
- Pode aumentar o nível de segurança do SA utilizando PFS. Tal só é recomendado em informação muito sensível e com equipamento adequado visto que o impacto no processamento é grande.
- Evitar a utilização de NAT em VPN’s IPsec. Só se justifica a sua utilização se existirem Redes privadas com o mesmo endereçamento. Para redes de média e grande dimensão optar por equipamento dedicado.
Existem 5 passos no estabelecimento de uma VPN IPsec site-to-site (ver figura)
- O PC1 envia tráfego destinado para o PC2.
- O Router1 classifica o tráfego como interessante originando a criação de um túnel IPsec.
- O Router1 e o Router2 negoceiam a associação (SA) utilizada para formar uma fase IKE 1 também chamado túnel ISAKMP.
- A fase IKE 2, também conhecida como túnel IPsec é estabelecida. Depois de estabelecido o túnel o tráfego é encaminhado.
- Não sendo enviado tráfego interessante durante um determinado período de tempo a SA é eliminada e o túnel caí.
- Definição dos parâmetros a serem utilizados na fase 1 IKE ( túnel ISAKMP).
- Definição dos parâmetros a serem utilizados na fase 2 IKE ( túnel IPsec) ou definição do transform set.
- Criação de uma ACL que define o “tráfego interessante” que deverá ser enviado pelo túnel IPsec.
- Criação de um crypto map que não é mais do que agrupar logicamente os passos anteriormente configurados e aplicá-los a uma interface de um par IPsec.
- Opcionalmente configurar ACL’s adicionais que impeçam tráfego não interessante de atravessar o túnel.
Considere-se a configuração de uma VPN IPsec site-to-site entre os dois Routers especificados na figura anterior. As redes 10.1.1.0/24 e 192.168.0.0/24 deverão ter conectividade IP.
Definição dos parâmetros a serem utilizados na fase 1 IKE ( túnel ISAKMP).
Router1
Router1# conf terminal
Router1(config)# crypto isakmp policy 1
Router1(config-isakmp)# authenttication pre-share
Router1(config-isakmp)# hash sha
Router1(config-isakmp)# encryption aes 128
Router1(config-isakmp)# group 2
Router1(config-isakmp)# lifetime 8640
Router1(config-isakmp)# exit
Router1(config)# crypto isakmp key Pa$$word address 172.30.2.2
Router1(config)# end
Router1#
Router2
Router2# conf terminal
Router2(config)# crypto isakmp policy 1
Router2(config-isakmp)# authenttication pre-share
Router2(config-isakmp)# hash sha
Router2(config-isakmp)# encryption aes 128
Router2(config-isakmp)# group 2
Router2(config-isakmp)# lifetime 8640
Router2(config-isakmp)# exit
Router2(config)# crypto isakmp key Pa$$word address 172.30.2.1
Router2(config)# end
Router2#
Descrição dos comandos:
crypto isakmp policy 1 - Entra em modo de configuração ISAKMP
authenttication pre-share - Escolha dométodo de chaves pré-partilhadas para o processo de autenticação.
hash sha - Especifica que o algoritmo de hashing a utilizar é o SHA (Secure Hash Algorithm)
encryption aes 128 - Específica que o algoritmo AES de 128 bits vai ser utilizado para encriptação.
group2 - Define que o algoritmo Diffie-Hellman Group 2 vai ser utilizado para tornar segura a troca de chaves entre os pares.
lifetime 8640 - Tempo de duração da associação segura (SA) em segundos.
crypto isakmp key Pa$$word address 172.30.2.1 - Define a chave partilhada a ser utilizada com o outro par ( Endereço do Router2 no Router 1 e vice-versa).
Definição dos parâmetros a serem utilizados na fase 2 IKE ( túnel IPsec) ou definição do transform set.
Router1# conf term
Router1(config)# crypto ipsec transform-set MYSET esp-aes esp-sha-hmac
Router1(cfg-crypto-trans)# exit
Router1(config)# access-list 101 permit ip 10.1.1.0 0.0.0.255 192.168.0.0 0.0.0.255
Router1(config)# crypto map ROUTER1_TO_ROUTER2 10 ipsec-isakmp
Router1(config-crypto-map)# set peer 172.30.2.2
Router1(config-crypto-map)# match address 101
Router1(config-crypto-map)# set transform-set MYSET
Router1(config-crypto-map)# exit
Router1(config)# exit
Router1#
Router2# conf term
Router2(config)# crypto ipsec transform-set MYSET esp-aes esp-sha-hmac
Router2(cfg-crypto-trans)# exit
Router2(config)# access-list 101 permit ip 192.168.0.0 0.0.0.255 10.1.1.0 0.0.0.255
Router2(config)# crypto map Router2_TO_ROUTER1 10 ipsec-isakmp
Router2(config-crypto-map)# set peer 172.30.2.1
Router2(config-crypto-map)# match address 101
Router2(config-crypto-map)# set transform-set MYSET
Router2(config-crypto-map)# exit
Router2(config)# exit
Router2#
Descrição dos comandos:
crypto ipsec transform-set MYSET esp-aes esp-sha-hmac - Especifica o algoritmo de encriptação e o algoritmo de hash a serem utilizados.
access-list 101... - Define o tráfego a ser protegido pelo túnel IPsec.
crypto map … - Criação do crypto map onde é definido o endereço IP do outro par, onde é feita a associação com a ACL 101 previamente criada, e agregado o transform set MYSET também anteriormente criado.
Aplicação do crypto map
Router1# conf term
Router1(config)# interface serial 1/0
Router1(config-if)# crypto map ROUTER1_TO_ROUTER2
Router1(config-if)# end
Router1(config)# ip route 192.168.0.0 255.255.255.0 172.30.2.2
Router1(config)# end
Router1#
Router2# conf term
Router2(config)# interface serial 1/0
Router2(config-if)# crypto map Router2_TO_ROUTER1
Router2(config-if)# end
Router2(config)# ip route 10.1.1.0 255.255.255.0 172.30.2.1
Router2(config)# end
Router2#
Descrição dos comandos.
Neste caso aplicamos a crypto map às respectivas interfaces dos 2 equipamentos. Note-se a criação de uma rota estática que aponta para o IP do outro par em cada um dos Routers.
Para testar a conectividade IP da VPN IPsec site-to-site, comece-se por efectuar um ping à Interface LAN do outro par que deverá ser bem sucedido.
Os comandos show crypto engine connections active and show crypto session permitirão verificar os parâmetros da configuração.
Router1# show crypto engine connections active
Crypto Engine Connections
ID Interface Type Algorithm Encrypt Decrypt IP-Address
1 Se1/0 IPsec AES+SHA 0 4 172.30.2.1
2 Se1/0 IPsec AES+SHA 4 0 172.30.2.1
1001 Se1/0 IKE SHA+AES 0 0 172.30.2.1
Referências:
CCNA Security Official Exam Guide
Links:
IPsec RFC: http://tools.ietf.org/html/rfc6071
IPsec: http://pt.wikipedia.org/wiki/IPsec
GRE: http://en.wikipedia.org/wiki/Generic_Routing_Encapsulation
Diffie-Hellman: http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
MD5: http://pt.wikipedia.org/wiki/MD5
SHA: http://pt.wikipedia.org/wiki/SHA
DES: http://pt.wikipedia.org/wiki/DES
AES:http://en.wikipedia.org/wiki/Advanced_Encryption_Standard