2 Punkte von GN⁺ 20 일 전 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Tool, mit dem sich Netzwerkverbindungen von Anwendungen visualisieren und steuern lassen; so ist erkennbar, welches Programm mit welchem Server kommuniziert
  • In der Connections View werden Echtzeit- und frühere Traffic-Daten nach App angezeigt; mit einem Klick lassen sich Verbindungen blockieren und Datennutzung nachverfolgen
  • Mit den Funktionen Blocklists und Rules lässt sich unerwünschter Traffic nach Kategorien oder anhand detaillierter Bedingungen präzise steuern
  • Intern wird eBPF verwendet, um Verbindungen auf Kernel-Ebene zu überwachen; über ein Web-UI wird eine PWA-artige Oberfläche bereitgestellt
  • Kein Security-Tool, sondern ein auf Privatsphäre fokussiertes Tool; zum Blockieren externer Kommunikation gewöhnlicher Software gut geeignet, für die Abwehr fortgeschrittener Angriffe jedoch nur eingeschränkt

Überblick

  • Little Snitch for Linux ist ein Tool, mit dem sich Netzwerkverbindungen von Anwendungen in Echtzeit visualisieren und steuern lassen
    • Es ist erkennbar, welche Anwendung mit welchem Server kommuniziert
    • Bietet Funktionen zum Blockieren unerwünschter Verbindungen, zum Protokollieren von Traffic und zum Nachverfolgen der Datennutzung
  • Erfordert Linux-Kernel 6.12 oder neuer sowie BTF-Kernel-Unterstützung
  • Das Web-UI ist unter http://localhost:3031/ erreichbar und kann als PWA (Progressive Web App) installiert werden

Verbindungsüberwachung

  • In der Connections View werden aktuelle und frühere Netzwerkaktivitäten nach Anwendungen angezeigt
    • Es werden durch Regeln und Blocklisten blockierte Einträge, Datennutzung und Traffic-Verlauf angezeigt
    • Sortierung und Filterung nach letzter Aktivität, Datenmenge und Name möglich
    • Verbindungen lassen sich mit einem Klick blockieren
  • Das Traffic-Diagramm am unteren Rand visualisiert die Datenmenge im Zeitverlauf
    • Wird ein bestimmter Bereich zum Vergrößern gezogen, werden nur Aktivitäten aus diesem Zeitraum gefiltert angezeigt

Verwaltung von Blocklisten

  • Mit der Funktion Blocklists lassen sich unerwünschte Traffic-Kategorien gesammelt blockieren
    • Automatischer Download aus entfernten Quellen und laufende Aktualisierung
    • Unterstützte Formate: eine Zeile pro Domain, eine Zeile pro Hostname, /etc/hosts-Format (IP + Hostname), CIDR-Netzwerkbereiche
    • Wildcards, reguläre Ausdrücke, glob, und URL-basierte Formate werden nicht unterstützt

      • Aus Effizienzgründen werden domainbasierte Listen empfohlen
      • Beispiel-Listen: Hagezi, Peter Lowe, Steven Black, oisd.nl
      • Das macOS-Format .lsrules ist mit der Linux-Version nicht kompatibel

Benutzerdefinierte Regeln

  • Die Funktion Rules bietet eine feinere Steuerung als Blocklisten
    • Einstellungen sind auf Ebene bestimmter Prozesse, Ports und Protokolle möglich
    • Die Regelliste kann sortiert und gefiltert werden
  • Über Regeln lassen sich detaillierte Richtlinien zur Netzwerksteuerung aufbauen

Zugriffssicherheit

  • Standardmäßig ist die Weboberfläche für alle lokal laufenden Prozesse zugänglich
    • Dadurch besteht die Möglichkeit, dass schädliche Anwendungen Regeln ändern, Blocklisten modifizieren oder Filter deaktivieren
  • Um dies zu verhindern, kann die Anforderung einer Authentifizierung konfiguriert werden
    • Detaillierte Einstellungen erfolgen in der erweiterten Konfiguration (Advanced configuration)

Interne Struktur

  • Mittels eBPF wird in den Linux-Netzwerk-Stack eingehakt
    • Das eBPF-Programm überwacht ausgehende Verbindungen und übergibt die Daten an den Daemon
    • Der Daemon übernimmt Statistikverfolgung, Regelverarbeitung und die Bereitstellung des Web-UIs
  • Der Quellcode des eBPF-Programms und des Web-UIs ist auf GitHub öffentlich verfügbar

Erweiterte Konfiguration

  • Das Standard-UI zeigt nur wichtige Einstellungen an, erweiterte Konfiguration erfolgt über Textdateien
    • Nach Änderungen muss der littlesnitch-Daemon neu gestartet werden
  • Standardpfad der Konfiguration: /var/lib/littlesnitch/config/
    • Nicht direkt bearbeiten; stattdessen die zu ändernde Datei nach /var/lib/littlesnitch/overrides/config/ kopieren und dort bearbeiten
    • Einstellungen im Override-Verzeichnis haben immer Vorrang
  • Wichtige Konfigurationsdateien
    • web_ui.toml: Netzadresse, Port, TLS, Authentifizierungseinstellungen
      • Wenn mehrere Benutzer Zugriff haben können, sollte Authentifizierung aktiviert werden
      • Bei Freigabe über Loopback hinaus ist zusätzlich TLS erforderlich
    • main.toml: Standardverhalten für Verbindungen, die auf keine Regel passen
      • Standard ist Erlauben; bei Bedarf kann auf Ablehnen umgestellt werden
      • Bei falscher Konfiguration besteht das Risiko, den Systemzugriff zu verlieren
    • executables.toml: Regeln zur Gruppierung von ausführbaren Dateien
      • Durch Entfernen von Versionsnummern werden mehrere Versionen derselben App als eine angezeigt
      • Definiert Elternbeziehungen von Shells und App-Verwaltungsprozessen
      • Wird fortlaufend durch Community-Feedback verbessert
  • Das eBPF-Programm und das Web-UI können durch selbst gebaute Versionen ersetzt werden
    • Versionen im Override-Verzeichnis werden bevorzugt verwendet

Einschränkungen

  • Als Privatsphäre-Tool und nicht als Security-Tool konzipiert
    • Einfacher als die macOS-Version, mit funktionalen Einschränkungen durch eBPF
  • eBPF hat Beschränkungen bei Speicherplatz und Programmkomplexität
    • Bei viel Traffic können Cache-Tabellen überlaufen, sodass die Zuordnung zwischen Paketen, Prozessen und DNS-Namen unvollständig wird
    • Für die Wiederherstellung des ursprünglich aufgelösten Hostnamens aus einer IP-Adresse werden Heuristiken verwendet
    • Die macOS-Version nutzt Deep Packet Inspection (DPI) für eine genauere Zuordnung
  • Für die Überwachung und Blockierung externer Kommunikation gewöhnlicher Software gut geeignet, für die Systemverteidigung gegen fortgeschrittene Angreifer jedoch ungeeignet

Lizenz

  • Besteht aus drei Komponenten
    • eBPF-Kernel-Programm und Web-UI sind unter GNU GPL v2 veröffentlicht und auf GitHub verfügbar
    • Der Daemon (littlesnitch --daemon) ist proprietär, kann jedoch kostenlos genutzt und weiterverteilt werden

1 Kommentare

 
GN⁺ 20 일 전
Hacker-News-Kommentare
  • Ich nutze weder Little Snitch noch Open Snitch, habe mich aber gefragt, ob auch Anfragen blockiert werden können, die ein erlaubtes Programm missbrauchen
    Wenn zum Beispiel suspicious.py Firefox aufruft, um Daten hochzuladen, würde mich interessieren, ob die Firewall das verhindern kann

    • Little Snitch for Linux bewertet Regeln unter gemeinsamer Berücksichtigung von Prozess- und Parent-Prozess-Namespaces
      Wird ein Skript mit #!/bin/interpreter ausgeführt, gelten Regeln für den Skriptpfad, bei Ausführung als interpreter script verhält es sich anders
    • Mit einfachen Regeln wird das nicht blockiert
      In Open Snitch kann man feingranular abgleichen, etwa danach, ob im Parent-Tree ein Python-Prozess enthalten ist
    • Wenn man auch Library-Loading oder prozessübergreifende Speichermanipulation (z. B. OpenProcess, WriteProcessMemory, CreateRemoteThread) berücksichtigt, wird es deutlich komplexer
      Frühere Windows-Firewalls wie Outpost oder Zone Alarm boten dafür eine Leak-Control-Funktion
    • Mit MAC-Richtlinien von SELinux lässt sich einschränken, auf welche Dateien und Ports einzelne Prozesse zugreifen dürfen
      Die meisten Distributionen bringen diese Funktion mit, aber normale Nutzer lernen oder konfigurieren die Regeln meist nicht
  • Ich habe es unter Fedora 43 ausprobiert, aber es hat alle CPU-Kerne ausgelastet und ist mit einem 50K-Zeilen-Log fehlgeschlagen
    Es trat der Fehler BPF_PROG_LOAD syscall returned Argument list too long auf

    • Der Entwickler sagte, dass nicht unter Fedora getestet wurde
      Auf einer ARM64-VM lädt es zwar, kann Prozesse aber nicht identifizieren
      Man untersucht eBPF-Kompatibilitätsprobleme, hat aber nur begrenzte Ressourcen und braucht daher Zeit
    • Es gibt bereits ein GitHub-Issue
    • Laut offizieller Download-Seite funktioniert es nicht mit dem Btrfs-Dateisystem
      Da Fedora standardmäßig Btrfs nutzt, ist eine Prozessidentifikation nicht möglich; in Version 1.0.1 soll das behoben werden
    • Ich hatte dasselbe Problem. Bei mir wird nur die halbe CPU genutzt, aber die Web-UI funktioniert nicht
    • Genau das ist die ganz normale Linux-Erfahrung. Dass 2026 das Jahr des Linux-Desktops sein soll, klingt wie ein Witz
  • Als Linux-Nutzer ist mir offener Code wichtig
    Mit der Kombination aus OpenSnitch + OpenSnitch-UI bin ich vollkommen zufrieden

  • Ich habe mich gefragt, wie tragfähig ein Bezahltool-Modell unter Linux überhaupt ist
    Das meiste ist kostenlos, spendenbasiert oder Open Core
    Ich frage mich, ob Little Snitch die Linux-Version deshalb kostenlos veröffentlicht hat, weil man denkt, dass „unter Linux kein Geld zu holen ist“, oder ob es andere Gründe gab

    • Die Linux-Community hat ein starkes Misstrauen gegenüber proprietärer Software
      Ich selbst finde ein proprietäres Programm, das den gesamten Netzwerkverkehr verarbeitet, auch unerquicklich
      Stattdessen spende ich jedes Jahr mehrere Tausend Dollar an FOSS-Projekte
      Solche Nutzer sind aber eine Minderheit, daher ist es schwierig, mit vollständig Open Source Einnahmen zu erzielen
    • Da OpenSnitch bereits existiert und kostenlos ist, ist ein kostenpflichtiger Ersatz wenig überzeugend
      Gerade bei hoch privilegiertem Code wie einer Firewall ist Vertrauen ohne Open Source schwer
    • Der Entwickler von Little Snitch for Linux erklärte, man sei ein kleines unabhängiges Team ohne Investoren, und diese Entscheidung sei eine persönliche Wahl gewesen
      Man sei gespannt, wie sich das entwickelt
    • Die Motivation der Entwickler wird im offiziellen Blogpost gut erklärt
  • Verwandter Blogpost: Einführung in Little Snitch for Linux

  • Früher gab es ZoneAlarm für Windows
    Ich habe mich immer gefragt, warum es so etwas unter Linux nicht gab

    • Ich habe früher selbst ein ZoneAlarm-ähnliches Programm für AmigaOS geschrieben
      Im Direwall-Code sieht man noch den alten C-Stil von damals
      Es funktionierte durch Patches an der Socket-Bibliothek; ich frage mich, ob es heute noch kompiliert
    • Die Stärke von ZoneAlarm lag nicht nur in der Technik, sondern auch in Nutzerschulung und UX-Design
      Es erklärte klar, dass es anfangs lautstark nachfragt, nach dem Lernen aber ruhig wird
      Dadurch gewann es das Vertrauen der Nutzer, und genau deshalb habe ich es empfohlen
    • Damals gab es fast nur GNU-Software, daher kaum Spyware
      Erst als kommerzielle Software nach Linux kam, entstand das Bedürfnis nach Netzwerküberwachung
    • Ich erinnere mich noch daran, ZoneAlarm Anfang der 2000er genutzt zu haben
    • Ich erinnere mich auch an Kerio Personal Firewall. Später bin ich zu ZA oder Comodo gewechselt, und die Sandbox-Ausführung fand ich beeindruckend
      Es war gut, das hemmungslose Starten von Programmen unter Windows einschränken zu können
  • Ich nutze Little Snitch schon lange und genehmige jede Netzwerkanfrage manuell
    Trotzdem frage ich mich, wie sehr man einem Programm vertrauen kann, das Berechtigungen auf Kernel-Erweiterungsniveau hat
    Über das Unternehmen oder die Entwickler findet man kaum Informationen, daher bin ich neugierig

    • Ein Entwickler von Little Snitch for Linux hat selbst geantwortet
      Die eBPF-Komponente ist als GPLv2 Open Source veröffentlicht und der GitHub-Code ist einsehbar
      Der Daemon muss jedoch mit Root-Rechten laufen, daher sollte man ihn mit Zugriffskontrollen wie SELinux einschränken
      Es ist die erste Veröffentlichung, man bearbeitet gerade Bugreports und war von der Vielfalt der Linux-Umgebungen überrascht
    • Das Unternehmen ist ein seit über 20 Jahren aktiver unabhängiger Mac-Entwickler, und Little Snitch ist dort seit Langem ein geschätztes Produkt
    • Ich entwickle gerade gemeinsam eine von Little Snitch/OpenSnitch inspirierte FOSS-Firewall für Android
      Unter macOS nutzt man keine Kernel-Erweiterung, sondern die Network Extension API
      Wenn es um Netzwerkbeobachtung geht, gibt es mit Sniffnet auch GUI-Sniffer
  • Glückwunsch zum Linux-Port
    Als vollständig Open Source und terminalbasierte Alternative stelle ich RustNet vor, das ich pflege
    Ein TUI-basiertes Echtzeit-Paketmonitoring-Tool, keine Firewall, aber mit Landlock zur eigenen Sandboxisierung

    • Sieht interessant aus, ich werde es später einmal ausprobieren
  • Mich interessiert der Vergleich mit OpenSnitch
    OpenSnitch GitHub

    • Ich habe Little Snitch ausprobiert, aber die IP→Domain-Auflösung funktioniert fast gar nicht, und auch die Prozessidentifikation schlägt fehl
      Das liegt an technischen Einschränkungen der Linux-Version
      Wegen der eBPF-Basis ist bei Cache-Overflow kein Prozess-Mapping mehr möglich, und eine Deep Packet Inspection wie unter macOS gibt es nicht
      Das wird in der offiziellen Erklärung ausführlich beschrieben
    • Ich habe OpenSnitch ebenfalls installiert, es derzeit aber deaktiviert. Vermutlich war es irgendwann einfach ermüdend
    • Laut Entwicklerblog hat man es selbst gebaut, weil bestehende Tools nicht die Funktion boten, „Verbindungen pro Prozess auf einen Blick zu sehen und mit einem Klick zu blockieren“
      Verwandter Beitrag
    • OpenSnitch ist vollständig Open Source und hat kein Abo. So sollte Software sein
  • Ich nutze OpenSnitch zufriedenstellend
    Schön wäre aber ein Plugin-System, das Nutzerverhalten und Netzwerkverbindungen gemeinsam analysiert und nur unerwartete Verbindungen meldet
    Zusätzlich wäre ein CLI-basierter Auto-Allow-Wrapper praktischer als Pop-ups