Verwendung des neuen Schlüsselworts dummynet-anchor in der pf.conf von Mac OS X

898
Yaocl

Mac OS X hat ein neues Schlüsselwort "dummynet-anchor" in der pf.confDatei eingeführt, das in FreeBSD und OpenBSD nicht verwendet wird. Das ipfwwurde in Mac OS X 10.10 entfernt. Wie benutze ich einen "Dummynet-Anker"?

UPDATE: Welcher Teil des Regelsatzes wird von "dummynet-anchor" ausgeführt?

4
Haben Sie [auf dieser Seite / Seite] (http://krypted.com/mac-security/a-cheat-sheet-for-using-pf-in-os-x-lion-and-up/) nachgesehen? JakeGould vor 9 Jahren 0
@ JakeGould Danke, ich habe auf dieser Seite nichts über die Verwendung von dummynet mit pf in osx 10.10 gesucht Yaocl vor 9 Jahren 2

1 Antwort auf die Frage

0
Mecki

Folgendes habe ich bisher zu diesem Thema erfahren:

Sie können Ihre dummynetKonfiguration mithilfe des Befehlszeilentools dnctlfür Details einrichten. Check out man dnctl. Mit diesem Tool können Sie Pipes und Warteschlangen konfigurieren. Jede Pipe / Queue hat einen numerischen Namen sowie eine Reihe von Eigenschaften (z. B. Bandbreite, Verzögerung, Paketabwurfrate usw.).

Beispiel aus der Manpage:

dnctl pipe 1 config bw 14Kbit/s queue 10Kbytes 

Dadurch wird eine Pipe 1mit einer maximalen Bandbreite von 14 kbps und einem Backlog-Puffer von 10 KB (oder möglicherweise 10 KiB, die Seite ist nicht klar) erstellt.

Jetzt benötigen Sie nur noch eine Möglichkeit, dem System mitzuteilen, welche Netzwerkpakete diese Pipe durchlaufen müssen. Dazu wird Folgendes verwendet pf:

dummynet in all pipe 1 

Dadurch wird der gesamte eingehende Datenverkehr an die genannte Pipe umgeleitet 1.

Obwohl nirgendwo dokumentiert, kennt die -sOption pfctlauch einen dummynetParameter. Um beispielsweise die Dummynet-Einträge anzuzeigen, die der Network Link Conditioner (ncl) von Apples Dev Tools eingestellt hat, führen Sie einfach Folgendes aus:

sudo pfctl -a com.apple.nlc/base -s dummynet 

Hier ist eine Beispielausgabe:

no dummynet quick on lo0 all dummynet in quick inet all allow-opts pipe 40269 dummynet in quick inet6 all allow-opts pipe 40269 dummynet out quick inet all allow-opts pipe 40270 dummynet out quick inet6 all allow-opts pipe 40270 

Nun schauen wir uns an, welche Pipes es konfiguriert hat:

40269: 1.000 Mbit/s 500 ms 50 sl.plr 0.100000 1 queues (1 buckets) droptail mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 40270: 1.000 Mbit/s 500 ms 50 sl.plr 0.100000 1 queues (1 buckets) droptail mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 

Das stimmt genau mit dem überein, was ich konfiguriert habe: enter image description here Okay, was ist ein dummynet-anchor? Nun, ich denke, es ist nur eine anchorAusnahme für dummynetRegeln, ähnlich wie nat-anchorsfür NAT-Regeln (Network Address Translation). Laufen:

sudo pfctl -sa 

Ich bekomme diese Ausgabe:

TRANSLATION RULES: nat-anchor "com.apple/*" all rdr-anchor "com.apple/*" all  FILTER RULES: scrub-anchor "com.apple/*" all fragment reassemble anchor "com.apple/*" all  DUMMYNET RULES: dummynet-anchor "com.apple/*" all 

Sie sehen also, dass es verschiedene Arten von Ankern gibt, die zu verschiedenen Regelabschnitten gehören. Woher diese Regeln tatsächlich geladen werden, ist für mich immer noch ein Rätsel. Es gibt ein Verzeichnis /etc/pf.anchorsunter macOS, aber dieses enthält nur eine einzige Datei, com.appleund diese Datei bezieht sich nur auf mehr Anker:

# # AirDrop anchor point. # anchor "200.AirDrop/*"  # # Application Firewall anchor point. # anchor "250.ApplicationFirewall/*" 

Bei einer Suche werden 250.ApplicationFirewallkeine Dateien oder Ordner mit diesem Namen auf meinem System gefunden.

Es tut mir leid, das ist nicht wirklich eine Antwort auf Ihre Frage, ich kenne die Antwort auch wirklich nicht. Diese Frage ist jedoch schon über 3 Jahre alt, und niemand hat sie überhaupt beantwortet. Ich dachte, ich teile meine Erkenntnisse hier und vielleicht kann jemand sie aufgreifen und auf diese Weise neue Erkenntnisse gewinnen.

Anker kann von der Anwendung hinzugefügt werden, daher kann es in keiner Konfigurationsdatei enthalten sein. Yaocl vor 5 Jahren 0