Starten Sie die Netzwerkzugriffskontrolle in Mac OS Lion

Zunächst einmal habe ich pf ausgiebig auf OpenBSD verwendet, daher kenne ich seinen Regelsatz ziemlich gut. Auch wenn ich die neueren Versionen eher gewöhnt bin.

Ich würde jedoch gerne wissen, ob es eine einfachere Möglichkeit gibt, den Netzwerkzugriff auf launchd oder genauer gesagt auf afp zu regulieren.

Ich habe versucht, ALL: ALL (oder launchd: ALL und andere Kombinationen) in /etc/hosts.deny einzufügen, aber ich glaube nicht, dass launchd diese Dateien überhaupt verwendet. Kann das bitte jemand bestätigen? hosts_options(5) zeigt Erweiterungen, die daran vorgenommen wurden, vielleicht von Apple, aber ich kann nicht herausfinden, wie man launchd neu lädt, um diese Dateien zu verwenden.

Meine Lösung im Moment besteht darin, alle Verbindungen zu Port Port 548 zu blockieren und dann nur meine Heimcomputer zuzulassen. Dazu habe ich /etc/pf.conf wie folgt modifiziert, die letzte Zeile hinzugefügt.

#
# Default PF configuration file.
#
# This file contains the main ruleset, which gets automatically loaded
# at startup.  PF will not be automatically enabled, however.  Instead,
# each component which utilizes PF is responsible for enabling and disabling
# PF via -E and -X as documented in pfctl(8).  That will ensure that PF
# is disabled only when the last enable reference is released.
#
# Care must be taken to ensure that the main ruleset does not get flushed,
# as the nested anchors rely on the anchor point defined here.
#
# See pf.conf(5) for syntax.
#

#
# com.apple anchor point
#
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
include "/etc/pf.userrules"

Und in /etc/pf.userrules, das ist meine eigene Kreation, die beim nächsten Apple-Update möglicherweise überschrieben wird.

block in inet proto tcp from any to port 548
pass in inet proto tcp from { 10.10.10.11, 10.10.10.12 } to port 548

Das funktioniert, aber ich wünschte, ich könnte die Hosts-Zugriffsdateien verwenden.

Antworten (1)

launchdverwendet nicht die libwrap, wie der Befehl zeigt:

nm -a /sbin/launchd | grep hosts

Die Tatsache, dass dieser Befehl nichts ausgibt, bedeutet, dass launchdkein Einstiegspunkt in der libwrapBibliothek des TCP-Wrappers verwendet wird.

Snow LeopardDiese Antwort wurde am und überprüft Lion.

On lionzum Beispiel wird von und not nor libwrapverwendet :sshdtelnetdlaunchd

% nm -a /usr/sbin/sshd | grep-Hosts
                 U _hosts_access
% nm -a /usr/libexec/telnetd | grep-Hosts
%

Die libwrapBibliothek existiert nicht auf Mountain Lion.