Das .lsrules Dateiformat
Regelgruppenabonnements verwenden .lsrules
Dateien in einem JSON Format, das an dieser Stelle spezifiziert wird. Diese Dateien können mittels Little Snitch Konfiguration exportiert, oder aber mit einem Text Editor oder einem Skript erstellt werden
Ein einfaches Beispiel
Beginnen wir mit einem einfachen Beispiel, das eine Regel beinhaltet, um Softwareupdates für LaunchBar zu erlauben:
{
„name": „LaunchBar Software Update“,
„description": „This rule allows LaunchBar to check for updates.“,
„rules": [
{
„action": „allow“,
„process": „/Applications/LaunchBar.app/Contents/MacOS/LaunchBar“,
„remote-hosts": „sw-update.obdev.at"
}
]
}
Blockliste
Eine häufige Anwendung für Regelgruppenabonnements sind Blocklisten, die eine Menge Domänen, Hostnamen oder IP-Adressen beinhalten, zu denen jede Verbindung kategorisch verboten werden soll. Mit der obenstehenden Syntax müsstest du "process": „any"
und "action": „deny"
für jede einzelne Domäne, Hostnamen oder IP-Adresse verwenden. Für Tausende Regeln kann das zu unnötig großen Dateien und unnötig großen Downloads für jeden einzelnen Abonnenten führen.
Ab Little Snitch 4.2 kannst du daher ein kompakteres Format verwenden, das so aussieht:
{
„name": „Social Media Block List“,
„description": „Blocks access to popular social media sites.“,
„denied-remote-domains": ["facebook.com“, „twitter.com“, „youtube.com"]
}
Die Schlüssel der obersten Ebene
Auf der obersten Ebene einer .lsrules
Datei befindet sich ein JSON Wörterbuch mit den folgenden Schlüsseln:
Schlüssel | Typ | Beschreibung |
---|---|---|
name |
String | Der Name der Gruppe. |
description |
String | Eine Beschreibung der Regelgruppe. |
rules |
Array of Dictionaries | Eine Liste von Regeln. Siehe auch unten für Regelebenen Schlüssel. |
Um Blocklisten effizient zu unterstützen, wurden folgende Schlüssel in Little Snitch 4.2 hinzugefügt:
Key | Type | Description |
---|---|---|
denied-remote-domains |
Array of Strings | Eine Liste von Domänennamen. |
denied-remote-hosts |
Array of Strings | Eine Liste von Hostnamen. |
denied-remote-addresses |
Array of Strings | Eine Liste von IP-Adressen. Siehe Anatomie einer Regel > Server (entfernter Computer) für die unterstütze Syntax. |
denied-remote-notes |
String | Eine Notiz, die mit jeder Regel wiederholt werden soll. Der Platzhalter %REMOTE% wird mit dem Domänennamen, Hostnamen oder mit der IP-Adresse der jeweiligen Regel ersetzt. |
Du kannst alle diese Schlüssel in einer einzigen .lsrules
-Datei verwenden. Es ist also möglich, eine willkürliche Regel in einer rules
-Liste neben einer Liste von Domänen in denied-remote-domains
und einer weiteren Liste von IP-Adressen in denied-remote-addresses
anzuführen.
Die Schlüssel zur Beschreibung der Regeln
Jede Regel, die in einer .lsrules
-Datei definiert wird, ist ein JSON-Wörterbuch mit den folgenden Schlüsseln:
Spezifizierung des Prozesses
Um zu definieren, welchem Prozess eine Regel entsprechen soll, spezifizierst du die Ausführungsdatei des Prozesses mit den folgenden Schlüsseln:
-
Um allen Prozessen zu entsprechen, verwende:
"process": „any"
-
Um einem bestimmten Prozess zu entsprechen, verwende:
"process"
(String): Ein String ist eine Buchstabenfolge, die den vollständigen Pfad zu der Ausführungsdatei enthält. Für Anwendungen ist dies der Pfad zu der tatsächlich ausführbaren Datei, nicht nur zu dem „Wrapper“ .app. Zum Beispiel:/Applications/Safari.app/Contents/MacOS/Safari
"via"
(String, optional): Wenn die Regel nur dann angewandt werden soll, wenn der Hauptprozess einen bestimmten Hilfsprozess verwendet, so kann dies im Pfad festgelegt werden. Zum Beispiel kannst du eine Regel für „Terminal via ping“ festlegen, indem du"path"
zum Pfad des Terminals und"via"
zum Pfad von Ping setzt. Beachte, dass jede Regel für Terminal ohne"via"
auch immer dann angewandt wird, wenn eine Verbindung von “Terminal via ping” aufgebaut wird.
Spezifizierung des entfernten Computers
Die Beschreibung des entfernten Computers in einer Regel kann auf verschiedene Arten erfolgen. Du kannst immer nur einen der folgenden Schlüssel dafür verwenden:
"remote-addresses"
: Eine Zeichenfolge, die eine oder mehrere IP-Adressen enthält, wie in Anatomie einer Regel > Server (Entfernter Computer) beschrieben."remote-hosts"
: Entweder eine Zeichenfolge mit einem Hostnamen, oder eine Liste von Zeichenfolgen mit Hostnamen."remote-domains"
: Entweder eine Zeichenfolge mit einem Domänennamen, oder eine Liste von Zeichenfolgen mit Domänennamen."remote"
: Eine Zeichenfolge mit exakt einem der folgenden Werte. Für eine Beschreibung der Werte, siehe Anatomie einer Regel > Server (Entfernter Computer)."any"
"local-net"
"multicast"
"broadcast"
"bonjour"
"dns-servers"
"bpf"
(Berkeley Packet Filter, verfügbar ab Little Snitch 4.4.3)
Andere Schlüssel
Schlüssel | Typ | Beschreibung |
---|---|---|
direction |
String, optional | Die Verbindungsrichtung. "incoming" or "outgoing" . Standardmäßig auf "outgoing" . |
action |
String, optional | Die Aktion der Regel. "allow" , "deny" , or "ask" . Standardmäßig auf "ask" . |
priority |
String, optional | Die Priorität der Regel. "regular" or "high" . Standardmäßig auf "regular" . |
disabled |
Boolean, optional | Ob die Regel standardmäßig aktiv oder inaktiv ist. Standardmäßig auf false . |
ports |
String, optional | Die Portnummern, die entsprechen. Kann auf "any" für alle Ports sein (die Standardeinstellung), ein einzelner Port (z.B. "443" ), oder ein ganzer Bereich (z.B. "123-456" ). |
protocol |
String, optional | Das Protokoll, das der Regel entspricht. Es kann ein nummerischer Wert wie hier /etc/protocols definiert sein, also "6" für TCP, oder aber der tatsächliche Name des Protokolls, wie "tcp" . Standardmäßig entsprechen alle Protokolle. |
notes |
String, optional | Die Notizen zur Regel. |
War dieser Eintrag hilfreich? Hinterlass uns Feedback.
© 2016-2024 Objective Development Software GmbH