Bloquear anuncios de Youtube en Pihole

Imagen 1. Pi-Hole y Raspberry Pi

Ya llevo más de un mes usando la Raspberry Pi con Pi-hole, y la verdad que no puedo estar más contento, Pihole ha estado funcionando sin parar desde entonces, y al igual que mi Raspberry no ha tenido ningún problema. El único inconveniente que me he encontrado a día de hoy han sido los anuncio de YouTube, los cuales han sido prácticamente imposibles de bloquear del todo. Hace poco he hecho una pequeña investigación de los subdominios que genera Google para los anuncios de YouTube, y estos tienen el siguiente formato: 

r1—sn-4g57kn7d.googlevideo.com

Leyendo varios foros he visto que hay algunas personas que han generado listas publicas con estos cientos de estos subdominios, sin embargo, en mi caso, esas listas no me han servido de nada ya que desde el apartado “Query log” de Pi-Hole pude ver que los subdominios consultados con los anuncios eran muy diferentes de los que estaban en estas listas. 

Por lo tanto decidí  buscar a nivel de linea de comandos todos los subdominios de googlevideo.com que tuviesen un parecido con los que aparecían en esas listas. Con la siguiente secuencia de comandos pude sacarlos:

cat /var/log/pihole.log | egrep "r([0-9]{1,2}).*\.googlevideo\.com" | awk '{print $8}' | sort | uniq

El fichero pihole.log contiene todas las consultas DNS realizadas, si creamos una expresión regular como la que va después del pipe conseguimos obtener todos los subdominios consultados via DNS. Teniendo la salida del comando anterior lo podemos redirigir al fichero /etc/pihole/blacklist.txt, todos los cambios realizados en este fichero tienen efecto inmediato y pueden visualizarse acto seguido en el apartado:

Imagen 2. Pi-Hole: Blacklist

Con ello concluimos que si cargamos un video en YouTube, vemos un anuncio, y acto seguido sacamos el subdominio desde el cual se esta cargando dicho anuncio y lo metemos en la blacklist, dejaremos de ver cualquier anuncio que se nos sirva desde el susodicho subdominio.

SCRIPT EN BASH

Con esa idea de funcionamiento creé un script en bash para bloquear los anuncios de YouTube, el funcionamiento es el siguiente:

  • El script se puede instalar como servicio con la opción: install.
  • Durante la instalación el script copia todos los logs de Pi-Hole ubicados en /var/log y los lleva a /tmp
  • Allí los descomprime y con la expresión regular anterior, saca todos los subdominios de googlevideo.com que alguna vez hayas consultado. 
  • Todos los subdominios los añade al fichero /etc/pihole/blacklist.txt
  • Si tras la instalación ejecutamos: systemctl start ytadsblocker el script empezará a trabajar como un servicio y cada 4 minutos comprobará el fichero /var/log/pihole.log en busca de subdominios de googlevideo.com y si encuentra uno nuevo lo añadirá al fichero blacklist.txt
  • En el fichero /var/log/ytadsblocker.log se guardarán todos los subdominios nuevos que se añadan.

Desde que tengo el script funcionando no he tenido ningún problema y tengo menos anuncios en todos los dispositivos móviles de mi red. Si tuviese algún problema con ello, ya volveré por aquí para actualizar la entrada.

Por si interesa, el código fuente del script lo puedes encontrar en mi GitHub,  o por si quieres añadir algo que se me haya pasado. 

 

Anuncios

Adios anuncios con Pi-Hole y Raspberry Pi

pihole
Imagen 1. Pi-Hole

Hace poco he adquirido mi primera Raspberry, he cogido la última la 3B+, y la verdad que en menos de una semana ya le estoy sacando un gran provecho, sobre todo gracias a Pi-Hole.

Básicamente lo que hace esta maravilla es montar un servidor DNS que resuelve los dominios relacionados con publicidad con la ip 0.0.0.0, con ello conseguimos quitar toda la publicidad de la red de nuestra casa. Pi-Hole por defecto hace uso de 5 listas de dominios relacionados con publicidad en general y otros relacionados con malware, pero si queremos podemos añadir nuestras propias listas, o podremos añadir nuestros propias expresiones regulares para que, por ejemplo, bloquee todas las paginas web relacionadas con “porn“, al mas puro estilo de Squid. Continuar leyendo “Adios anuncios con Pi-Hole y Raspberry Pi”

Haciendo ficheros intocables con chattr en Linux

Una forma muy sencilla de evitar que los ficheros mas importantes de nuestro sistema sean modificados o borrados, es que solo nosotros como administradores tengamos permisos de escritura y lectura sobre dichos archivos; pero que ocurre cuando somos nosotros mismos que por error eliminamos un fichero vital, o que un script que hemos creado, por error elimine o modifique un fichero vital (?)… ahí es donde no nos sirve el hecho de que solo nosotros tengamos permisos… Una de las soluciones más rápidas que he descubierto es el comando chattr, con este comando haremos que nuestros directorios o ficheros sean intocables.

La sintaxis del comando para convertir el fichero “ficheroimportante.bkp” en intocable, sería: Continuar leyendo “Haciendo ficheros intocables con chattr en Linux”

Maquinas Virtuales en Android. Virtualizando DSL y Windows XP

Hace poco necesitaba una terminal de Linux a mano, necesitaba hacer  unas pruebas de ultima instancia con un script y como solo tenía a mano mi teléfono Android, busqué si podía hacer algo parecido y efectivamente, encontré una forma de virtualizar una maquina Linux en Android. Asi que a continuación voy a enseñar como hacerlo. El proceso que voy a mostrar lo he realizado usando la siguiente aplicación: Limbo

Cuando tengamos instalada la aplicación, lo siguiente que debemos tener es un archivo .iso con la imagen del sistema que queremos virtualizar, en mi caso usé la distribución DSL que solo pesa 50mb,  la cual se puede descargar desde aquí. Continuar leyendo “Maquinas Virtuales en Android. Virtualizando DSL y Windows XP”

Servidor de logs con rsyslog en CentOS

En esta entrada, voy a explicar como configurar un servidor de logs con rsyslog en CentOS. Hace poco me encontré con un problema en el que los logs de la maquina implicada, me hubiesen sido de gran ayuda, el problema es que después del fallo que tuvo, y tras reiniciarla, no habian logs disponibles ya que por que por alguna razón estos se habian corrompido.

Una forma muy sencilla de evitar este tipo de situaciones es tener un servidor de logs, lo cual es relativamente sencillo. Para empezar, en nuestro servidor de logs, debemos realizar los siguientes pasos:

Editar el fichero /etc/rsyslog.conf:

1
Imagen 1. Servidor rsyslog

Continuar leyendo “Servidor de logs con rsyslog en CentOS”

Yoigo te ofrece un Router con WiFi para ti y todos tus vecinos, pero pagas tú – 2018/08

fotonoticia_20180702140847_640

Pagas tú, sí, no me he equivocado en el titulo, si te has pasado a Yoigo hace poco, te habrán sorprendido con un router, del cual, si has sido curioso, al buscar información no has encontrado absolutamente nada. Yoigo esta ofreciendo a sus nuevos clientes el router NUCOM NC-WR764TGV el cual viene con el WPS activado por defecto, y como ya se sabe hace mucho tiempo WPS es vulnerable  a ataques de fuerza bruta, y se puede conseguir facilmente el PIN utilizado para la autenticación.

Continuar leyendo “Yoigo te ofrece un Router con WiFi para ti y todos tus vecinos, pero pagas tú – 2018/08”

Speech Recognition with Google Cloud API on Asterisk 15 and CentOS

asterisk-logo2
Image 1. Asterisk & Google ASR

After long time trying setting up Google ASR on Asterisk, but this time using CentOS, finally I got it. In this post I will try to explain how to do it. The first step we must to do, is install the next packet:

# yum -y groupinstall 'Development Tools'

The next step is install the dependencies for Asterisk 15.

# yum install wget ssh ncurses ncurses-devel uuid uuid-devel libuuid-devel jansson-devel libxml2-devel sqlite-devel

Now, we can move to Home and download the the version number 15 of Asterisk:

# cd ~
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz

Now we shall move to /usr/src, decompress the tarball and move to the new directory: Continuar leyendo “Speech Recognition with Google Cloud API on Asterisk 15 and CentOS”