Your SlideShare is downloading. ×
Tecnologías libres para túneles y VPNs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Tecnologías libres para túneles y VPNs

4,696
views

Published on

Pagina: http://www.pilas.net/20060531/tecnologias-libres-para-tuneles-y-vpns/ …

Pagina: http://www.pilas.net/20060531/tecnologias-libres-para-tuneles-y-vpns/

Cuando pensamos en seguridad en la red generalmente se nos ocurren dos alternativas: Utilizar protocolos de aplicación que en forma nativa provean encripción y autenticación (p.e. https, imaps, etc), o implementar una solución “completa” mediante IPsec. Pero que sucede cuando estamos obligados a trabajar en situaciones donde IPsec no es viable por limitaciones de los SOs, o por su dificultad de implementación y mantenimiento, y a la vez precisamos asegurar protocolos de aplicación que no soportan encripción y autenticación en forma nativa.

Existen muchas soluciones en software libre orientadas a crear túneles y VPNs, y no siempre es fácil elegir la más indicada para cada caso. Dada la cantidad de soluciones existentes, es necesario emplear mucho tiempo en comprender el funcionamiento de cada una y hacer pruebas de laboratorio para determinar la escalabilidad, facilidad de uso y necesidades de administración de cada una.

En la conferencia, se verán distintos modos de crear túneles y VPNs, discutiendo las ventajas de cada implementación particular y mostrando ejemplos de configuración. El objetivo de la conferencia es que los participantes obtengan conocimientos generales sobre estas tecnologías de modo que sean capaces de elegir las mejores soluciones para cada problema.

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,696
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
319
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 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
  • 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
  • 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.)
  • 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
  • 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
  • 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
  • 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.
  • 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.
    WAN/ LAN 172.16.1.2:25 10.1.1.1 10.1.1.10:1234 172.16.1.1 Túnel: 10.1.1.10:1234 ==> 172.16.1.2:25 (vía 172.16.1.1) telnet 10.1.1.10 1234
  • 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.
    VPN es GW a: 172.16.1.0/24 WAN/ LAN 172.16.1.3 10.1.1.3 10.1.1.1 VPN es GW a: 10.1.1.0/24 172.16.1.1 10.1.1.2 172.16.1.2
  • 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
  • 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
  • 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.
  • 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.
    WAN/ LAN 172.16.1.2:25 10.1.1.10:1234 172.16.1.1 Túnel: 10.1.1.10:1234 ==> 172.16.1.2:25 (vía 172.16.1.1) $ ssh -L 1234:172.16.1.2:25 user@172.16.1.1 $ telnet 10.1.1.10 1234
  • 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.
  • 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).
  • 17. Túneles - stunnel Configuración: WAN/ LAN 10.1.1.10 172.16.1.1:1234 Túnel: 10.1.1.10:1234 ==> 172.16.1.2:1234 /etc/stunnel/stunnel.conf: socket = r:TCP_NODELAY=1 pid = /var/run/stunnel4/stunnel.pid client = yes [1234] accept = 127.0.0.1:1234 connect = 172.16.1.1:5678 /etc/stunnel/stunnel.conf: socket = l:TCP_NODELAY=1 pid = /var/run/stunnel4/stunnel.pid cert = /etc/stunnel/stunnel.pem [5678] accept = 5678 connect = 127.0.0.1:1234 :5678 127.0.0.1:1234
  • 18. Túneles - zebedee
    • Interoperatibilidad:
    • Compila en todos os Unix, *BSD, GNU/Linux.
    • Compila bajo Win NT/2000/XP.
    • Algoritmos usados:
    • Z lib B lowfish D iffie-Hellman.
    • Autenticación mediante clave pública asociada a Diffie-Hellman.
  • 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).
  • 20. Túneles - zebedee / usr/local/etc/zebedee/zebedee.conf detached true server false ipmode tcp listenip 127.0.0.1 logfile /var/log/zebedee-client serverhost 172.16.1.1 tunnel 12300,12400:172.16.1.1:1230,1240 compression zlib:9 keylength 256 maxbufsize 16383 keygenlevel 2 checkidfile '/usr/local/zebedee-client_server-id.id' / usr/local/etc/zebedee/zebedee.conf detached true server true ipmode tcp logfile /var/log/zebedee-server compression zlib:9 keylength 256 keygenlevel 2 include ' /usr/local/zebedee-server.key' redirect none target localhost:1230/tcp,1240/tcp WAN/ LAN 10.1.1.10 172.16.1.1:1230 172.16.1.1:1240 Túneles: 10.1.1.10:12300 ==> 172.16.1.2:1230 10.1.1.10:12400 ==> 172.16.1.2:1240 127.0.0.1:12300 127.0.0.1:12400 172.16.1.1
  • 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.
  • 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.
  • 23. VPN - OpenVPN Configuración: /etc/openvpn/casa.conf : dev tun remote 172.16.0.1 ifconfig 10.1.0.2 10.1.0.1 ## route add -net 10.0.0.0 netmask 255.255.255.0 gw $5 up ./home.up ## openvpn --genkey --secret servidor.key secret servidor.key ping 15 ping-restart 45 ping-timer-rem persist-tun persist-key /etc/openvpn/servidor.conf : dev tun ifconfig 10.1.0.1 10.1.0.2 ## route add -net 10.0.1.0 netmask 255.255.255.0 gw $5 up ./office.up ## La misma que en el cliente. secret servidor.key ping 15 ping-restart 45 ping-timer-rem persist-tun persist-key
  • 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.
  • 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
  • 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.
  • 27. Rodolfo Pilas [email_address] Original de: Mario Bonilla <miope@miope.org> ¿Preguntas?