En primer lugar, he usado pf extensamente en OpenBSD, por lo que conozco bastante bien su conjunto de reglas. Aunque estoy más acostumbrado a las versiones más recientes.
Sin embargo, me gustaría saber si existe una forma más sencilla de regular el acceso a la red a launchd, o más específicamente 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 las extensiones creadas por Apple, quizás, pero no sé cómo recargar launchd para usar estos archivos.
Mi solución en este momento es bloquear todas las conexiones al puerto 548 y luego permitir solo las computadoras de mi hogar. Para hacer esto, modifiqué /etc/pf.conf de la siguiente manera, agregué 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 y 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 desearía poder usar los archivos de acceso de los hosts.
launchd
no usa el libwrap
, como lo muestra el comando:
nm -a /sbin/launchd | grep hosts
El hecho de que este comando no genere nada significa que launchd
no está utilizando ningún punto de entrada dentro de la libwrap
biblioteca del envoltorio TCP.
Esta respuesta fue marcada Snow Leopard
y Lion
.
On lion
por ejemplo, libwrap
es usado por sshd
y no telnetd
ni launchd
:
%nm -a /usr/sbin/sshd | anfitriones grep U _hosts_acceso % nm -a /usr/libexec/telnetd | anfitriones grep %
La libwrap
biblioteca no existe en Mountain Lion.