Armando VPNs con FreeS/WAN 2das. Conferencias Abiertas de GNU/Linux Daniel E. Coletti CaFeLUG
Agenda VPNs conceptos, usos, etc. IPSec definición, implementaciones FreeS/WAN instalación, nomenclatura y sintaxis Instalando FreeS/WAN Configuración de FreeS/WAN
VPN (concepto) Virtual Private Network red que se ``teje'' sobre otra red existente Los datos que se transfieren entre los nodos puede estar cifrada o no Hay muchas formas de cifrar datos Hay muchos programas escritos para armar VPNs Se pueden armar diferentes topologias de red, en base a las necesidades se define cual utilizar (y qué software utilizar)
VPN [cont.] Los túneles son conexiones punto a punto virtuales (como si hubiera un cable serial conectado de un nodo a otro) Los nodos podrán ser estáticos o móviles La red podrá permitir accesos a subredes o a equipos individuales (o una combinación de ambos) Los números de IP podrán ser dinámicos en todos los nodos
IPSec IP Security Agregado al protocolo IP para dar seguridad Provee servicio de cifrado y autenticación a nivel IP Hay varias implementaciones y hay muchas RFCs que estandarizan la forma en que debe implementarse Permite interoperar ``fácilmente'' con otras implementaciones de IPSec
IPSec [cont.] Otras implementaciones: Cisco Microsoft Windows *BSDs 3Com IBM HP Sun
FreeS/WAN Es una de las implementaciones para Linux Tiene 3 partes: KLIPS (kernel), Pluto (IKE daemon), scripts locales El kernel 2.6 tiene otra implementación de IPSec (podrá utilizar múltiples daemons IKE) Actualmente hay dos versiones en uso, la 1.99 y la 2.x
FreeS/WAN (instalación) Compilación Kernel Aplicaciones (ike mayormente) Instalación de paquetes (RPMs) Agregado de parches para proveer algunas cosas extra (otros algoritmos de cifrado, funcionalidad que no tiene por defecto)
FreeS/WAN (configuración) /etc/ipsec.conf es el archivo central de configuración /etc/ipsec.d, directorio donde se guardan los certificados X509 /etc/ipsec.secrets, archivo donde van las claves (parte privada)
Entendiendo la conf. /etc/ipsec.conf contiene 3 partes Configuración general Valores por defecto de todas las conexiones Definición de cada una de las conexiones En FreeS/WAN hablan de left y right como las puntas de cada tunel, esto es para evitar hablar de nodo local y nodo remoto.
Tipos de Tuneles Subnet to subnet (se cifran únicamente los datos que van de una red LAN determinada hacia otra) Host to subnet (se cifran los datos que van de un equipo en particular a una red local) Host to Host (se cifran los datos que van de un equipo a otro)
Topologías Estrella (todos se conectan a un nodo central) Distribuida (todos se conectan con todos requiere de muchos túneles)
Problemas comunes (1) Se establecen los túneles pero no puedo enviar pings de un lado a otro (seguramente se esta enviando tráfico que no coincide con la definición del túnel) Estoy detrás de un firewall/nat (cybercafe) y el túnel se autentica pero no me permite enviar tráfico a través de él (el protocolo IPSec rechaza conexiones ``nateadas'') No hay control de túnel en IPSec
Problemas comunes (2) Tengo problemas al hacer el re-keying (verificar que los puertos udp 500 esten abiertos en el firewall, unificar el lapso de espera del rekeying)
Super FreeS/WAN Un proyecto que incluye todos los parches no-oficiales de FreeS/WAN Incluyen (entre otras cosas): Todos los algoritmos de cifrado (incluyendo DES) El parche de NAT Traversal Certificados X509 Dead Peer Detection http://www.freeswan.ca
Cómo configuro el firewall Protocolo esp Protocolo ah si es que se usa Protocolo udp, puerto 500 de origen y destino
Referencias http://www.freeswan.org (FreeS/WAN) http://www.freeswan.ca (Super FreeS/WAN) http://www.vpnc.org (VPN Consortium)