How to block bad sites using low tech

index | OSiUX | archive | charlas | docs | links

dot | git | img | plt | tty | uml

stevenblack-etc-hosts.png

Era el DNS!

Si bien existen múltiples maneras de bloquear sitios, una muy usada es realizarlo por DNS, es decir devolver una IP diferente para un dominio en particular.

Hay servicios como FamilyShield 1 de OpenDNS que se ocupan de filtrar el contenido para adultos si se edita el archivo /etc/resolv.conf de la siguiente manera:


nameserver 208.67.220.123
nameserver 208.67.222.123

Pero esto implica un costo, es decir dentro de tu red o LAN (Local Area Network) hay que realizar una consulta a los servidores remotos de OpenDNS y esto implica generar tráfico internacional y si bien los DNS responden velozmente, hay una demora en la respuesta, además de que el tráfico de consulta de DNS podría ser monitoreado por terceros.

solo confío en localhost

Una alternativa es utilizar una resolución interna de DNS que NO genera tráfico fuera de nuestro equipo, y es contar con un listado de «sitios malos» (adware, malware, fakenews, gambling, social, etc) dentro del archivo /etc/hosts, solo basta indicar una IP diferente, ésta puede ser 0.0.0.0 o la IP de una bonita web que informe que ese sitio esta restringido.

Por lo general el archivo /etc/hosts además del hostname y FQDN de nuestro equipo, solo contiene las siguientes convenciones:

127.0.0.1 localhost
127.0.0.1 localhost.localdomain
127.0.0.1 local
255.255.255.255 broadcasthost
::1 localhost
::1 ip6-localhost
::1 ip6-loopback
fe80::1%lo0 localhost
ff00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
0.0.0.0 0.0.0.0

StevenBlack

Ahora bien cómo consigo un listado de sitios malos? bueno, hay varios disponibles en la web y StevenBlack 2 consolida varios listados y además permite definir nuestra propia combinatoria de filtrado, permitiendo personalizar el listado agregando registros propios.

Si bien este método utiliza un listado estático, mediante el script updateHostsFile permite la actualización de los diferentes listados para regenerar el archivo /etc/hosts

Actualizar /etc/hosts usando updateHostsFile.py es muy simple!


# python3 ./updateHostsFile.py -a -r

Updating source data/StevenBlack from https://raw.githubusercontent.com/StevenBlack/hosts/master/data/StevenBlack/hosts
Updating source data/add.2o7Net from https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts
Updating source data/add.Dead from https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Dead/hosts
Updating source data/add.Risk from https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Risk/hosts
Updating source data/add.Spam from https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts
Updating source data/Badd-Boyz-Hosts from https://raw.githubusercontent.com/mitchellkrogza/Badd-Boyz-Hosts/master/hosts
Updating source data/hostsVN from https://raw.githubusercontent.com/bigdargon/hostsVN/master/option/hosts-VN
Updating source data/KADhosts from https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
Updating source data/MetaMask from https://raw.githubusercontent.com/MetaMask/eth-phishing-detect/master/src/hosts.txt
Updating source data/minecraft-hosts from https://raw.githubusercontent.com/jamiemansfield/minecraft-hosts/master/lists/tracking.txt
Updating source data/shady-hosts from https://raw.githubusercontent.com/shreyasminocha/shady-hosts/main/hosts
Updating source data/someonewhocares.org from https://someonewhocares.org/hosts/zero/hosts
Updating source data/tiuxo from https://raw.githubusercontent.com/tiuxo/hosts/master/ads
Updating source data/UncheckyAds from https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts
Updating source data/URLHaus from https://urlhaus.abuse.ch/downloads/hostfile/
Updating source extensions/fakenews from https://raw.githubusercontent.com/marktron/fakenews/master/fakenews
Updating source extensions/gambling/bigdargon from https://raw.githubusercontent.com/bigdargon/hostsVN/master/extensions/gambling/hosts-VN
Updating source extensions/gambling/sinfonietta from https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/gambling-hosts
Updating source extensions/porn/bigdargon from https://raw.githubusercontent.com/bigdargon/hostsVN/master/extensions/adult/hosts-VN
Updating source extensions/porn/brijrajparmar27 from https://raw.githubusercontent.com/brijrajparmar27/host-sources/master/Porn/hosts
Updating source extensions/porn/clefspeare13 from https://raw.githubusercontent.com/StevenBlack/hosts/master/extensions/porn/clefspeare13/hosts
Updating source extensions/porn/sinfonietta from https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/pornography-hosts
Updating source extensions/porn/sinfonietta-snuff from https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/snuff-hosts
Updating source extensions/porn/tiuxo from https://raw.githubusercontent.com/tiuxo/hosts/master/porn
Updating source extensions/social/sinfonietta from https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/social-hosts
Updating source extensions/social/tiuxo from https://raw.githubusercontent.com/tiuxo/hosts/master/social
==>fe00::0 ip6-localnet<==
==>ff00::0 ip6-mcastprefix<==
==>ff02::2 ip6-allrouters<==
==>ff02::3 ip6-allhosts<==
Success! The hosts file has been saved in folder
It contains 184,251 unique entries.
Replacing /etc/hosts requires root privileges. You might need to enter your password.

Pi-hole

Siempre existen otras alternativas, tal vez mejores, como el proyecto Pi-hole 3, que si bien aportan listas dinámicas y bonitas estadísticas de sitios que NO quiero visitar, consumen mas recursos que tener un archivo /etc/hosts enorme.

Por las dudas…

Obviamente se puede combinar el bloqueo por DNS a nivel de red conjuntamente con el bloquepo por /etc/hosts, incluso muchos routers con soporte para OpenWRT 4 permiten usar un /etc/hosts extra a la resolución del DNS configurado y de esta manera contar con mas de una protección y reducir el tráfico de red innecesario!

ChangeLog

  • 2023-03-17 11:10 corregir links en ChangeLog de How to block bad sites using low tech
  • 2023-03-16 19:38 corregir título y tags OpenGraph en How to block bad sites using low tech
  • 2023-03-15 23:10 agregar How to block bad sites using low tech

Notas al pie de página: