2 puntos por GN⁺ 20 일 전 | 1 comentarios | Compartir por WhatsApp
  • 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 .lsrules de 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
  • 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
  • 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

 
GN⁺ 20 일 전
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.py invoca Firefox para subir datos, quisiera saber si el firewall puede impedirlo

    • Little Snitch for Linux evalúa las reglas considerando el proceso y el namespace de su proceso padre
      Si ejecutas un script con #!/bin/interpreter, la regla se aplica a la ruta del script, pero si lo ejecutas como interpreter script, funciona de otra manera
    • Con reglas simples no se bloquea
      En Open Snitch se puede hacer un emparejamiento más fino según criterios como si el árbol de procesos incluye un proceso de python
    • Si además consideras carga de librerías o manipulación de memoria entre procesos (por ejemplo, OpenProcess, WriteProcessMemory, CreateRemoteThread), se vuelve mucho más complejo
      Firewalls antiguos de Windows como Outpost o Zone Alarm ofrecían una función de Leak Control para detectar ese tipo de comportamiento
    • Si usas las políticas MAC de SELinux, puedes limitar a qué archivos y puertos puede acceder cada proceso
      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 long

    • El desarrollador dijo que no lo había probado en Fedora
      En una VM ARM64 carga, pero no logra identificar procesos
      Está investigando problemas de compatibilidad con eBPF y dice que, por recursos limitados, necesitará tiempo
    • Ya existe un issue en GitHub
    • Según la página oficial de descargas, no funciona con el sistema de archivos Btrfs
      Como Fedora usa Btrfs por defecto, no puede identificar procesos, y eso se corregirá en la versión 1.0.1
    • A mí me pasó lo mismo. Solo usa la mitad de la CPU, pero la interfaz web no funciona
    • Esta es precisamente la experiencia Linux promedio. Lo de que 2026 será el año del escritorio Linux ya suena a chiste
  • 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

    • La comunidad Linux tiene una gran desconfianza hacia el software cerrado
      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
    • Como OpenSnitch ya existe y es gratis, un reemplazo de pago tiene poco poder de convencimiento
      Especialmente con código de alto privilegio como un firewall, cuesta confiar si no es open source
    • El desarrollador de Little Snitch for Linux dijo: “somos un pequeño equipo independiente, no inversionistas, y esta decisión fue una elección personal”
      Dice que también tiene curiosidad por ver qué resultado da
    • La motivación del desarrollador está bien explicada en la entrada oficial del blog
  • 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

    • Hace tiempo hice yo mismo un programa parecido a ZoneAlarm para AmigaOS
      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á
    • La fortaleza de ZoneAlarm no era solo técnica, sino también su educación al usuario y diseño de UX
      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
    • En esa época la mayoría era software GNU, así que casi no había spyware
      Cuando empezó a llegar software comercial a Linux, surgió el deseo de vigilar la red
    • Todavía recuerdo haber usado ZoneAlarm a inicios de los 2000
    • También recuerdo Kerio Personal Firewall. Después me pasé a ZA o Comodo, y me impresionó su función de ejecución aislada
      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

    • Un desarrollador de Little Snitch for Linux respondió directamente
      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
    • Esta empresa es una desarrolladora independiente para Mac con más de 20 años de actividad, y Little Snitch es un producto querido desde hace mucho tiempo
    • Estoy co-desarrollando un firewall FOSS para Android inspirado en Little Snitch/OpenSnitch
      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

    • Se ve interesante, lo probaré más adelante
  • Tengo curiosidad por la comparación con OpenSnitch
    OpenSnitch GitHub

    • Probé Little Snitch, pero casi no hace resolución de IP a dominio y también falla al identificar procesos
      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
    • Yo también instalé OpenSnitch, pero ahora lo tengo desactivado. Probablemente por fatiga
    • Según el blog del desarrollador, las herramientas existentes no ofrecían la función de “ver de un vistazo las conexiones por proceso y bloquearlas con un clic”, así que decidió hacerlo él mismo
      Texto relacionado
    • OpenSnitch es completamente open source y no tiene suscripción. Así es como debería ser el software
  • 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