Modo Tunel ‣ Nueva Cabecera IP Con Destino Entre Gateways Modo Tunel ‣ El Paquete Orginal Se Transporta Entero Ip
Total Page:16
File Type:pdf, Size:1020Kb
Redes privadas virtuales VPN Seguridad en el canal ‣ En ocasiones queremos extender la red de una empresa más allá de los limites del edificio ‣ Antiguamente se usaban lineas telefónicas alquiladas para unir routers en las sedes remotas y tener un enlace. (que se puede pinchar... o podemos fiarnos del operador) ‣ Ahora surge la posibilidad de enviar esos paquetes a través de Internet Cobertura en cualquier parte (no hace falta tener preparada la linea alquilada) Ahorro (no hace falta pagar la linea alquilada) Seguridad (podemos cifrar las comunicaciones y olvidarnos de si pinchan o no el cable) mi red Internet mi red Redes privadas virtuales (VPN) Dos cuestiones a resolver ‣ ¿Como hacemos para que las redes de diferentes sedes se comporten como si estuvieran en la misma red? ‣ ¿Como protegemos nuestras comunicaciones de los observadores? ‣ Necesitamos Autentificacion/Autorización (y Accounting) ‣ Necesitamos cifrado mi red Internet mi red Tunneling Idea basica… ‣ El caso normal ‣ Routers son elementos con su propia IP, pueden comunicarse soft soft Idea basica… ‣ Los routers se comunican los paquetes, como si tuvieran un enlace directo que en realidad es virtual soft soft ‣ Entre los routers los paquetes van dentro de otros paquetes soft soft ‣ A esto lo llamamos un TUNEL Túneles, para que? ‣ Simplificar enrutamiento ‣ Controlar acceso ‣ Transportar direcciones o protocolos por zonas que no las soportan (direcciones privadas, IPv6…) ‣ Cifrar la información que va dentro del túnel R3 R2 E2 R4 E1 R1 El paquete p : E1 > R1 > R4 > E2 Pero R1 > R4 es que R1 genera un paquete q El paquete q : R1 > R2 > R3 > R4 Esto no es nuevo… ‣ PPP y lineas telefónicas IP Red Telefónica IP T T Modem T Modem T IP en PPP Red Telefónica T T Modem T Sede 2 Sede 1 Modem T IP en PPP Esto no es nuevo… ‣ Enlaces virtuales IP IP Enlace PPP IP en PPP Enlace PPP Sede 2 Sede 1 IP en PPP ‣ Y si transportamos los paquetes PPP en otra cosa que no sea una llamada telefónica Protocolos de túnel ‣ Según que es lo que transportamos ‣ Paquetes de nivel de enlace: túneles de nivel 2 enlace ‣ Paquetes de nivel de red: túneles de nivel 3 red ‣ Datos de aplicación o conexiones: tuneles de transporte ‣ Según como lo transportemos ‣ Dentro de paquetes o conexiones ‣ Muchos protocolos ‣ IPIP, GRE, MPLS, … ‣ PPTP, L2F, L2TP … ‣ IPsec ‣ openvpn, n2n, ssh, socat … ‣ … Túneles con SSH Ejemplo: Tuneles sobre SSH Tunel de nivel de transporte sobre SSH ‣ Redireccionar un puerto local $ ssh usuario@host -L puertolocal:destino:puerto ‣ Escenario con ssh permitido pero puerto P filtrado ‣ Para el destino la conexion viene de H2 sshd servicio P puerto ssh puertolocal PL Tuneles sobre SSH Tunel de nivel de transporte sobre SSH ‣ Redireccionar un puerto remoto $ ssh usuario@host -R puertoremoto:destino:puerto ‣ Igual que en el caso anterior pero redirecciona puertos del puertoremoto servidor hacia la red del cliente de ssh sshd PR ‣ Se puede usar SSH para proteger ssh servicios clasicos P telnet Ejemplos Tuneles de nivel de enlace sobre ssh (PPP sobre ssh) ‣ Conexión ssh y un pppd en cada extremo $ pppd pty “ssh usuario@host pppd” ‣ Puedo enviar paquetes IP a un PC de mi red que luego actue como router ‣ Uso: VPN construida a mano con solo un servidor ssh y pppd ‣ Uso : puerta de entrada a traves de cualquier firewall que soporte conexiones entrantes ssh pppd pppd ssh mi red Internet ssh Ejemplos Tuneles con tun/tap sobre ssh ‣ Opcion -w $ ssh -w 2:5 usuario@host $ ifconfig tun2 10.3.1.1/24 $ ifconfig tun5 10.3.1.3/24 tun2 tun5 ssh mi red Internet ssh Túneles con SOCAT ¿Que es un interfaz de red? TCP/UDP ‣ Que es para el sistema operativo eth0 ? eth1 ? ppp0 ? IP ‣ Es un modulo al que IP puede entregar paquetes o del que los puede recibir ‣ Cada interfaz tiene código diferente para eth0 eth1 ppp0 obtener o procesar paquetes ‣ Hay modulos para intercambiar paquetes entre IP y un programa TCP/UDP ‣ Lo que escribo en /dev/tun0 es interpretado como que ha llegado un paquete que se le entregara a IP IP ‣ Lo que envia IP a través de tun0 lo leerá un programa que tenga abierto/dev/tun0 tun0 eth0 ‣ TUN da los paquetes a nivel 3 IP ‣ TAP da los paquetes a nivel 2 ethernet /dev/tun0 Como funciona un túnel en el SO Datos para Datos para 72.2.1.5 72.2.1.5 TCP/UDP TCP/UDP IP IP 55.0.1.3 72.2.1.5 eth0 eth0 Internet global eth eth ‣ Funcionamiento normal de IP Como funciona un túnel en el SO TCP/UDP TCP/UDP 192.168.1.1 192.168.1.2 IP IP tun0 tun0 55.0.1.3 72.2.1.5 eth0 eth0 Internet global eth eth ‣ Tenemos interfazes para hacer un enlace virtual ‣ IP cada interfaz esta en una subred y tiene una dirección IP Como funciona un túnel en el SO Datos para 192.168.1.2 TCP/UDP TCP/UDP 192.168.1.1 192.168.1.2 IP IP tun0 tun0 55.0.1.3 72.2.1.5 eth0 eth0 Internet global eth eth ‣ Si envío a una IP del enlace virtual el paquete va a tun que lo entrega /dev/tun al programa que este leyendo Como funciona un túnel en el SO envia a programa túnel Datos para 72.2.1.5 192.168.1.1 192.168.1.2 esta en 72.2.1.5 TCP/UDP TCP/UDP 192.168.1.1 192.168.1.2 IP IP tun0 tun0 55.0.1.3 72.2.1.5 eth0 eth0 Internet global eth eth ‣ Habra un software haciendo el túnel que recibira el paquete y tiene que meterlo en el tunel. ‣ Decidir a quien enviárselo, cifrarlo… Como funciona un túnel en el SO Datos para programa túnel envia a programa túnel 192.168.1.2 Datos para 192.168.1.1 extraigo el paquete 72.2.1.5 llegan desde 192.168.1.2 esta en 72.2.1.5 es para 192.168.1.2 192.168.1.1 TCP/UDP TCP/UDP 192.168.1.1 192.168.1.2 IP IP tun0 tun0 55.0.1.3 72.2.1.5 eth0 eth0 Internet global eth eth ‣ El receptor del mensaje es el software de túnel que lo entregará al /dev/tun del destino ‣ El kernel recibe un paquete en un interfaz y lo entrega al destino ‣ El programa escuchando en 192.168.1.2 recibe los datos Como funciona un túnel en el SO ‣ IP ve dos interfaces no sabe que uno en realidad se hace con envíos a través del otro ‣ En un interfaz soy vecino de 192.168.1.2 TCP/UDP TCP/UDP 192.168.1.1 192.168.1.2 IP red virtual 192.168.1.0/24 IP tun0 tun0 55.0.1.3 72.2.1.5 eth0 eth0 Internet global eth eth ‣ Los túneles tienen direcciones IP internas del túnel ‣ Que no son las mismas que los extremos del túnel ‣ Los extremos del túnel tienen que poder comunicarse antes de que se cree el túnel The power of socat ‣ Equivalente a nc socat STDIN TCP:servidor:puerto socat STDIN TCP-LISTEN:puerto ‣ Abre dos interfaces genéricos ‣ En paralelo lee todo lo que aparece en cada uno y lo envia al otro SOCAT ‣ puede ser ‣ Un socket TCP o UDP cliente o servidor ‣ Abrir un fichero (incluyendo /dev/tun /dev/tap) ‣ Abrir otro programa ‣ Hacer una conexión SSL ‣ Prácticamente cualquier cosa en UNIX Usando socat para un túnel ‣ Ejemplo En 72.2.1.5 $ socat TUN:10.3.1.3/24 TCP-LISTEN:5000 En 55.0.1.3 $ socat TUN:10.3.1.1/24 TCP:72.2.1.5:5000 SOCAT SOCAT abre CNX a 10.3.1.1 túnel 10.3.1.3 escucha en 5000 72.2.1.5 : 5000 72.2.1.5 55.0.1.3 Internet global eth eth Cifrando con SSL ‣ Ejemplo En 72.2.1.5 $ socat TUN:10.3.1.3/24 OPENSSL-LISTEN:5000 En 55.0.1.3 $ socat TUN:10.3.1.1/24 OPENSSL:72.2.1.5:5000 SOCAT SOCAT abre CNX a 10.3.1.1 túnel cifrado 10.3.1.3 escucha en 5000 72.2.1.5 : 5000 72.2.1.5 55.0.1.3 Internet global eth eth ‣ Pero habra que añadir parámetros a OPENSSL para decirle que clave privada usamos o de que certificado nos fiamos… se deja como ejercicio Mas variedades con socat ‣ OPENSSL ‣ Hay que especificar la clave privada en el servidor ‣ Hay que especificar de quien nos fiamos en el cliente ‣ TAP en lugar de TUN hace el túnel de nivel 2 ‣ Envia la trama ethernet y hay ARP con lo que puede haber una red con más direcciones ‣ UDP en lugar de TCP ‣ Cada paquete va en un paquete UDP ‣ Menos fiabilidad pero más rápido ‣ Cuidado la mayoría de estos hacen túnel pero no cifran ‣ Tampoco hay autentificación VPN Red privada virtual ‣ Construir una red privada sobre la red pública ‣ Necesitamos ‣ Tuneling ‣ Autentificación ‣ Control de acceso ‣ Seguridad de los datos (encriptación) Arquitecturas de VPNs mi red Internet mi red LAN-to-LAN End-to-LAN POP-to-POP POP = Point of Presence router del operador que nos vende el servicio de VPN ‣ Según las necesidades el tunel para la VPN puede realizarse desde un gateway (router) de la empresa o del proveedor y llegar hasta un gateway o bien llegar hasta el ordenador final ‣ Según quién realice el tunel tendremos diferente protección y diferente gestión de la red Tipos de VPNs mi red mi red Internet mi red ‣ Interna (Site-to-site): une dos o más redes internas como si fueran una sola red ‣ Acceso: permite el acceso de un cliente que esta en una red insegura.