IPSec

O IPSec é um protocolo bem antigo para implementar VPN. Ele é o protocolo padrão para criação de VPNs corporativas, embora nem sempre seja o mais usado na internet como o OpenVPN e o PPTP (da Microsoft). Como ele é apenas um protocolo, podem existir softwares diferentes que implementam seu funcionamento, sejam softwares rodando em um Linux, Windows, MAC ou rodando em sistemas embarcados, roteadores, switches, firewalls Cisco, Juniper, etc...

Implementações IPSec no Linux

No Linux temos:

  • FreeS/WAN (descontinuado)
  • IPsec-Tools (descontinuado)
  • OpenSwan
  • StrongSwan
  • LibreSwan

O PfSense utiliza o StrongSwan como software de IPSec.

IPSec com interface gráfica

É possível criar conexões IPSec com interface gráfica pelo NetworkManager. Ele suporta por padrão o OpenSwan e o StrongSwan.

Tipos diferentes de topologia VPN em IPSec

Topologias no Firewall Sophos

  • Site to Site
  • Host to Host
  • Remote Access

Topologias no Firewall PfSense

  • Site to Site
  • Remote Access Mobile

No modelo Site to Site, ligamos uma rede LAN inteira à outra. Ambas as redes não podem ter a mesma faixa de IP (embora isso possa ser solucionado com NAT). Nesse modo, cada ponta trabalha como cliente e servidor ao mesmo tempo, e cada ponta precisa saber o IP da outra ponta, então ambos precisam de IPs fixos.

No modelo Remote Acces Mobile temos um servidor com IP fixo, e diversos outros clientes sem necessariamente ter IP fixo. Clientes sem IP fixo são chamados Road Warriors. Esse modelo é mais flexível pois permite clientes mas também outros roteadores (como no site to site).

Tipos de Túneis

Nativamente o IPSec cria um túnel nativo. Esse túnel possui algumas limitações.

  • Multicast não funciona
  • Impossibilidade de encaminhar dados de redes não contíguas através de um único túnel

Essas limitações são resolvidas se você usar um túnel GRE. Túneis GRE não possuem criptografia nem autenticação, porquanto é possível encapsular um túnel GRE dentro de um IPSec.

Configurar um GRE dentro de um IPSec aumenta a complexidade, então verifique se realmente isso será preciso. Talvez um túnel Camada 2 possa resolver suas necessidades com GRE.

Fases de conexão do IPSec

Os túneis IPsec tem duas fases:

Fase 1: definimos quem é o outro ponto da VPN que irá se conectar (remote peer) e como é feita a autenticação no túnel.

Phase 2: definimos como o tráfego de rede transitará pelo túnel (tipos de criptografia).

Referências

Diferenças entre OpenSwan e StrongSwan
https://serverfault.com/questions/173158/strongswan-vs-openswan/655752#655752

Configurando o StrongSwan no Linux em uma EC2 da AWS
https://packetpushers.net/strongswan-an-inexpensive-aws-vpn-alternative/

Tipos diferentes de VPN IPSec
https://docs.sophos.com/nsg/sophos-firewall/v16058/Help/en-us/webhelp/onlinehelp/index.html#page/onlinehelp/IPSecConnectionEdit.html

Cliente LT2P/IPSec no Linux
https://www.tecmint.com/setup-l2tp-ipsec-vpn-client-in-linux/

Diferenças entre Túnel IPSec Nativo e Túnel GRE
http://blog.boson.com/bid/92815/what-are-the-differences-between-an-ipsec-vpn-and-a-gre-tunnel

Tipos de túneis
http://www.netheaven.com/TunnelTypes.html

You should also read:

Testando IPSec com o PfSense

Neste tutorial configuraremos dois servidores pfsense para interligarem duas redes (site-to-site VPN) através do protocolo IPSec com túnel nativo (sem GRE) usando esquema…