Control de acceso a la red lanzado en Mac OS Lion

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.

Respuestas (1)

launchdno 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 launchdno está utilizando ningún punto de entrada dentro de la libwrapbiblioteca del envoltorio TCP.

Esta respuesta fue marcada Snow Leopardy Lion.

On lionpor ejemplo, libwrapes usado por sshdy no telnetdni launchd:

%nm -a /usr/sbin/sshd | anfitriones grep
                 U _hosts_acceso
% nm -a /usr/libexec/telnetd | anfitriones grep
%

La libwrapbiblioteca no existe en Mountain Lion.