Transcript
  • 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?


Top Related