In primo luogo, chiariamo un equivoco ...
I am looking for a way to restrict ... that I decide on so that I, the
admin, cannot access ... and that I also cannot override this in any
way even though I am the admin...that requires administrator
privileges (of course something like this cannot be done other than by
an admin), and something irreversible.
In altre parole, puoi (come amministratore) modificare il sistema operativo per impedire un'attività che un altro amministratore non può eludere?
No. Tutto ciò che un amministratore può fare, un altro può annullare.
Questo non vuol dire che non puoi renderlo molto difficile per fare "annullare". Quindi, ecco una breve ricetta che utilizza il firewall incorporato , pf
per ottenere una parte relativamente buona di ciò che stai cercando di realizzare.
Utilizza pf
per "disabilitare" Internet
- crea il tuo set di regole firewall
pf.conf
che blocca tutto il traffico Internet
-
Crea un
launchd
plist che abiliti / disabilita pf
in determinati momenti della giornata.
- Blocca il tuo
sudo
accesso a pfctl
di modificando il tuo file sudoers
.
La carne e le patate per bloccare l'accesso a Internet sono pf
quindi, vedremo qui.
Blocca l'accesso a Internet
Puoi bloccare tutto il tuo accesso a Internet con un set di regole davvero semplice. Quindi, assumendo che la regola pf sia impostata nel file ~/pf/pf_block_all.conf
, basta impostare le seguenti due righe:
block in all
block out all
Puoi quindi "interrompere" Internet con il semplice comando abilitando pf
e specificando il set di regole personalizzato.
$ sudo pfctl -e -f ~/pf/pf_block_all.conf
Quando sei pronto per avere di nuovo Internet, disabilita pf
$ sudo pfctl -d
(Vai avanti, prova questo per vedere come blocca Internet).
Esecuzione di launchd
plist
Si vorrà eseguire questo come LaunchDaemon perché, quindi, verrà eseguito come root
e non si avrà bisogno della funzione sudo
da eseguire. Avresti bisogno di due plists correre a determinati intervalli; uno per abilitare e un altro per disabilitare pf
. Questo post entra nei dettagli su come ottenere ciò.
Blocco dell'accesso a pfctl
Per rimuovere la possibilità di digitare solo sudo pfctl ....
dovrai rimuovere (o almeno rendere difficile) il permesso di eseguire. Nel file /etc/sudoers
puoi escludere un programma con la seguente voce:
Tim ALL = ALL, !/sbin/pfctl
Questo ti impedirà di eseguire pfctl
, ma ci sono soluzioni alternative a questo. Vedi il link sopra.