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