8 votos

¿Cómo lanzar pf al inicio?

Estoy buscando una forma bastante elegante de lanzar el pf - también conocido como Filtrado de Paquetes - proceso al inicio. Utilizando el launchctl o el pfctl comandos, se requieren privilegios de Root y por lo tanto es inútil añadirlos en .bash_profile . ¿Existen soluciones alternativas a esta cuestión?

0 votos

¿Puede explicar qué es lo que realmente intenta conseguir? Pf puede que ni siquiera sea la mejor manera.

1 votos

@Harv Me gustaría bloquear las conexiones salientes que algunas aplicaciones establecen al iniciarse.

0 votos

Mira esto: hanynet.com/pflists/index.html Supongo que has descartado Radio Silence, Little Snitch, etc.

7voto

klanomath Puntos 19587

Por defecto, pf se silencia al inicio, un demonio de lanzamiento com.apple.pfctl.plist existe en /System/Library/LaunchDaemons/. Para habilitar pf durante el arranque habría que añadir un -e en el plist.

Dado que todos los archivos en /System/Library/LaunchDaemons/ están protegidos por SIP en MacOS 10.11 y posteriores tienes que desactivarlo primero.

Luego, después de arrancar el sistema principal, edite el plist del demonio de lanzamiento:

sudo nano /System/Library/LaunchDaemons/com.apple.pfctl.plist

y reemplazar

  ...
  <key>ProgramArguments</key>
  <array>
    <string>/sbin/pfctl</string>
    <string>-f</string>
    <string>/etc/pf.conf</string>
  </array>
  ...

con

  ...
  <key>ProgramArguments</key>
  <array>
    <string>/sbin/pfctl</string>
    <string>-e</string>
    <string>-f</string>
    <string>/etc/pf.conf</string>
  </array>
  ...

Reinicie en modo de recuperación y habilite de nuevo el SIP.

4voto

sunknudsen Puntos 36

¿Existen soluciones alternativas a esta cuestión?

Sí*, en Preferencias del Sistema / Seguridad y Privacidad / Opciones de Firewall..., marque "Activar el modo sigiloso" y active el Firewall.

De alguna manera, esto permite a la FP. Puede comprobarlo ejecutando sudo pfctl -s info .

*Probado en High Sierra y Mojave

0 votos

Esta es la respuesta del MVP, gracias

0 votos

Esta es la forma más sencilla de gestionar el inicio de la FP que sobrevivirá a una actualización del SO y evitará daños en /System/Library/LaunchDaemons/... .

4voto

rudicangiotti Puntos 16

Es posible lanzar procesos al inicio utilizando demonios. Puede crear un demonio - o incluso editar uno ya existente - respectivamente añadiendo o modificando un .plist archivo en el interior /System/Library/LaunchDaemons o /Library/LaunchDaemons .
En mi caso, ejecutando MacOS Sierra, un demonio para pfctl ya se encontraba dentro de una de esas carpetas, pero se configuró sin el -e por lo que al iniciar el demonio se lanzaba sin ningún efecto.
El tema se ha solucionado añadiendo esa opción mencionada, más algo más a pesar de que no es propiamente necesario:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Disabled</key>
  <false/>
  <key>Label</key>
  <string>com.apple.pfctl</string>
  <key>WorkingDirectory</key>
  <string>/var/run</string>
  <key>Program</key>
  <string>/sbin/pfctl</string>
  <key>ProgramArguments</key>
  <array>
    <string>/sbin/pfctl</string>
    <string>-e</string>
    <string>-f</string>
    <string>/etc/pf.conf</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>StandardErrorPath</key>
  <string>/var/log/pfctl.err</string>
  <key>StandardOutPath</key>
  <string>/var/log/pfctl.out</string>
</dict>
</plist>

2voto

Maciej Piróg Puntos 71

Si no quiere complicarse con la desactivación de la protección de la integridad del sistema (SIP), puede simplemente copiar el archivo existente /System/Library/LaunchDaemons/com.apple.pfctl.plist a la zona de usuario desprotegida /Library/LaunchDaemons dándole un nombre ligeramente diferente, por ejemplo /Library/LaunchDaemons/my.netfilter.pfctl.plist .

Luego haga sus ediciones, yo cambié el nombre de la etiqueta para que coincida con el nombre del archivo y añadí la opción -e como se describe en las otras respuestas.

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key> <string>my.netfilter.pfctl</string>
    <key>Disabled</key> <false/>
    <key>RunAtLoad</key> <true/>
    <key>WorkingDirectory</key> <string>/var/run</string>
    <key>Program</key> <string>/sbin/pfctl</string>
    <key>ProgramArguments</key>
    <array>
        <string>pfctl</string>
        <string>-e</string>
        <string>-f</string>
        <string>/etc/pf.conf</string>
    </array>
</dict>
</plist>

Después de reiniciar comprueba que está funcionando con pfctl -s all . Probado en Mojave.

2voto

Bastion Puntos 101

Habilitar la FP a través de la consola

A continuación se explica cómo habilitar el Filtro de Paquetes (PF) de su Mac, y hacer que se active automáticamente después de cada reinicio. Otros métodos no me han funcionado.

Ejecute lo siguiente desde Terminal o a través de SSH :

sudo -i    
defaults write /Library/Preferences/com.apple.alf globalstate -int 1
defaults write /Library/Preferences/com.apple.alf stealthenabled "1"
/usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on

Práctico cuando se trabaja desde casa en un bloqueo y no se tiene acceso a la GUI :-). Como ha señalado sunknudsen: el modo oculto permitirá que PF se inicie automáticamente y permanezca encendido después de los reinicios.

Pruebas de FP

Reinicie el ordenador (shutdown -r now) y tras el arranque ejecute el siguiente comando:

pfctl -s info

Busque una línea que empiece por "Estado: Activado". Si dice eso, entonces el Filtro de Paquetes Mac está funcionando.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X