Prima di tutto, ho usato pf estesamente su OpenBSD quindi conosco abbastanza bene la sua regola. Anche se sono più abituato alle versioni più recenti.
Tuttavia, vorrei sapere se esiste un modo più semplice per regolare l'accesso alla rete su launchd, o più specificamente su afp.
Ho provato a inserire ALL: ALL (o launchd: ALL e altre combinazioni) in /etc/hosts.deny, ma non penso che launchd usi questi file. Qualcuno può confermare questo? hosts_options (5) mostra le estensioni create da Apple, forse, ma non riesco a capire come ricaricare launchd per utilizzare questi file.
La mia soluzione adesso è bloccare tutte le connessioni alla porta 548 e quindi consentire solo i miei computer di casa. Per fare questo ho modificato /etc/pf.conf come segue, aggiunto l'ultima riga.
#
# 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"
E in /etc/pf.userrules che è la mia creazione che potrebbe essere sovrascritta al prossimo aggiornamento di Apple.
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
Funziona, ma vorrei poter usare i file di accesso degli host.