¿Cómo debo usar VPN en una Mac para evitar compromisos antes de que se inicie la VPN?

11

Como los usuarios más experimentados habrán escuchado, usar una Mac en un Wi-Fi público no confiable puede ser potencialmente dañino. Una herramienta como Firesheep 1 ha hecho que sea muy fácil interceptar la comunicación sin cifrar.

Usar una VPN de túnel completo para cifrar toda la comunicación se menciona con tanta frecuencia como una solución mágica para escuchar a escondidas, pero por supuesto no es tan fácil:

  • Dependiendo del protocolo y la configuración de la conexión VPN, la conexión puede caerse más fácilmente. (por ejemplo, TLS vs UDP)
  • La conexión VPN no se establece instantáneamente cuando se conecta a una red pública.

Creo que los dos últimos puntos importan mucho porque cada vez que la configuración de su red cambia, las diversas aplicaciones hablan inmediatamente con sus servidores; supongo que eso es lo configdque les informa, ¿verdad?

es decir, antes de que se establezca el túnel VPN, la mayoría de los procesos (en ejecución) que requieren Internet se comunicarán.

Veo dos componentes para ser un buen usuario de VPN:

  1. Asegurarse de que las cosas no se envíen antes de que se establezca.
  2. Asegurarse de que las cosas no se envíen más tarde si la VPN falla .

¿Cómo puedo usar VPN en una Mac en una red pública para restringir el tráfico no cifrado antes de que se inicie la VPN?

Gentmatt
fuente
Es agradable volver a visitar esto: la pregunta anterior a la que me vinculé parece estar más centrada en cómo saber cuándo una VPN deja de conectarse que en cómo configurar las cosas para que comiencen de forma segura, para que podamos beneficiarnos de varias preguntas puntuales sobre prácticas para aumentar la seguridad al usar un VPN
bmike

Respuestas:

2

Dejemos de lado cualquier solución en la que traiga una segunda pieza de equipo de red al problema. También dejemos que el problema de detener el tráfico después de que la VPN falle con esta pregunta relacionada, pero diferente .

Considero este problema como una solución centrada en el usuario y no como algo que se logra fácilmente modificando el comportamiento de OS X.

Configure dos cuentas en su Mac (ninguna de las dos debe ser una cuenta de administrador, pero si es así, no necesitará una tercera cuenta para cambiar la configuración del sistema).

  1. Una cuenta de shell que existe para ejecutar nada y solo establecer la conexión VPN.
  2. Una cuenta principal que ejecutará los programas que desea garantizar solo tendrá acceso a la red una vez que se haya protegido adecuadamente con una VPN.

Entonces, con el cambio rápido de usuario habilitado, puede cerrar sesión en la cuenta principal. Esto asegura que ningún programa o proceso de ese usuario continuará ejecutándose en segundo plano. La mayoría de las aplicaciones de OS X se comportan bien y suspenden el acceso a la red cuando no tienen una ventana activa en la pantalla, pero tendrías que monitorear y probar esto para siempre para asegurarte de que no ocurra nada: cerrar la sesión es más fácil de mantener.

Ahora, también podría reemplazar la "cuenta" anterior con el sistema operativo y ejecutar un sistema de virtualización como Fusion (o Parallels o cualquier otro) y solo iniciar el sistema operativo invitado una vez que el sistema operativo host haya asegurado todo en una VPN. Dependiendo del software de VM que elija, también puede tener control sobre la red y puede activar y desactivar el acceso incluso cuando el SO huésped (o SO) se está ejecutando. Básicamente, esto es simular el hardware adicional que inicialmente dije que no consideraría.

Espero que esto muestre una forma en la que podría estar más seguro mientras viaja y usa una red en la que no confía, mientras minimiza el riesgo que esto siempre conllevará. Si alguien más posee la red: posee DNS, puede registrar paquetes, puede intentar ataques de intermediario (MITM) e inspeccionar todos sus paquetes a fondo para tratar de determinar qué está fluyendo dentro del túnel VPN.

bmike
fuente
1
Esta es una respuesta bastante razonable. Usar una VM en una segunda cuenta de usuario es fácil de configurar. Si bien el sistema operativo aún puede permitir el tráfico de red no seguro, no importa si se encuentra en el entorno restringido de una cuenta de usuario redundante.
gentmatt
Desearía que hubiera un botón fácil, pero como puede ver, no es trivial controlar el tráfico previo o posterior en una capa del núcleo ya que OS X está diseñado para usar cualquier ruta que esté activa. El sistema operativo no está diseñado para apagar todo, pero el equipo de red sí.
bmike
3

Aquí hay un enfoque totalmente fuera de la GUI de MacOS X. Por lo tanto, este enfoque del problema no interferirá con ninguna configuración de red o VPN.

Digamos que quiero usar una VPN IPSEC (basada en el uso de 500 / udp == isakmp & 50 / ip == esp).

Cree un ipfwarchivo de configuración que solo permita que los protocolos necesarios creen la VPN:

/usr/bin/sudo cat <<____eof >/etc/ipfw.vpn.rules
# VPN trafic contention
#
# DHCP
add 00100 permit udp from any to any src-port bootpc dst-port bootps
# DNS
add 01000 permit udp from me to any dst-port domain
add 01010 permit udp from any to me dst-port domain
# isakmp
add 01050 permit udp from me to any dst-port isakmp
add 01060 permit udp from any to me dst-port isakmp
# esp
add 01100 permit esp from me to any
add 01110 permit esp from any to me
# all other ip go to the central black hole
add 20000 deny ip from any to any
____eof

Verifique que su sintaxis esté bien:

/usr/bin/sudo /sbin/ipfw -n /etc/ipfw.vpn.rules

Instálalo en el núcleo:

/usr/bin/sudo /sbin/ipfw /etc/ipfw.vpn.rules

Verifique que su sistema operativo pueda reiniciarse y obtenga su dirección IP a través del DHCP habitual. Compruebe que la mayoría de los protocolos IP están bloqueados:

ping www.google.com

Por supuesto, si desea utilizar una VPN sobre SSL, tendrá que adaptar este archivo de configuración (isakmp + esp → https).

dan
fuente