Portada! Tutorial: DNS para bloquear ADS en tu red + VPN para compartir Netflix con tus amigos en distinta dirección

Br0wl!

Capo
Se incorporó
19 Agosto 2019
Mensajes
219
BB09940F-2890-47D5-8169957268DC69FC_source.png


Había agregado este tutorial a mi post del dell wyze, pero me parece que puede ser de interes para varios asi que le vamos a dar un poco de visibilidad.

Acabo de terminar de configurar Pi-hole, basicamente genera un dns en el servidor que permite bloquear anuncios en las paginas.
En principio probé agregando el dns de mi servidor (posterior a instalación) en cada host conectado apuntando a la ip del server.
Luego me aventuré en tratar de utilizar el dns a traves de mi router (directo) y que se filtre la publicidad de todo el trafico en mi router apuntando el dns al servidor.

Adicional a esto instalé Wg-easy (Wireguard) que es una vpn que nos permitirá poder conectarnos a nuestra red interna a traves de vpn en cualquier dispositivo. Esto sirve bastante, por ejemplo, si quiere compartir netflix con alguien que no está en su red y que la aplicación no les diga que esta en otro domicilio (yo lo hago para compartirle netflix a mi mamá por ejemplo).

Para ello, hice esto

En Docker instalé Pi-hole y Wg-Easy

1711982031538-png.35905


Apuntar dns a tu ip:
Para ello ir a Duck DNS (Puede utilizar otro), me registré con mi cuenta google y eligen un nombre para su DNS
1711981858187-png.35904


Hacen clic en "add domain" y listo (idealmente no cerrar la pagina dado que utilizaran estos datos en la configuración de docker-compose.

Configuración Docker-Compose con Pi-hole y Wireguard:
para ello ir a la web de configuración/instalación de Pi-hole ( https://github.com/wg-easy/wg-easy/wiki/Using-WireGuard-Easy-with-Pi-Hole ) y copiar este bloque de codigo:

YAML:
version: "3.8" ### [COLOR=rgb(184, 49, 47)]La Versión ya es un opcional en el docker-compose en versiones mas nuevas (igual yo lo sigo utilizando)[/COLOR]

services:
  wg-easy:
    environment:
      # ⚠️ Change the server's hostname (clients will connect to):
      - WG_HOST=myhost.com ####  ***AQUI DEBEN INGRESAR SU DIRECCIÓN DE DUCKDNS****

      # ⚠️ Change the Web UI Password:
      - PASSWORD=foobar123  ### *** GENERAR UN PASSWORD PARA LA WEBUI DE WG-EASY (EL QUE UDS QUIERAN)

      # 💡 This is the Pi-Hole Container's IP Address
      - WG_DEFAULT_DNS=10.8.1.3
      - WG_DEFAULT_ADDRESS=10.8.0.x
    image: ghcr.io/wg-easy/wg-easy
    container_name: wg-easy
    volumes:
      - ~/.wg-easy:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    networks:
      wg-easy:
        ipv4_address: 10.8.1.2

  pihole:
    image: pihole/pihole
    container_name: pihole
    environment:
      # ⚠️ Change the Web UI Password:
      - WEBPASSWORD=foobar123 ### *** GENERAR UN PASSWORD PARA LA WEBUI DE PI-HOLE (EL QUE UDS QUIERAN)
    volumes:
      - '~/.pihole/etc-pihole:/etc/pihole'
      - './.pihole/etc-dnsmasq.d:/etc/dnsmasq.d'
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "5353:80/tcp"
    restart: unless-stopped
    networks:
      wg-easy:
        ipv4_address: 10.8.1.3

networks:
  wg-easy:
    ipam:
      config:
        - subnet: 10.8.1.0/24

Importante, solo deben modificar los campos que les dejé comentados.
Estos 3 campos serían el DNS que registraron en DuckDNS y ambos password tanto para Wireguard como para Pi-hole.

Otro punto importante, si ya tienen datos en Docker-compose deben asegurarse de que por ejemplo los networks queden dentro de los otros networks que tengan ya creados. Siempre es importante en estos archivos tener alineadas las lineas o les arrojará errores de levantamiento al intentar levantar el docker.

pueden utilizar https://www.yamllint.com/ para validar sus archivos de configuración YAML.

ahora debemos levantar el docker compose, para ello utilizar el comando docker compose up -d
pueden validar con el comando docker ps para validar que esten levantados correctamente los procesos.

Proximo paso abrir puerto UDP 51820 en la dirección ip de tu servidor para wireguard esto sirvirá para la conexión a vpn en tu router (aqui no explicaré mucho dado que cada router es diferente).


Les dejo un ejemplo de como abrir el puerto en el router de movistar donde
Dirección ip: sería la dirección IP de tu Servidor

1711983393617-png.35907


Ahora ya deberiamos poder acceder a nuestro Pi-hole (Si es que todo salió bien).
Para ello abrimos nuestro navegador
Ingresamos a http://[Dirección Ip de nuestro servidor]:5353/admin
nuestro password es el que configuramos en nuestro docker compose

1711983609209-png.35908


La pantalla de bienvenida nos mostrará un dashboard de bloqueos, actualmente funcionando desde las 23hrs aprox tengo una tasa de bloqueo de un 14.5% del tráfico de mi red

1711984234380-png.35912


Una vez ingresados tenemos 2 alternativas.

1. Agregar nuestro DNS a cada uno de nuestros hosts conectados, configurando el dns de forma manual (agregando la ip del servidor)

Por ejemplo en MacOS, vamos a CONFIGURACION - RED - (SELECCIONAMOS NUESTRA INTERFAZ UTILIZADA WIFI O RED) - DETALLES - DNS
y en el boton + podemos agregar nuestro dns (ip del servidor).

1711990820327.png


una vez agregado, reiniciamos la conexión (pueden apagar y encender el wifi y con eso bastará).

Para probar pueden utilizar la web de elmundo.es


Sin Pi-hole:
1711983912192-png.35910


Con Pi-Hole:
1711984048033-png.35911


2. La otra alternativa es agregar el dns a tu Router, de esta manera podrás filtrar todo el trafico de ads en tu red sin necesidad de configurar el dns de forma manual en cada host.
Para esto, les comento que yo tengo Movistar, pero utilizo mi router Huawei AX3 QuadCore para la conexión de mi ISP, es decir, tengo configurada mi ppoe en mi router asi que los pasos que mostraré son realizados en esta interfaz (Router Huawei AX3 QC).

- Vamos a la configuración del router
- Nos logeamos
- "Conectarse a internet"
1711984567273-png.35913


una vez guardado, debemos configurar IPV6 y aqui existe un problema, dado que el router por defecto no me permitía configurar DNS para ipv6 (Viene un combobox estatico bloqueado en automatico).

Por eso tuve que meter mano ahi.

Voy a "MÁS FUNCIONES"
"AJUSTES DE RED"
"IPv6"

Como pueden notar, mi router por defecto el combobox de "Acceso a dns" esta bloqueado en automático.
Para solucionar esto presioné F12 para abrir el devtools (en google chrome)

1711985084538-png.35914


Accedemos a

"SOURCES"
"TU DIRECCION IP"
"VIEWS"
"IPV6"
SELECCIONAN EL ARCHIVO DENTRO DE LA CARPETA Y PRESIONAN BUSCAR EN EL CODIGO ( EN MI CASO CON CMD+F)

buscamos los siguientes valores:

toIpv6WanPostdata.X_IPv6DNSOverrideAllowed
toIpv6WanPostdata.X_IPv6DNSServerOne
deben configurarlos de la siguiente manera:
toIpv6WanPostdata.X_IPv6DNSOverrideAllowed=true;

toIpv6WanPostdata.X_IPv6DNSServerOne="IPV6 DE TU SERVIDOR" (AQUI DEBEN INGRESAR SU DIRECCION IPV6 DEL SERVIDOR, SI NO LA SABEN PUEDEN CONSULTARLA EN LA TERMINAL DE LINUX CON EL COMANDO ifconfig -a y buscan su adaptador de red utilizado. por lo general, deberia ser una dirección que empieza con fe80::5xxx:xxxx:xxxx)

1711985522932-png.35915

EN MI CASO ES LA SEGUNDA (LA QUE EMPIEZA POR fe80::5648:10fxxx)

una vez modificados los valores le damos a cmd+s(MacOS) o control + s (Windows) y aparecerá un triangulo en la pestaña del archivo (eso es normal)

1711986383713-png.35918


Cerramos y damos guardar en la interfaz web del router (pestaña ipv6 que nos encontrabamos).

Importante destacar, que cada vez que entremos a la configuración y modifiquemos algo tendremos que realizar este paso dado que el archivo se sobreescribirá cada vez que ingresemos a la config del router.

Ahora podremos desactivar el dns manual en cada host, y podremos navegar normalmente desde cualquiera de nuestros dispositivos conectados a la red utilizando el dns.

Otro punto importante en el proceso es generar cron para las ips dinamicas que nos entrega nuestro proveedor de internet. Esto dado que nuestro DNS (Duckdns en mi caso) quedó enlazado a mi ip al momento de solicitar el dns.

Para ello podemos hacer lo siguiente:

Vamos a la pagina de DuckDNS
Nos logeamos
una vez logeados vamos en el menu superior a install
Seleccionamos nuestro sistema operativo (en mi caso linux cron)
Abajo en "First Step" seleccionamos nuestro dominio previamente creado e insertamos los registros de consola que aparecen automaticamente para nuestro dominio. Esto finalmente lo que hará es que ejecutará a traves de cron cada 5 minutos una consulta a la IP publica para actualizarla cuando sea necesario.
1711988183231-png.35919



Para Finalizar, explicaré como funciona Wireguard.

Wireguard es una VPN que nos permitirá, por ejemplo, compartir netflix con nuestra familia sin necesidad de comprar direcciones dado que a traves de esta VPN netflix identificará las tvs como internas de la Red.

Para ello vamos a nuestro navegador favorito e ingresamos la "Ip de nuestro servidor":51821 (dado que en el primeros pasos ya instalamos Wireguard a traves de Wg-Easy

Ingresamos la contraseña que creamos en el archivo docker-compose

Una vez Logeados veremos una pantalla como esta:


1711988465135-png.35920


Explico cada uno de los puntos marcados:
1. El codigo QR permite configurar la VPN utilizando el codigo QR de nuestro telefono por ejemplo en la aplicación Wireguard (PlayStore, Appstore)
2. Archivo .conf, este archivo es importable por la aplicación de wireguard. Este es el que yo utilizo para configurar la vpn en TV Box, televisores o Computadores.
3. Permite agregar nuevos dispositivos a la conexión, recuerda que es una por cada dispositivo.

Para configurarlo en la casa de tu mamá por ejemplo, vas al tv box, descargas Wireguard en su dispositivo, abres la aplicación, importas el archivo .conf que creaste en la webui y listo, ahora te puedes conectar a la vpn en el dispositivo de tu madre y podrá conectarse a Netflix como que estuviera en tu casa. Cabe destacar que esto si afecta de cierta manera la velocidad de conexión del equipo remoto conectado y necesitas conectar o desconectar cada vez que quieras entrar o salir de la vpn.
 
Última modificación por un moderador:

Br0wl!

Capo
Se incorporó
19 Agosto 2019
Mensajes
219
Mil gracias a uds!... si alguien tiene dudas podemos revisarlas (no soy experto) pero todo tiene solución
 

Br0wl!

Capo
Se incorporó
19 Agosto 2019
Mensajes
219
que sucede con los ISP que utilizan CG NAT ?
No deberias tener problemas, dado que la ip publica de salida es la que tendrás en el dns configurada y con el cron configurado que se actualice cada 5 minutos capturará cualquier cambio de esta. ( yo igual lo bajé a 3 minutos)
 

Sago7

Tibetan Mod
Miembro del Equipo
MOD
Se incorporó
5 Julio 2006
Mensajes
6.151
Voy a tantear lo de Wireguard.

En mi red local tengo una raspi con Pi-Hole. También uso Docker con Portainer, pero eso lo tengo en otra máquina.
 

cliobrando

Capo
Se incorporó
6 Mayo 2021
Mensajes
202
en serio no hay forma? yo ahi si que me declaro un incompetente
En CGNAT la ip publica la maneja el ISP, la única forma de establecer una vpn con CGNAT es usando un server externo que haga de relay. O sea igual hay otras formas, pero igual dependes de un externo.
 

cliobrando

Capo
Se incorporó
6 Mayo 2021
Mensajes
202
y aqui en chile que isp aplican CGNAT?
VTR: por defecto te dejan con modo NAT, puedes pedir que te pasen a modo bridge (te asignan una ip publica)
Movistar: por defecto en modo NAT, pero puedes habilitar en el router el modo server PPPoE que te da una ip publica.
WOM: creo que solo tiene CGNAT.
Probablemente la situacion de los demas proveedores sea parecida.
 

MaxSF

Capo
Se incorporó
17 Julio 2009
Mensajes
386
VTR: por defecto te dejan con modo NAT, puedes pedir que te pasen a modo bridge (te asignan una ip publica)
Movistar: por defecto en modo NAT, pero puedes habilitar en el router el modo server PPPoE que te da una ip publica.
WOM: creo que solo tiene CGNAT.
Probablemente la situacion de los demas proveedores sea parecida.
Entel también aplica CGNAT para IPv4, pero tiene una IPv6 pública. Se puede solicitar que te den IPv4 pública, pero no es permanente (se restablece tras unos meses y hay que volver a solicitarla).
 

Eliezar

mi gato :D
Se incorporó
1 Febrero 2007
Mensajes
4.848
la gracia de wireguard es que eres tu el servidor , no pasa por terceros. imagino q tailscale y todas esas vainas basadas en wireguard y otros son servicios de terceros , por ende pasar por servidores donde te miran todo aunque ellos digan q no.

en cuanto a velocidad y latencia si tus extremos tienen buena velocidad , es la vpn mas rapida.

En una vpn wireguard entre equipos en chile con cuea te suma a lo mas 10 ms
 

Br0wl!

Capo
Se incorporó
19 Agosto 2019
Mensajes
219
aqui encontre alguna doc sobre cgnat y wireguard (no se si sirva dado que no tengo como probarla)

 

cliobrando

Capo
Se incorporó
6 Mayo 2021
Mensajes
202
la gracia de wireguard es que eres tu el servidor , no pasa por terceros. imagino q tailscale y todas esas vainas basadas en wireguard y otros son servicios de terceros , por ende pasar por servidores donde te miran todo aunque ellos digan q no.

en cuanto a velocidad y latencia si tus extremos tienen buena velocidad , es la vpn mas rapida.

En una vpn wireguard entre equipos en chile con cuea te suma a lo mas 10 ms
El problema no son los terceros, el problema es configurar y habilitar todo eso para poder conectarse a una vpn que tienes en la casa tras un CGNAT, lo cual probablemente no sea necesario para la mayoría de las personas.
Si realmente necesitas tener una VPN, o servicios que si o si debes conectarte desde fuera, contratas un ISP que lo permita o un enlace dedicado.

Tener un servicio de VPN instalado en la casa tampoco lo vuelve automáticamente más seguro.
 

Eliezar

mi gato :D
Se incorporó
1 Febrero 2007
Mensajes
4.848
El problema no son los terceros, el problema es configurar y habilitar todo eso para poder conectarse a una vpn que tienes en la casa tras un CGNAT, lo cual probablemente no sea necesario para la mayoría de las personas.
Si realmente necesitas tener una VPN, o servicios que si o si debes conectarte desde fuera, contratas un ISP que lo permita o un enlace dedicado.

Tener un servicio de VPN instalado en la casa tampoco lo vuelve automáticamente más seguro.
no tiene mucho sentido pagar un enlace dedicado para entusiastas siendo que tenemos enlaces muy rapidos.

una vps cualquiera que cueste menos de 10 lukas es suficiente , en un rato tienes levantada wireguard.

Las redes 4g todas me parece q usan CGNAT asi mismo los ISP de casa como mundo los otros q comentaros mas arriba.
 

cliobrando

Capo
Se incorporó
6 Mayo 2021
Mensajes
202
no tiene mucho sentido pagar un enlace dedicado para entusiastas siendo que tenemos enlaces muy rapidos.

una vps cualquiera que cueste menos de 10 lukas es suficiente , en un rato tienes levantada wireguard.

Las redes 4g todas me parece q usan CGNAT asi mismo los ISP de casa como mundo los otros q comentaros mas arriba.
A lo que voy, es que un probablemente un usuario cualquiera no necesita wireguard, menos la paja de estar contratando una VPS para instalarla.
 
Subir