Tecnologías libres para túneles y VPNs
-
Upload
rodolfo-pilas -
Category
Technology
-
view
4.761 -
download
0
description
Transcript of Tecnologías libres para túneles y VPNs
- 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?