En primer lugar, he usado pf ampliamente en OpenBSD, así que sé que su regla está bastante bien establecida. Aunque estoy más acostumbrado a las versiones más recientes.
Sin embargo, me gustaría saber si hay una forma más sencilla de regular el acceso de la red a launchd, o más específicamente a afp.
Intenté poner ALL: ALL (o launchd: ALL y otras combinaciones) en /etc/hosts.deny pero no creo que launchd use estos archivos en absoluto. ¿Puede alguien por favor confirmar esto? hosts_options (5) muestra extensiones hechas por Apple, quizás, pero no puedo encontrar la manera de volver a cargar launchd para usar estos archivos.
Mi solución ahora es bloquear todas las conexiones al puerto 548 y luego solo permitir las computadoras de mi hogar. Para hacer esto, he modificado /etc/pf.conf de la siguiente manera, agregando la última línea.
#
# 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"
Y en /etc/pf.userrules, que es mi propia creación, que podría sobrescribirse en la próxima actualización de 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
Esto funciona, pero me gustaría poder usar los archivos de acceso de los hosts.