Come avviare pf all'avvio?

4

Sto cercando un modo elegante per lanciare pf - a.k.a. Packet Filtering - processo all'avvio. Utilizzando i comandi launchctl o pfctl , sono richiesti i privilegi di root e quindi è inutile aggiungerli in .bash_profile . Esistono soluzioni alternative a questo problema?

    
posta rudicangiotti 07.12.2017 - 01:05
fonte

2 risposte

3

È possibile avviare i processi all'avvio usando i demoni. Puoi creare un demone - o anche modificare uno già esistente - rispettivamente aggiungere o modificare un file .plist all'interno di /System/Library/LaunchDaemons o /Library/LaunchDaemons .
Nel mio caso, eseguendo macOS Sierra, un demone per pfctl si trovava già in una di quelle cartelle ma era stato impostato senza l'opzione -e ; di conseguenza, all'avvio il daemon è stato lanciato senza alcun effetto.
Il problema è stato risolto aggiungendo quell'opzione menzionata, più qualcosa di più nonostante non sia propriamente necessaria:

<?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>
    
risposta data 14.12.2017 - 20:15
fonte
4

Di default pf è silenziato all'avvio, esiste un demone di lancio com.apple.pfctl.plist in / System / Library / LaunchDaemons /. Per abilitare pf durante l'avvio dovresti aggiungere un interruttore -e nel plist.

Poiché tutti i file in / System / Library / LaunchDaemons / sono protetti da SIP in macOS 10.11 e successivi devi disabilitatelo prima.

Quindi, dopo l'avvio sul sistema principale, modifica il plist del demone di avvio:

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

e sostituisci

  ...
  <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>
  ...

Riavvia la modalità di recupero e abilita nuovamente SIP.

    
risposta data 14.12.2017 - 21:17
fonte

Leggi altre domande sui tag