Slideshow transcript
Slide 1: Tecnologías Libres para Túneles y VPNs. 5 oct 2007 – CafeConf 6 – UADE – Buenos Aires, Argentina jun 2006 – II EMSSOL – Universidad Peruana Unión, Juliaca, Perú 26 may 2006 - 1ra. Semana de la Ciencia y la Tecnología - Universidad Católica del Uruguay Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 2: Agenda Introducción: Descripción de la situación Conceptos generales encriptación y autenticación Conceptos generales túneles Conceptos generales VPNs Túneles: ssh, stunnel, zebedee VPNs: OpenVPN Otros: pptp, cipe,vpnd, vtun, tunnelv Túneles, VPNs y Firewalls Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 3: Introducción Por qué encriptar: Confidencialidad, seguridad (passwords). No siempre tengo control de la conexión física (wireless, internet, etc.) No confiar en el canal físico: sniffers equipos comprometidos tempest echelon Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 4: Introducción Por qué autenticar: No siempre los protocolos de aplicación autentican cliente y servidor de forma confiable (nfs, aplicaciones legadas). Atacantes pueden personificar el servidor y/o el cliente. Ataques comprometiendo elementos que no están bajo mi control (dns, rutas en Internet, etc.) Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 5: Introducción Encripción y autenticación del tráfico: Dos problemas diferentes: Para una aplicación específica, Lo ideal es que la aplicación soporte encripción en forma nativa (smtp/tls, imaps, pops, ssh, https) Cuando no soporta encripción: túnel o VPN Para todo el tráfico de la red: VPN Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 6: Introducción - Encripción Encripción por clave simétrica: Las dos partes comparten la misma clave secreta. La seguridad depende del secreto de la clave compartida. Muy eficiente en CPU. Escala muy mal al aumentar número de participantes (((n-1) * n) / 2) Ejemplos: Blowfish, AES, RC5, 3DES Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 7: Introducción - Encripción Encripción por clave pública: Dos claves relacionadas entre si, una pública, la otra privada. La clave pública se distribuye libremente (seguridad cero). La seguridad depende de la clave privada, que debe ser conocida solo por el dueño. (seguridad relativa + frase acceso) Alto costo en CPU. Escala muy bien con el número de participantes (n+1). Ejemplos: dsa, rsa Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 8: Introducción - Encripción Diffie-Hellman: Protocolo para intercambio de claves. Combina las ventajas de la criptografía de clave pública con la eficiencia en CPU de clave simétrica. Permite generar dinámicamente sobre una conexión insegura una clave simétrica compartida por las dos partes. El resto de la comunicación se realiza encriptando con estas claves simétricas. Usado en: GNUpg, TLS, IKE, etc. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 9: Introducción - Túneles Para encriptar el tráfico de aplicaciones individuales. El túnel encripta el tráfico para un protocolo y puerto determinado. No para aplicaciones que generan conexiones dinámicamente (ej. ftp, voip) Como ventaja adicional, algunas implementaciones permiten comprimir el tráfico. La conveniencia de usar compresión depende de la relación entre la velocidad de la red y de la cpu. Túnel: 10.1.1.10:1234 ==> 172.16.1.2:25 (vía 172.16.1.1) 172.16.1.1 10.1.1.10:1234 WAN/ LAN 172.16.1.2:25 10.1.1.1 telnet 10.1.1.10 1234 Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 10: Introducción - VPNs Red Privada Virtual, simula una conexión segura, a través de una red insegura (Internet, etc.). La VPN es un dispositivo de red más, deben establecerse rutas, etc. Comúnmente la VPN es en capa 3, también es posible hacer VPNs en capa 2. Generalmente es posible comprimir el tráfico. 172.16.1.2 VPN es GW a: 10.1.1.2 VPN es GW a: 10.1.1.0/24 172.16.1.0/24 WAN/ LAN 172.16.1.1 10.1.1.1 172.16.1.3 10.1.1.3 Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 11: Introducción - IPsec Estándar opcional en IPv4, obligatorio en IPv6. Usando IKE y encripción oportunista es posible encriptar en forma transparente nodos que no se conocen previamente. Es una modificación del stack IP, requiere modificación del kernel. Código no portable, cada sistema operativo tiene su propia implementación. Complejo de configurar en ambientes heterogéneos. El protocolo es complejo: http://www.schneier.com/paper-ipsec.pdf Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 12: Túneles - ssh Interoperatibilidad: Instalado en la mayoría de los equipos Unix. Ideal para hacer túneles para resolver problemas puntuales. Soportado bajo Windows con cygwin (hoy está portado) Algoritmos usados: Clave pública: DSA, RSA (recomendado) Clave simétrica: 3DES, Blowfish, CAST128, Arcfour, AES Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 13: Túneles - ssh Ventajas: Tuneliza en forma nativa y transparente conexiones X11. Comprime con gzip. Inconvenientes: Su objetivo principal no es hacer túneles. Cuidado al configurar!. No dar privilegios al usuario que crea el túnel. El cliente del túnel no corre como demonio, es necesario hacer scripts para verificar que no muera, iniciarlo automáticamente, etc. No soporta UDP. Tuneliza sobre TCP. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 14: Túneles - ssh Configuración: Especificar el túnel en línea de comandos (remoto/local?). Para túneles que deban ser creados en forma automática usar clave pública. Restringir privilegios de la clave pública en el servidor. Túnel: 10.1.1.10:1234 ==> 172.16.1.2:25 (vía 172.16.1.1) 172.16.1.1 10.1.1.10:1234 WAN/ LAN 172.16.1.2:25 $ ssh -L 1234:172.16.1.2:25 user@172.16.1.1 $ telnet 10.1.1.10 1234 Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 15: Túneles - stunnel Interoperatibilidad: Depende solo de openssl y tcpwrappers. Compila en todos los unixes, freebsd, gnu/linux. Compila bajo Win NT/2000/XP. Algoritmos usados: Autenticación X 509 , y todos los algoritmos soportados por openssl. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 16: Túneles - stunnel Ventajas: Permite dar soporte SSL a servidores que no tienen SSL nativamente (imaps, https, etc.) Una sola instancia del demonio puede atender varios túneles. Soporta chroot en forma nativa. Inconvenientes: Un thread por conexión, usar solo con kernel 2.6 No soporta UDP. Tuneliza sobre TCP (usar opción TCP_NODELAY=1). Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 17: Túneles - stunnel Configuración: /etc/stunnel/stunnel.conf: /etc/stunnel/stunnel.conf: socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 pid = /var/run/stunnel4/stunnel.pid pid = /var/run/stunnel4/stunnel.pid cert = /etc/stunnel/stunnel.pem client = yes [5678] [1234] accept = 5678 accept = 127.0.0.1:1234 connect = 127.0.0.1:1234 connect = 172.16.1.1:5678 WAN/ LAN :5678 127.0.0.1:1234 10.1.1.10 172.16.1.1:1234 Túnel: 10.1.1.10:1234 ==> 172.16.1.2:1234 Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 18: Túneles - zebedee Interoperatibilidad: Compila en todos os Unix, *BSD, GNU/Linux. Compila bajo Win NT/2000/XP. Algoritmos usados: Zlib Blowfish Diffie-Hellman. Autenticación mediante clave pública asociada a Diffie-Hellman. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 19: Túneles - zebedee Ventajas: Configuración simple. Suporta UDP. Permite compresión zlib, opcionalmente bzip2. Inconvenientes: Desarrollo estable (estancado) desde 2003. Multithread, usar con kernel 2.6 . En UDP o limite por datagrama es de 16kb. Tuneliza sobre TCP. No garantiza integridad de los datos (es posible introducir ruido). Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 20: Túneles - zebedee /usr/local/etc/zebedee/zebedee.conf /usr/local/etc/zebedee/zebedee.conf detached true detached true server false server true ipmode tcp ipmode tcp listenip 127.0.0.1 logfile /var/log/zebedee-server logfile /var/log/zebedee-client compression zlib:9 serverhost 172.16.1.1 keylength 256 tunnel 12300,12400:172.16.1.1:1230,1240 keygenlevel 2 compression zlib:9 include '/usr/local/zebedee-server.key' keylength 256 redirect none maxbufsize 16383 target localhost:1230/tcp,1240/tcp keygenlevel 2 checkidfile '/usr/local/zebedee-client_server-id.id' WAN/ 172.16.1.1:1230 LAN 127.0.0.1:12300 172.16.1.1:1240 127.0.0.1:12400 172.16.1.1 10.1.1.10 Túneles: 10.1.1.10:12300 ==> 172.16.1.2:1230 10.1.1.10:12400 ==> 172.16.1.2:1240 Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 21: VPN - OpenVPN Interoperatibilidad: Compila en GNU/Linux, *BSD, Mac OS X, Solaris. Compila en Windows 2000/XP. Algoritmos usados: Los soportados por OpenSSL. Certificados X509. Autenticación por TLS. Opcional clave simétrica compartida. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 22: VPN - OpenVPN Ventajas: Compresión adaptativa dependiendo del tipo de datos. Ethernet Bridge vía VPN. VPNs en las que ambos nodos tienen IP dinámica (adsl, dhcp, etc.) Tuneliza sobre UDP, TCP opcional. Simples de configurar y utilizar, ideal para ambientes heterogéneos. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 23: VPN - OpenVPN Configuración: /etc/openvpn/casa.conf : /etc/openvpn/servidor.conf : dev tun dev tun remote 172.16.0.1 ifconfig 10.1.0.1 10.1.0.2 ifconfig 10.1.0.2 10.1.0.1 ## route add -net 10.0.1.0 netmask 255.255.255.0 ## route add -net 10.0.0.0 netmask 255.255.255.0 gw $5 gw $5 up ./office.up up ./home.up ## La misma que en el cliente. ## openvpn --genkey --secret servidor.key secret servidor.key secret servidor.key ping 15 ping 15 ping-restart 45 ping-restart 45 ping-timer-rem ping-timer-rem persist-tun persist-tun persist-key persist-key Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 24: Otros - VPN CIPE: Requiere módulo de kernel. Solo funciona con kernel Linux (existe también un porte a Windows). Seguridad cuestionada: http://diswww.mit.edu/bloom-picayune/crypto/14238 pptp: Nativo en Windows NT, soportado en GNU/Linux, Solaris. Completamente inseguro: http://www.schneier.com/pptp.html En vías de extinción. vpnd: Usa SLIP. Sin desarrollo desde 2001. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 25: Otros - Túneles tunnelv: Usa ethertap (deprecated en el kernel). Desde 1999 sin desarrollo. vtun: Inseguro: http://diswww.mit.edu/bloom-picayune/crypto/14238 Desarrollo estancado en 2003. Compila en casi todos os Unix, no compila en Windows Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 26: Túneles, VPNs y firewalls Al hacer un túnel o una VPN, genero una conexión directa entre dos redes que pueden estar protegidas por varias capas de firewalls. Esto es especialmente peligroso en una VPN en la que uno de los nodos es comprometido. Aplicar reglas de firewall a los devices de la VPN. Restringir los túneles para que sean solo entre puertos y clientes autorizados. Mucho cuidado si cada punta de la VPN está en zonas con distinto nivel de seguridad. Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net
Slide 27: ¿Preguntas? Rodolfo Pilas rodolfo@pilas.net Original de: Mario Bonilla <miope@miope.org> Grupo de Usuarios Linux del Uruguay UYLUG http://www.linux.org.uy http://www.pilas.net Rodolfo Pilas rodolfo@pilas.net




Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 1 (more)