Tecnologías libres para túneles y VPNs

Embed Size (px)

DESCRIPTION

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.

Citation preview

  • 1. Tecnologas Libres para Tneles y VPNs. 5 oct 2007 CafeConf 6 UADE Buenos Aires, Argentina jun 2006 II EMSSOL Universidad Peruana Unin, Juliaca, Per 26 may 2006 - 1ra. Semana de la Ciencia y la Tecnologa - Universidad Catlica del Uruguay

2. Agenda

  • Introduccin:
    • Descripcin de la situacin
    • Conceptos generales encriptacin y autenticacin
    • Conceptos generales tneles
    • Conceptos generales VPNs
  • Tneles: ssh, stunnel, zebedee
  • VPNs: OpenVPN
  • Otros: pptp, cipe,vpnd, vtun, tunnelv
  • Tneles, VPNs y Firewalls

3. Introduccin

  • Por qu encriptar:
  • Confidencialidad, seguridad (passwords).
  • No siempre tengo control de la conexin fsica(wireless, internet, etc.)
  • No confiar en el canal fsico:
    • sniffers
    • equipos comprometidos
    • tempestechelon

4. Introduccin

  • Por qu autenticar:
  • No siempre los protocolos de aplicacin autentican cliente y servidor de forma confiable (nfs, aplicaciones legadas).
  • Atacantes pueden personificar el servidor y/o el cliente.
  • Ataques comprometiendo elementos que no estn bajo mi control (dns, rutas en Internet, etc.)

5. Introduccin

  • Encripcin y autenticacin del trfico:
  • Dos problemas diferentes:
    • Para una aplicacin especfica,
      • Lo ideal es que la aplicacin soporte encripcin en forma nativa (smtp/tls, imaps, pops, ssh, https)
      • Cuando no soporta encripcin: tnel o VPN
    • Para todo el trfico de la red: VPN

6. Introduccin - Encripcin

  • Encripcin por clave simtrica:
  • 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 nmero de participantes (((n-1) * n) / 2)
  • Ejemplos: Blowfish, AES, RC5, 3DES

7. Introduccin - Encripcin

  • Encripcin por clave pblica:
  • Dos claves relacionadas entre si, una pblica, la otra privada.
  • La clave pblica se distribuye libremente (seguridad cero).
  • La seguridad depende de la clave privada, que debe ser conocida solo por el dueo.(seguridad relativa + frase acceso)
  • Alto costo en CPU.
  • Escala muy bien con el nmero de participantes (n+1).
  • Ejemplos: dsa, rsa

8. Introduccin - Encripcin

  • Diffie-Hellman:
  • Protocolo para intercambio de claves.
  • Combina las ventajas de la criptografa de clave pblica con la eficiencia en CPU de clave simtrica.
  • Permite generar dinmicamente sobre una conexin insegura una clave simtrica compartida por las dos partes.
  • El resto de la comunicacin se realiza encriptando con estas claves simtricas.
  • Usado en: GNUpg, TLS, IKE, etc.

9. Introduccin - Tneles

  • Para encriptar el trfico de aplicaciones individuales.
  • El tnel encripta el trfico para un protocolo y puerto determinado.
  • No para aplicaciones que generan conexiones dinmicamente(ej. ftp, voip)
  • Como ventaja adicional, algunas implementaciones permiten comprimir el trfico.
  • La conveniencia de usar compresin depende de la relacin 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 Tnel:10.1.1.10:1234 ==> 172.16.1.2:25 (va 172.16.1.1) telnet 10.1.1.10 1234 10. Introduccin - VPNs

  • Red Privada Virtual, simula una conexin segura, a travs de una red insegura (Internet, etc.).
  • La VPN es un dispositivo de red ms, deben establecerse rutas, etc.
  • Comnmente la VPN es en capa 3, tambin es posible hacer VPNs en capa 2.
  • Generalmente es posible comprimir el trfico.

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. Introduccin - IPsec

  • Estndar opcional en IPv4, obligatorio en IPv6.
  • Usando IKE y encripcin oportunista es posible encriptar en forma transparente nodos que no se conocen previamente.
  • Es una modificacin del stack IP, requiere modificacin del kernel.
  • Cdigo no portable, cada sistema operativo tiene su propia implementacin.
  • Complejo de configurar en ambientes heterogneos.
  • El protocolo es complejo: http://www.schneier.com/paper-ipsec.pdf

12. Tneles - ssh

  • Interoperatibilidad:
  • Instalado en la mayora de los equipos Unix.
  • Ideal para hacer tneles para resolver problemas puntuales.
  • Soportado bajo Windows con cygwin (hoy est portado)
  • Algoritmos usados:
  • Clave pblica: DSA, RSA (recomendado)
  • Clave simtrica: 3DES, Blowfish, CAST128, Arcfour, AES

13. Tneles - ssh

  • Ventajas:
  • Tuneliza en forma nativa y transparente conexiones X11.
  • Comprime con gzip.
  • Inconvenientes:
  • Su objetivo principal no es hacer tneles.
  • Cuidado al configurar!. No dar privilegios al usuario que crea el tnel.
  • El cliente del tnel no corre como demonio, es necesario hacer scripts para verificar que no muera, iniciarlo automticamente, etc.
  • No soporta UDP.
  • Tuneliza sobre TCP.

14. Tneles - ssh

  • Configuracin:
  • Especificar el tnel en lnea de comandos (remoto/local?).
  • Para tneles que deban ser creados en forma automtica usar clave pblica.
  • Restringir privilegios de la clave pblica en el servidor.

WAN/ LAN 172.16.1.2:25 10.1.1.10:1234 172.16.1.1 Tnel:10.1.1.10:1234 ==> 172.16.1.2:25 (va 172.16.1.1) $ ssh -L 1234:172.16.1.2:25 [email protected] $ telnet 10.1.1.10 1234 15. Tneles - stunnel

  • Interoperatibilidad:
  • Depende solo de openssl y tcpwrappers.
  • Compila en todos los unixes, freebsd, gnu/linux.
  • Compila bajo Win NT/2000/XP.
  • Algoritmos usados:
  • AutenticacinX 509 , y todos los algoritmos soportados por openssl.

16. Tneles - stunnel

  • Ventajas:
  • Permite dar soporte SSL a servidores que no tienen SSL nativamente (imaps, https, etc.)
  • Una sola instancia del demonio puede atender varios tneles.
  • Soporta chroot en forma nativa.
  • Inconvenientes:
  • Un thread por conexin, usar solo con kernel 2.6
  • No soporta UDP.
  • Tuneliza sobre TCP (usar opcin TCP_NODELAY=1).

17. Tneles - stunnel Configuracin: WAN/ LAN 10.1.1.10 172.16.1.1:1234 Tnel: 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. Tneles - zebedee

  • Interoperatibilidad:
  • Compila en todos os Unix, *BSD, GNU/Linux.
  • Compila bajo Win NT/2000/XP.
  • Algoritmos usados:
  • Z libB lowfishD iffie-Hellman.
  • Autenticacin mediante clave pblica asociada a Diffie-Hellman.

19. Tneles - zebedee

  • Ventajas:
  • Configuracin simple.
  • Suporta UDP.
  • Permite compresin 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. Tneles - zebedee / usr/local/etc/zebedee/zebedee.conf detached trueserver falseipmode tcplistenip 127.0.0.1 logfile /var/log/zebedee-client serverhost172.16.1.1 tunnel12300,12400:172.16.1.1:1230,1240 compression zlib:9keylength 256 maxbufsize 16383 keygenlevel 2checkidfile'/usr/local/zebedee-client_server-id.id' / usr/local/etc/zebedee/zebedee.conf detached trueserver trueipmode tcplogfile /var/log/zebedee-server compression zlib:9keylength 256 keygenlevel 2include ' /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 Tneles: 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.
  • Autenticacin por TLS.
  • Opcional clave simtrica compartida.

22. VPN - OpenVPN

  • Ventajas:
  • Compresin adaptativa dependiendo del tipo de datos.
  • Ethernet Bridge va VPN.
  • VPNs en las que ambos nodos tienen IP dinmica (adsl, dhcp, etc.)
  • Tuneliza sobre UDP, TCP opcional.
  • Simples de configurar y utilizar, ideal para ambientes heterogneos.

23. VPN - OpenVPN Configuracin: /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.keysecret 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 mdulo de kernel.
  • Solo funciona con kernel Linux (existe tambin 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 vas de extincin.
  • vpnd:
  • Usa SLIP.
  • Sin desarrollo desde 2001.

25. Otros - Tneles

  • 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. Tneles, VPNs y firewalls

  • Al hacer un tnel o una VPN, genero una conexin 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 tneles 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 Preguntas?