Cómo bloquear el acceso a internet de una app en Mac
Formas prácticas de bloquear el acceso a internet de una app en macOS, sin romper el resto del sistema.
- macOS
- Security
- Privacy
- Tutorial
Una app que compraste en 2022 sigue llamando a casa en cada lanzamiento. Un juego quiere descargar una actualización de 3 GB mientras estás en un hotspot. Una utilidad de escaneo insiste en buscar actualizaciones una y otra vez. Quieres bloquear el acceso a internet de una app en Mac por completo, sin desinstalarla, y sin romper el resto de tu sistema.
La buena noticia: macOS te da varias maneras de bloquear el acceso a internet de una app en Mac que los usuarios realmente necesitan. La mala noticia: cada una tiene un compromiso distinto, y la elección equivocada o fallará silenciosamente o romperá cosas que no querías romper. Aquí va el guion práctico.
Las cuatro maneras de bloquear el acceso a internet de una app en Mac que deberías conocer
En orden aproximado de cómo la mayoría debería elegir:
- Little Snitch — firewall saliente hecho a propósito. Reglas por app, avisos en la primera conexión, interfaz para editar.
- LuLu — firewall saliente gratuito y open-source de Objective-See. Menos pulido que Little Snitch, idea principal similar.
- Firewall de Aplicaciones macOS + un filtro de red — el firewall integrado solo maneja entradas. Para bloqueo saliente, necesitas una extensión de red de terceros o una regla
pf. - Bloqueo en
/etc/hosts— tosco, parcial, pero útil para endpoints de telemetría conocidos.
Para una sola app que quieras totalmente offline, las opciones 1 o 2 son la respuesta correcta. Las otras son situacionales.
Opción 1: Little Snitch (el estándar)
Little Snitch instala una Network Extension que intercepta conexiones salientes. Cuando una app que no has visto antes intenta llamar a casa, Little Snitch muestra un aviso: permitir una vez, permitir siempre, denegar una vez, denegar siempre, con alcances opcionales (solo este hostname, cualquier puerto, etc.).
Para bloquear una app por completo:
- Abre Little Snitch → Network Monitor → Reglas.
- Busca el nombre de la app.
- O elimina sus reglas existentes y confía en un aviso por defecto-denegar la próxima vez, o añade un explícito "Denegar — cualquier proceso desde /Applications/TuApp.app — cualquier conexión".
- Sal y relanza la app objetivo.
Little Snitch es software de pago con una demo gratuita (3 horas por sesión). Para una herramienta en la que confiarás a nivel de kernel, pagar una vez es el movimiento correcto.
Alcances de regla que importan
- Ruta del proceso — Little Snitch usa la ruta en disco como clave, así que actualizar una app vía Sparkle puede volver a pedir aviso. Reaprueba o pon la regla a "cualquier versión".
- Procesos auxiliares — apps como Slack, Discord y Chrome tienen binarios auxiliares que necesitan sus propias reglas. Si permites el padre y olvidas el auxiliar, el tráfico puede colarse. Un monitor como ova agrupa los auxiliares bajo el padre para que puedas ver cuándo pasa esto.
Opción 2: LuLu (gratis)
LuLu hace lo que hace Little Snitch, con un conjunto de funciones más pequeño. Mismo modelo de Network Extension, mismo flujo de aviso-y-regla. No mostrará gráficos de tráfico ni hará filtrado basado en hostname tan limpiamente, pero para un caso de uso "bloquear esta app" es perfectamente adecuado.
Descárgalo de objective-see.org, arrastra a Aplicaciones, concede el permiso de Network Extension, y añade una regla de denegar para el binario que quieres silenciar.
Opción 3: firewall integrado de macOS (limitado)
El Firewall de Aplicaciones de macOS vive en Ajustes del Sistema → Red → Firewall. Bloquea conexiones entrantes. No bloquea las salientes. Así que para la pregunta "detener que mi app hable con internet", el firewall integrado no es la respuesta.
Si también quieres bloquear entrantes —por ejemplo, una app corre un servidor local que no quieres expuesto— activa el firewall, haz clic en Opciones, y añade la app a la lista de denegar.
Opción 4: bloqueos en /etc/hosts (parcial)
Para endpoints específicos de telemetría, puedes mandar el hostname al agujero negro:
sudo nano /etc/hostsAñade:
0.0.0.0 telemetry.example.com
0.0.0.0 analytics.example.comGuarda con Ctrl-O, sal con Ctrl-X. Luego vacía el DNS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponderEsto solo funciona para apps que realmente consultan el DNS del sistema. Las apps que codifican IPs duro o usan su propio DNS sortean /etc/hosts por completo. Los navegadores usando DoH lo sortean. Así que trata /etc/hosts como un rifle de francotirador para endpoints conocidos, no un bloqueo de propósito general.
El paso de verificación que todos se saltan
Configurar el bloqueo es la mitad del trabajo. La otra mitad es confirmar que funciona. Aquí es donde una herramienta de monitorización separada se gana su sitio.
El patrón:
- Pon el bloqueo en Little Snitch / LuLu / archivo hosts.
- Abre ova en tu barra de menú. Muestrea el tráfico por app aproximadamente a 1 Hz.
- Lanza la app objetivo y úsala. Haz clic. Dispara la acción que solía llamar a casa: buscar actualizaciones, login, sincronización.
- Vigila la fila por app. Si se queda a 0 KB/s arriba y abajo, el bloqueo aguanta. Si ves cualquier saliente, tienes una fuga.
Dos razones por las que pasan las fugas:
- Proceso auxiliar no cubierto. La app padre está denegada, pero
Slack HelperoUpdater.apptiene su propia regla que sigue siendo permitir. - Conexión cacheada antes del bloqueo. La app abrió una conexión de larga duración antes de que la regla existiera. Sal de la app por completo (clic derecho → Salir, o
Cmd-Q) y relánzala.
Casos especiales
Bloquear una app manteniendo acceso LAN
Algunas apps necesitan hablar con tu altavoz AirPlay o impresora local pero no deberían alcanzar internet. En Little Snitch, pon "denegar cualquiera" luego añade una excepción de permitir para LAN y Multicast/Broadcast. El permiso de Red Local de macOS también controla esto: revisa Ajustes del Sistema → Privacidad y Seguridad → Red Local y revócalo si la app no necesita LAN para nada.
Bloquear una app en Wi-Fi pero permitir en ethernet
Little Snitch soporta perfiles. Crea uno para "Cafetería" y uno para "Casa", asóciales reglas distintas, alterna desde la barra de menú.
Bloquear solo actualizaciones, permitir todo lo demás
La mayoría de las apps separan el tráfico de actualización del tráfico de funciones. Encuentra el binario actualizador (a menudo dentro de TuApp.app/Contents/Library/LoginItems/ o /Library/LaunchDaemons/), y añade una regla de denegar para esa ruta específica. Ejecuta la app, observa ova: las funciones aún deberían funcionar, las actualizaciones deberían fallar con un error de red en el log.
Verifica que tus bloqueos de firewall realmente aguantan
ova muestra el tráfico en vivo por app para que puedas confirmar que una regla de Little Snitch hizo su trabajo: local, firmado, ~3 MB.
Un ejemplo trabajado: silenciar una utilidad parlanchina
Digamos que compraste una utilidad de capturas hace tres años. Licencia de por vida, solía estar tranquila, ahora llama a casa en cada lanzamiento y no confías en los nuevos dueños.
- Instala Little Snitch. El trial está bien para la primera hora para ver cómo se sienten las reglas.
- Lanza la utilidad de capturas. Little Snitch avisa: "Snipster quiere conectar a api.snipster.app". Haz clic en Denegar → Para siempre → cualquier puerto.
- Usa la app durante una semana. Si las funciones funcionan, la denegación aguantó. Si una función se rompe, mira a qué intentó llamar —estará en el log de Little Snitch— y decide si permitir el endpoint específico.
- Ejecuta ova en paralelo. Confirma que la tasa por app se queda a 0 KB/s durante el uso normal.
Este patrón funciona para cualquier app que no necesite realmente internet para hacer su trabajo localmente.
Lo que los bloqueos no arreglarán
Algunas cosas para ser honesto:
- Notificaciones push vía APNs. macOS enruta Apple Push a través de
apsd, no la app. Bloquear la app no bloquea sus notificaciones. Desactiva las notificaciones en Ajustes del Sistema en su lugar. - Extensiones de sistema y daemons. Algunas apps instalan daemons de fondo bajo
/Library/LaunchDaemons/. Matar la app no mata el daemon. Usa el desinstalador oficial de la app, o lista los daemons víalaunchctl list | grep -i nombreapp. - Apps que codifican IPs duras. Raro, pero existe. Bloquea por IP en lugar de hostname en Little Snitch.
- Apps de App Store en sandbox usando servicios XPC. A veces la app visible al usuario está silenciosa y un auxiliar XPC hace el habla. Misma solución que para procesos auxiliares: encuéntralo en el árbol de procesos de Little Snitch, añade una regla.
Por qué "monitor + firewall" es la configuración duradera
Puedes correr solo un firewall. Puedes correr solo un monitor. La mayoría de los usuarios experimentados de Mac corren ambos:
- El firewall (Little Snitch / LuLu) pone política y bloquea en el kernel.
- El monitor (ova o similar) muestra la realidad: qué sigue hablando, cuánto, cuándo.
Los dos responden a preguntas distintas. "¿Funcionó mi regla?" es una pregunta de monitor. "¿Qué app nueva está intentando llamar a casa?" es una pregunta de aviso de firewall. Juntos te dan una imagen completa.
Para terminar
Para bloquear el acceso a internet de una app en Mac de extremo a extremo: usa Little Snitch o LuLu para el bloqueo, el Firewall de Aplicaciones de macOS solo si también necesitas entradas, y /etc/hosts para endpoints conocidos cuando el bloqueo basado en DNS basta. Luego verifica con un monitor, porque una regla que no confirmaste es una regla que en realidad no tienes.
La mayoría de las apps funcionan bien offline una vez cortas la red. Las que no, lo descubrirás rápido, y habrás aprendido algo útil sobre qué funciones eran realmente locales en primer lugar.