mesh1

IPSec

O que é IPSec?

IPSec é um conjunto de protocolos vendor neutral que propõem a forma como estabelecemos túneis de VPN. O objetivo final de uma VPN IPSec é juntar duas LANs, como se elas estivessem na mesma rede mesmo que separados pela Internet.

O conjunto de protocolos IPSec trabalham juntos para fornecer os seguintes benefícios:

Protocolos

Os protocolos que formam a IPSec são:

Se você está estabelecendo uma VPN IPSec através de um Firewall, é importante liberar algumas portas para que o funcionamento seja garantido. A porta padrão do protocolo IKE e IKE NAT-T são UDP 500 e UDP 4500. O Fortigate sempre escuta na porta UDP 4500 para novas conexões IPSec.

Encapsulamento

O IPSec pode operar em dois modos: Transport e Tunnel.

Transport

O modo de transporte encapsula e protege a camada 4 (camada de Transporte OSI) e todas as camadas acima dela.

Tunnel

O modo túnel encapsula o pacote inteiro, adicionando um novo IP header no começo desse pacote. Depois que o pacote IPSec chega em uma LAN remota e é "desempacotado", o pacote continua sua jornada original. Esse modo comumente é usado apenas em VPNs end-to-end (ou client-to-client).

IKE

O protocolo IKE usa a porta 500 UDP. Se o modo NAT-T (NAT Traverso) estiver ativo, então o protocolo IKE usará a porta UDP 4500.

O Fortigate usa o IKE para negociar com o peer e determinar o Security Association (SA). O SA define a autenticação, chaves e as configurações que o Fortigate usará para cifrar e decifrar os pacotes do peer. É um bundle de algoritmos e parâmetros utilizados para cifrar e autenticar os dados viajando por dentro de um túnel.

O IKE possui duas phases, 1 e 2.

Existem duas versões do IKE, v1 e v2. Apesar da v2 ser mais recente do protocolo, o v1 ainda é o mais utilizado.

IKEv1 vs IKEv2

Feature IKEv1 IKEv2
Modos de Exchange - Main: total de 9 mensagens - Aggressive: total de 6 mensagens Apenas um procedimento de troca. Total de 4 mensagens trocadas.
Métodos de Autenticação Simétrico: - Pre-shared Key (PSK) - Certificate signature - Extended Authentication (XAuth) Assimétrico: - PSK - Certificate signature - EAP (Pass-through)
NAT-T Suportado como extensão Suportado nativamente
Confiabilidade Mensagens não são ACK'd Mensagens recebem ACK.

Topologias

Acesso Remoto

O acesso remoto é uma VPN utilizada para acesso de clientes externos à uma rede corporativa, por exemplo. Os clientes comumente fecham o túnel com o servidor dial-up - nesse caso, o Fortigate - e uma vez estabelecendo o túnel, se encontram na mesma rede lógica que a rede local corporativa.

Apenas os clientes podem iniciar a conexão VPN, comumente feita com clientes como o Forticlient.

Site-to-Site

Também chamada de LAN-to-LAN, é comumente usada para conectar dois sites/escritórios corporativos, fazendo com que falem como se estivessem na mesma rede.

Hub and Spoke

É uma arquitetura utilizada para conectar mais de um site/escritório simultaneamente. Um Fortigate central (HQ) recebe a conexão remota de vários outros Fortigates (branch).

Esse setup é escalável e barato pois caso novos escritórios surjam, será necessário estabelecer apenas um novo túnel e apenas o Fortigate HQ precisa ser um modelo forte em recursos computacionais.

Porém, esse setup não é resiliente, pois em caso de falha do Fortigate HQ, todos os túneis irão cair. Além disso, é possível ter problemas de latência se os Fortigates estiverem fisicamente longes um do outro.

Partial Mesh e Full Mesh

Na topologia de mesh, todos os Fortigates possuem túneis um com os outros, não sendo necessário um Fortigate central. Essa é uma abordagem mais cara, exigindo Fortigates fortes em todos os sites para manter os túneis de pé. Essa abordagem também não é escalável, pois para cada novo Fortigate entrando na topologia, será necessário mais túneis serem fechados. Em uma topologia de 5 Fortigates, por exemplo, serão necessários 20 túneis para fazer com que todos falem entre si.

A topologia de mesh parcial funciona da mesma forma, mas nem todos os Fortigates possuem túneis entre si. Isso é possível quando nem todos os sites precisam ter comunicação com o outro a todo o tempo.

Hub-and-Spoke Partial Mesh Full Mesh
Fácil de configurar Configuração moderada Configuração complexa
Menos túneis Túneis em média quantidade Muitos túneis
Alta banda centralizada Banda mediana em hub sites Baixa banda
Não resiliente Parcialmente resiliente Resiliente
Baixos requisitos para os spokes mas altos requisitos para o hub Requisitos medianos Requisitos medianos a altos
Escalável Menos escalável Difícil de escalar
Sem comunicação direta com os spokes Comunicação direta entre spokes Comunicação direta entre spokes

Phase 1

O propósito da Phase 1 é autenticar os peers e estabelecer um canal seguro para que possa ocorrer a troca de SAs da Phase 2. Essas SAs também são chamadas de IPSec SAs - o seu uso é feito durante a cifra e decifra do tráfego que passa pelo túnel estabelecido.

Para um peer autenticar-se ao outro, é possível usar três métodos:

A negociação pode acontecer em dois modos; agressivo e main.

O modo agressivo não é tão seguro quanto o main pois a hash da pre-shared key é trocada em texto plano mas faz a negociação ser mais rápida pois apenas 3 pacotes serão trocados. Esse modo é requisitado se o peer ID check for necessário.

O modo main é mais seguro porém mais lento (6 pacotes trocados para negociar um túnel).

Ao fim da negociação, a SA negociada é utilizada para negociar chaves Diffie-Hellman (DH) que serão usadas na phase 2. DH usa a chave pública que ambas as pontas conhecem + um nonce para gerar uma chave privada. Pelo uso do DH, mesmo que um atacante intercepte as mensagens com a chave pública, ele não poderá determinar a chave privada.

NAT Transversal

O protocolo ESP enfrenta problemas quando atravessa dispositivos que fazem uso do NAT pois os pacotes ESP não possuem conhecimento de portas numeradas, como o TCP e o UDP. O NAT transversal foi criado para resolver esse problema; quando usado, o protocolo ESP forçará a negociação IKE acontecer na porta UDP 4500 e os pacotes ESP serão encapsulados também com destino à porta 4500 usando o protocolo UDP.

Isso é útil se você tiver um Fortigate atrás de um modem ISP que faz NAT para se comunicar com a internet.

Dead Peer Detection

Quando habilitado, probes DPD são enviadas para detectar se o túnel está vivo ou morto. Esse mecanismo é útil se você possuir redundância de túneis para um mesmo destino e deseja fazer um ativo-passivo caso um dos túneis caia.

O modo On demand faz com que o Fortigate envie probes DPD se houver apenas tráfego outbound (saída) pelo túnel. A ausência de pacotes inbound faz sentido caso o túnel esteja caído/down.

O modo On idle faz com que o Fortigate envie probes DPD quando não houver tráfego observado no túnel. Um túnel sem tráfego não necessariamente é um túnel morto (pode apenas não estar recebendo tráfego naquele momento) mas é outro forte indicador de um túnel morto.

Se desabilitado, o Fortigate ainda escutará probes DPD e apenas responderá para eles. O modo default é o On Demand.

Autenticação

Configurações da Phase 1

As configurações disponíveis são:

Phase 2

A phase 2 negocia parâmetros de segurança para dois SAs IPsec sobre o túnel estabelecido durante a phase 1. ESP usa o SA IPsec para cifrar e decifrar o tráfego trocado pelos peers; uma SA para inbound e uma SA para outbound. Adicionalmente, o Authentication Header (AH) usa duas chaves de integridade para autenticar a origem dos pacotes e verificar a integridade dos dados. Lembre-se: AH não provê criptografia.

Selectors

Na phase 2, você deve determinar qual domínio de criptografia (ou tráfego interessante) do seu túnel IPSec. Isso basicamente se refere a qual tráfego você quer proteger usando o túnel. Isso é determinado pelo phase 2 selector.

Você pode configurar múltiplos selectors para ter mais controle granular do seu tráfego. Quando você configura um seletor de phase 2, você deve especificar qual domínio usando:

Pense em um selector como um selecionador de qual tráfego deve ser cifrado pelo túnel, apontando qual o endereço local desse tráfego e qual o endereço remoto desse tráfego.

Para cada selector você precisa configurar uma ou mais proposals. Uma proposal define quais algoritmos são suportados pelo peer para cifrar e decifrar o tráfego sobre o túnel. Você pode configurar múltiplas proposals para oferecer mais opções ao peer.

Como na phase 1, você precisa selecionar uma combinação de cifras e algoritmos de autenticação. Alguns são mais seguros que os outros e alguns possuem um maior impacto do que outros na performance do Fortigate. Por exemplo, 3DES é muito mais intensivo do que DES ou AES. Se você selecionar NULL, o tráfego não será cifrado.

Renegociações

SAs são renegociadas de tempos em tempos para garantir segurança do túnel estabelecido. Esse tempo pode ser estabelecido em segundos ou também pode ser estabelecido em kilobytes, fazendo a key ser refrescada após uma certa quantidade de bytes trafegados pelo túnel.

Quando a IPSec SA expira, o Fortigate precisa negociar SAs novas para continuar enviando e recebendo tráfego pelo túnel. Tecnicamente, o Fortigate deleta as SAs expiradas dos respectivos seletores de phase 2, instalando novos em seu lugar. Se a renegociação tomar muito tempo, o Fortigate pode dropar tráfego interessante por causa da ausência de uma SA. Para prevenir isso, habilite o Auto-negotiate, fazendo o Fortigate negociar e começar a usar imediatamente as novas chaves geradas.

Outro benefício do Auto-negotiate faz o túnel subir e se manter up mesmo que não haja tráfego interessante. Quando você ativa o Autokey Keep Alive e mantém o Auto-negotiate desabilitado, o túnel não sobe automaticamente enquanto não houver tráfego interessante.

Hardware Off-loading

Em alguns modelos Fortigate, é possível fazer a descarga da cifra e decifra do tráfego IPSec para o hardware. Os algortimos que são suportados dependem do modelo.

Tipos de VPN

Existem dois tipos de IPSec VPNs suportadas pelo Fortigate; route-based e policy-based.

Policy-based

É um tipo legado de IPSec VPN suportado apenas por razões de retro-compatibilidade.

Route-based

Fortigate automaticamente adiciona uma interface virtual com o nome da VPN. Isso significa que somente você pode configurar roteamento e políticas de firewall para tráfego IPSec da mesma forma que você faz para tráfego não-IPSec.

É uma operação e configuração mais simples. Também oferece suporte para L2TP-over-IPSec e GRE-over-IPSec.

Rotas

A configuração de rotas para a VPN IPSec varia de acordo com o remote gateway configurado para ela.

Dial-up user route

Quando o tipo de gateway remoto é um dial-up user, existe a opção de habilitar e desabilitar a configuração add-route:

config vpn ipsec phase1-interface
   edit "Dialup"
      set add-route enable | disable
   next
end

Se habilitado, o Fortigate automaticamente adiciona uma rota estática para a rede local apresentada pelo peer remoto. Além disso, essa rota é adicionada automaticamente à routing table do Fortigate. Quando o túnel é encerrado, essa rota também é removida.

Desabilitar o add-route faz com que esse gerenciamento se torne manual. É uma opção a ser usada quando necessário protocolos de roteamento dinâmicos.

Static Route ou Dynamic DNS

Quando esse for o seu remote gateway, você deve configurar as rotas estáticas. Quando você configurar essa rota estática, selecione a interface virtual do túnel IPSec como a outgoing interface.

Firewall Policies

Você deve configurar pelo menos uma política de firewall para aceitar o tráfego do túnel IPSec. Como tudo no firewall, aquilo que não tiver uma política de ACCEPT, o tráfego será dropado pela caixa.

Idealmente, duas firewall policies devem ser configuradas para cada túnel.

Redundância

A redundância em um túnel VPN IPSec é alcançada possuindo dois ISPs diferentes e possuindo dois túneis diferentes em portas WAN segregadas (WAN1 e WAN2, por exemplo.)

Se um link de internet cair, é possível rotear o tráfego do túnel pelo outro link de internet, garantindo assim resiliência na conexão.

  1. Adicione uma phase 1 config para cada túnel. Habilite o DPD nas duas pontas.
  2. Adicione pelo menos uma phase 2 definition para cada phase 1.
  3. Adicione uma rota estática para cada path:
  1. Configure firewall policy para cada interface IPSec.

Monitorando

Dentro do menu Dashboard > Network > IPSec é possível recuperar informações sobre os túneis disponíveis.

Informações como:

Também é possível derrubar um túnel por esse mesmo painel.

Logs

Dentro de Log & Report > System Events > VPN Events é possível recuperar os logs da VPN IPsec. Isso pode ser feito também através da CLI pelo diagnose vpn tunnel

Test Questions

knowledge-check-ipsec-1


knowledge-check-ipsec-2


knowledge-check-ipsec-3

#fcp #fortinet #nse4 #vpn