Little Snitch para Linux
(obdev.at)- Herramienta para visualizar y controlar las conexiones de red de las aplicaciones, permitiendo ver qué programa se comunica con qué servidor
- En Connections View muestra el tráfico en tiempo real e histórico por aplicación, y permite bloquear conexiones y seguir el uso de datos con un clic
- Con las funciones Blocklists y Rules es posible controlar con precisión el tráfico no deseado por categorías o condiciones detalladas
- Internamente usa eBPF para monitorear conexiones a nivel de kernel y ofrece una interfaz tipo PWA mediante una web UI
- No es una herramienta de seguridad, sino centrada en la privacidad; sirve para bloquear comunicaciones externas de software común, pero tiene limitaciones para defenderse de ataques avanzados
Descripción general
- Little Snitch for Linux es una herramienta para visualizar y controlar en tiempo real las conexiones de red de las aplicaciones
- Permite ver qué aplicación se comunica con qué servidor
- Ofrece funciones para bloquear conexiones no deseadas, registrar tráfico y seguir el uso de datos
- Requiere Linux kernel 6.12 o superior y soporte de kernel BTF
- La web UI está disponible en
http://localhost:3031/y puede instalarse como PWA (Progressive Web App)
Monitoreo de conexiones
- En Connections View se muestra la actividad de red actual e histórica por aplicación
- Muestra elementos bloqueados por reglas y listas de bloqueo, uso de datos e historial de tráfico
- Permite ordenar y filtrar por actividad reciente, volumen de datos y nombre
- Permite bloquear conexiones con un solo clic
- El diagrama de tráfico en la parte inferior visualiza el volumen de datos a lo largo del tiempo
- Si amplías arrastrando una sección específica, solo se muestran filtradas las actividades de ese período
Gestión de listas de bloqueo
- La función Blocklists permite bloquear en bloque categorías de tráfico no deseado
- Descarga automáticamente desde fuentes remotas y las mantiene actualizadas
- Formatos compatibles: una línea por dominio, una línea por hostname, formato
/etc/hosts(IP + hostname), rangos de red CIDR -
No admite formatos basados en comodines, expresiones regulares, glob ni URL
- Por eficiencia, se recomienda usar listas basadas en dominios
- Listas de ejemplo: Hagezi, Peter Lowe, Steven Black, oisd.nl
- El formato
.lsrulesde macOS no es compatible con la versión para Linux
Reglas personalizadas
- La función Rules ofrece un control más fino que las blocklists
- Puede configurarse por proceso, puerto y protocolo específicos
- La lista de reglas puede ordenarse y filtrarse
- Con las reglas se pueden construir políticas detalladas de control de red
Seguridad de acceso
- De forma predeterminada, cualquier proceso que se ejecute localmente puede acceder a la interfaz web
- Existe la posibilidad de que una aplicación maliciosa cambie reglas, modifique listas de bloqueo o desactive filtros
- Para evitarlo, se puede configurar que se requiera autenticación
- La configuración detallada se realiza en la configuración avanzada (Advanced configuration)
Estructura interna
- Usa eBPF para engancharse a la pila de red de Linux
- El programa eBPF monitorea las conexiones salientes y entrega los datos al daemon
- El daemon se encarga de seguir estadísticas, procesar reglas y ofrecer la web UI
- El código fuente del programa eBPF y de la web UI está publicado en GitHub
Configuración avanzada
- La UI básica solo expone las configuraciones principales; la configuración avanzada se maneja con archivos de texto
- Después de los cambios, es necesario reiniciar el daemon
littlesnitch
- Después de los cambios, es necesario reiniciar el daemon
- Ruta de configuración predeterminada:
/var/lib/littlesnitch/config/- No la edites directamente; copia el archivo que quieras modificar a
/var/lib/littlesnitch/overrides/config/y edítalo ahí - La configuración del directorio override siempre tiene prioridad
- No la edites directamente; copia el archivo que quieras modificar a
- Archivos de configuración principales
web_ui.toml: dirección de red, puerto, TLS y autenticación- Si varios usuarios pueden acceder, es necesario activar la autenticación
- Si se expone fuera del loopback, también se necesita TLS
main.toml: configura el comportamiento predeterminado para conexiones que no coinciden con ninguna regla- El valor predeterminado es permitir, pero puede cambiarse a denegar si hace falta
- Una mala configuración puede dejar el sistema inaccesible
executables.toml: reglas de agrupación de ejecutables- Elimina números de versión para mostrar varias versiones de la misma app como una sola
- Define relaciones padre para shells y procesos administradores de apps
- Se mejora continuamente con retroalimentación de la comunidad
- El programa eBPF y la web UI pueden reemplazarse por versiones compiladas por el usuario
- La versión del directorio override tiene prioridad
Limitaciones
- Está diseñado como herramienta de privacidad, no de seguridad
- Es más simple que la versión de macOS y tiene limitaciones funcionales por las restricciones de eBPF
- eBPF tiene límites de almacenamiento y complejidad del programa, por lo que
- si hay mucho tráfico, las tablas de caché pueden desbordarse y el mapeo entre paquetes, procesos y nombres DNS puede volverse incompleto
- usa heurísticas al restaurar el hostname originalmente consultado a partir de una dirección IP
- la versión de macOS realiza un mapeo más preciso mediante inspección profunda de paquetes (DPI)
- Es adecuado para monitorear y bloquear comunicaciones externas de software común, pero no es adecuado para defender el sistema frente a atacantes avanzados
Licencia
- Está compuesto por 3 componentes
- El programa de kernel eBPF y la web UI se publican bajo GNU GPL v2 y están disponibles en GitHub
- El daemon (
littlesnitch --daemon) es propietario (proprietary), pero puede usarse y redistribuirse gratis
1 comentarios
Opiniones de Hacker News
No uso Little Snitch ni Open Snitch, pero me preguntaba si también pueden bloquear solicitudes que abusan de programas permitidos
Por ejemplo, si
suspicious.pyinvoca Firefox para subir datos, quisiera saber si el firewall puede impedirloSi ejecutas un script con
#!/bin/interpreter, la regla se aplica a la ruta del script, pero si lo ejecutas comointerpreter script, funciona de otra maneraEn Open Snitch se puede hacer un emparejamiento más fino según criterios como si el árbol de procesos incluye un proceso de python
Firewalls antiguos de Windows como Outpost o Zone Alarm ofrecían una función de Leak Control para detectar ese tipo de comportamiento
La mayoría de las distribuciones incluyen esta función, pero los usuarios comunes no suelen aprender ni configurar esas reglas
Lo probé en Fedora 43, ocupó todos los núcleos de CPU y falló dejando un log de 50K líneas
Apareció el error
BPF_PROG_LOAD syscall returned Argument list too longEn una VM ARM64 carga, pero no logra identificar procesos
Está investigando problemas de compatibilidad con eBPF y dice que, por recursos limitados, necesitará tiempo
Como Fedora usa Btrfs por defecto, no puede identificar procesos, y eso se corregirá en la versión 1.0.1
Como usuario de Linux, valoro la apertura del código
Estoy bastante satisfecho con la combinación OpenSnitch + OpenSnitch-UI
Me preguntaba qué tan viable es en Linux el modelo de herramientas de pago
La mayoría son gratis, basadas en donaciones o con modelo open-core
Me intriga si Little Snitch publicó gratis la versión para Linux porque piensa que “en Linux no hay dinero”, o si hubo otra razón
A mí también me incomoda un programa cerrado que maneje tráfico de red
En cambio, dono miles de dólares al año a proyectos FOSS
Pero como usuarios así son minoría, es difícil generar ingresos siendo completamente open source
Especialmente con código de alto privilegio como un firewall, cuesta confiar si no es open source
Dice que también tiene curiosidad por ver qué resultado da
Post de blog relacionado: Presentación de Little Snitch for Linux
Antes existía ZoneAlarm para Windows
Siempre me pregunté por qué no había algo así en Linux
Al revisar el código de Direwall, sigue teniendo ese viejo estilo de C
Funcionaba parcheando la librería de sockets; me pregunto si todavía compilará
Dejaba claro que al principio preguntaba mucho, pero después del aprendizaje se volvía silencioso
Por eso se ganó la confianza de la gente, y yo lo recomendaba precisamente por eso
Cuando empezó a llegar software comercial a Linux, surgió el deseo de vigilar la red
Era buena para limitar la ejecución indiscriminada en Windows
Llevo mucho tiempo usando Little Snitch y apruebo manualmente todas las solicitudes de red
Pero me pregunto cuánto se puede confiar en un programa con privilegios al nivel de extensión de kernel
Casi no encuentro información sobre la empresa o sus desarrolladores, y eso me da curiosidad
El componente eBPF está publicado como open source bajo GPLv2 y se puede revisar en el código de GitHub
Aun así, el daemon debe ejecutarse con privilegios de root, así que hay que limitarlo con controles de acceso como SELinux
Dice que, al ser la primera versión, está atendiendo reportes de bugs y que le sorprendió la diversidad del entorno Linux
En macOS no usa extensiones de kernel, sino la Network Extension API
Si lo que buscas es observar la red, también hay sniffers con GUI como Sniffnet
Felicitaciones por el lanzamiento del port para Linux
Como alternativa totalmente open source y basada en terminal, presento RustNet, que yo mismo mantengo
Es una herramienta de monitoreo de paquetes en tiempo real basada en TUI; no es un firewall, pero se autoaísla con Landlock
Tengo curiosidad por la comparación con OpenSnitch
OpenSnitch GitHub
Esto se debe a las limitaciones técnicas de la versión para Linux
Como está basado en eBPF, si hay desbordamiento de caché no puede mapear procesos, y no puede usar inspección profunda de paquetes como en macOS
Está explicado en detalle en la documentación oficial
Texto relacionado
Estoy usando OpenSnitch con satisfacción
Pero me gustaría que tuviera un sistema de plugins para analizar en conjunto el comportamiento del usuario y las conexiones de red, y mostrar solo las conexiones inesperadas como alertas
También sería útil tener un wrapper de auto-permisos basado en CLI en lugar de ventanas emergentes