¿Por qué todavía puedo acceder a los sitios bloqueados en / etc / hosts?

0

He estado intentando configurar launchd para bloquear varios sitios web en OS X 10.11.6

los /etc/hosts la lista se cambia según lo programado, pero un navegador todavía puede acceder a los sitios bloqueados.

Otro comportamiento extraño es que launchd parece ejecutar los comandos cuando carga el plist, pero no ejecuta los comandos durante el tiempo programado.

Algunos usuarios de Google sugirieron que podría necesitar restablecer el caché de DNS:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder

Cuando lo ejecuto desde la línea de comandos, todavía puedo acceder a los sitios que deberían estar bloqueados. Tampoco sé cómo agregar esto a los argumentos del programa launchd plist si funcionara.

$ cat /Library/LaunchDaemons/local.hosts.blockingAM.plist

<?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>Label</key>  
    <string>local.hosts.blockingAM</string>  
    <key>ProgramArguments</key>  
    <array>  
        <string>cp</string>  
        <string>/etc/hosts_BLOCKED_sites.txt</string>  
        <string>/etc/hosts</string>  
    </array>  
    <key>RunAtLoad</key>  
    <true/>  
    <key>StartCalendarInterval</key>  
    <array>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>1</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>2</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>9</integer>  
            <key>Minute</key>  
            <integer>35</integer>  
            <key>Weekday</key>  
            <integer>3</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>4</integer>  
        </dict>  
        <dict>  
            <key>Hour</key>  
            <integer>8</integer>  
            <key>Minute</key>  
            <integer>15</integer>  
            <key>Weekday</key>  
            <integer>5</integer>  
        </dict>  
    </array>  

    <key>StandardErrorPath</key>  
    <string>/tmp/local.hosts.blocking.err</string>                                                           
    <key>StandardOutPath</key>   
    <string>/tmp/local.hosts.blocking.out</string>    
    </dict>  
    </plist>  

Aquí están los permisos:
$ ls -la /Library/LaunchDaemons/local.hosts.blockingAM.plist

-rw-r--r--@ 1 root  wheel  1474 Sep  8 09:33 /Library/LaunchDaemons/local.hosts.blockingAM.plist

Carga la lista con:

$ sudo launchctl load /Library/LaunchDaemons/local.hosts.blockingAM.plist   

No hay errores registrados:
$ cat /tmp/local.hosts.blocking.err

Aquí está el archivo que contiene los sitios bloqueados:
$ cat /etc/hosts_BLOCKED_sites.txt

##  
# Host Database  
#  
# localhost is used to configure the loopback interface  
# when the system is booting.  Do not change this entry.  
##  
127.0.0.1   localhost  
255.255.255.255 broadcasthost  
::1             localhost   


# Blocked sites redirected to 0.0.0.0  
0.0.0.0 reddit.com www.reddit.com  
0.0.0.0 facebook.com www.facebook.com  

¿Qué estoy haciendo mal?

BryanWheelock
fuente
1
¿Está el navegador utilizando un proxy? (Entonces, su archivo de hosts no importará.) ¿El archivo de hosts tiene permisos de lectura mundial (0644)? ¿Es el archivo hosts un enlace simbólico? ¿El archivo hosts contiene CRLF y no solo los finales de línea LF? Fuera de tema, pero relacionado, dnsmasq Es impresionante para la prohibición de dominio, incluso la prohibición de comodines.
Christopher
Configuraciones originales: -rw ------- 1 rueda de raíz 567 12 de septiembre 09:05 / etc / hosts
BryanWheelock
También cambió: -rw-r - r-- 1 rueda raíz 274 12 de septiembre 12:44 / etc / hosts
BryanWheelock
Ejecuté sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder y todavía puedo acceder a los sitios bloqueados.
BryanWheelock
El navegador no debería usar un proxy, nunca lo configuré.
BryanWheelock

Respuestas:

1

¿Has revisado tu /etc/hosts ¿Para estar seguro de que está siendo modificado? Como prueba, dejé caer 127.0.0.1 foo.com www.foo.com en mi /etc/hosts y trató de cargar el sitio; Inmediatamente fue a localhost como se esperaba. Puede que no estés haciendo nada malo con el /etc/hosts código en absoluto; sin embargo, hay una buena posibilidad de que los cambios que solicita nunca lleguen al archivo en primer lugar.

Yo tambien lo intentaria mv en lugar de cp. mv no cambiará los permisos de los archivos, simplemente desvincula el destino y cambia el nombre de la fuente: por lo tanto, deberá recordar intercambiar primero (por ejemplo, mv /etc/hosts /etc/hosts_default && mv /etc/hosts_BLOCKED_sites.txt /etc/hosts, invierta el orden cuando desee desbloquear, recuerde vaciar la caché de DNS después de cada cambio y asegúrese de que /etc/hosts_BLOCKED_sites.txt tiene los mismos permisos / propiedad que /etc/hosts antes de empezar)

dr.nixon
fuente