BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

💡

Servidor DNS público propio cifrado con DnsOverTls , Unbound y Fail2ban en Raspberry bloqueando publicidad , malware y phishing

ppmanu
2

He simplificado la instalación y he añadido Unbound para mayor privacidad.

Los beneficios comparado con usar WIREGUARD + ADGUARD HOME O PIHOLE + UNBOUND, son varios : ahorro de batería , mas velocidad tanto en la carga de paginas web como a la hora de bajar archivos, menos calentamiento del móvil ya que las paginas son mas ligeras y baja menos megas, a cambio de no ser tan seguro pero manteniendo actualizado dietpi y gracias a la protección de fail2ban y adguard home se minimiza mucho la exposición a ataques.

Bajamos de DietPi la iso ARMv6 32-bit y con el Etcher flasheamos la micro SD, la metemos en la Raspberry y la encendemos.

Hay que asignarle una IP estatica, en mi caso la 192.168.1.136.

Entramos por ssh y por defecto el usuario es root y el pass es dietpi.

Nada mas arrancar nos pide que cambiemos el pass (usad uno complejo y único).

Una vez arrancado vamos a install y se instala y actualiza el paquete básico.

Instalando AdGuard Home

Instalamos Adguard Home usando el comando dietpi-software vamos a search buscamos adguard y luego vamos a install nos preguntara si queremos añadir Unbound le decimos que si, una vez ha finalizada la instalación reiniciamos la Raspberry con sudo reboot.

Instalando Certbot

Vamos a obtener el certificado TLS.

Primero hacemos sudo apt update, luego instalamos Certbot con sudo apt install certbot.

Obtenemos el certificado con una DNS challenge con sudo certbot certonly --manual --preferred-challenges=DNS -- nos dará un código que es el que tenemos que añadir cuando hagamos el dns challenge en {TXT_VALUE} la EFF nos pide el correo para avisarnos cuando caduque el certificado a los 90 días, e introducimos el dominio que hemos creado en duckdns.org. Antes de darle al enter hay que entrar en https://www.duckdns.org/update?domains={DOMAIN}&token={TOKEN}&txt={TXT_VALUE} cambiando {DOMAIN} por nuestro dominio (por ejemplo prueba.duckdns.org) , {TOKEN} por él que sale en duckdns y {TXT_VALUE} por el que nos da CERTBOT.

Una vez creados los certificados entramos en AdGuard Home (la contraseña es la que hemos puesto para software al arrancar por primera vez dietpi) , vamos a SettingsEncryption settings y activamos la casilla de Encryption y también la casilla de https , (aquí hay un bug al haber instalado de forma automática el Adguard Home si introducimos la localización de los certificados nos dará error hay que copiar y pegar el contenido de fullchain.pem y de privkey.pem ) para hacerlo hay que entrar en la carpeta donde están los archivos /etc/letsencrypt/live/prueba.duckdns.org/ lanzamos el editor nano con nano fullchain.pem y copiamos el contenido en SettingsEncryption settings en certificates (ojo que son tres bloques) y hacemos lo mismo con la privkey.pem la introducimos en private key , le damos a Save (puede que nos de error, no pasa nada).

Abrimos solo el puerto 853 TCP hacia la Raspberry. Reiniciamos la Raspberry con sudo reboot.

Probando que funciona

Ya podemos en el móvil Android buscar DNS privado e introducir el dominio que hayamos puesto, por ejemplo prueba.duckdns.org. Si sale conectado ya bloquea publicidad malware y phishing. Y en el caso de iOS Adguard Home te genera el perfil entrando en Setup Guide y luego en DNS PRIVACY abajo del todo seleccionas iOS and macOS CONFIGURATION introduces el dominio y eliges DNS OVER TLS y le das a DOWNLOAD CONFIGURATION FILES te lo envías al correo del móvil iOS o al MAC y lo instalas.

Más seguridad

Para asegurar mas la Raspberry instalamos Fail2ban y lo modificamos a un máximo de 6 intentos y con un ban de 60000000 segundos (694 días) y ademas activamos el modo Aggressive .

Luego hacemos un cron para que la IP se actualize sola nos logueamos en duckdns.org vamos a Install, elegimos el dominio y nos sale paso a paso cómo hacerlo (esto no lo pongo porque sale paso a paso que comandos hay que meter) y con eso ya tenemos nuestro servidor DNS público propio (AdGuard Home también tiene una protección razonable para que no se aprovechen para hacer un ataque DNS amplificado).

Comentadme por favor que os parece, que vulnerabilidades y errores veis y como mejorarlo. De momento llevo 24 horas y 0 ips raras, 0 intentos de hackeos y 0 ips baneadas por fail2ban.

pepejil

¿Y por qué no lo compartes de primeras en vez de preguntar?

🗨️ 1
ppmanu
1

Hola tenia la duda si interesaba o no saludos.

Bramante
2

Con "servidor público", ¿quieres decir exponer el puerto 53 TCP y/o UDP a la jungla?

🗨️ 3
ppmanu

Hola solo el 853 que solo aceptaria DOT encriptado saludos.

🗨️ 2
Bramante

No es buena idea dejar un servidor DNS recursivo al acceso de todo Dios. El que quiera eso, ya existen cosas como NextDNS que filtra y lo hace muy bien.

El que lo quiera hacer en su casa, que se monte Pi-hole + Unbound o la solución que mejor le acomode, pero los puertos, solo accesibles desde LAN.

Lo del tema del manual, seguro que le sirve de ayuda a alguien, adelante con él.

🗨️ 1
ppmanu

Hola mañana por la mañana lo subo y me indicais donde la he cagado :D saludos.

MasterL

Yo uso un servidor con IP fija sobre el que he montado:

openbsd

pf filter

wireguard en tunel dividido

unbound con lista RPZ

🗨️ 2
ppmanu

Hola yo usaba pihole + wireguard + unbound pero me cambie el movil por un realme y me cierra la VPN cuando le da la gana , no me ha quedado otra opcion que esta , saludos.

🗨️ 1
MasterL

Ah vaya, pues q cabroncete tu movil

Lo bueno de la tecnologia q siempre hay soluciones

JGeek00

Pi-hole?

mateodd

Pienso que podría ser un tutorial interesante

🗨️ 1
ppmanu

Hola hecho cualquier duda o mejora me decís, saludos.

Josh

Te he formateado y estructurado el texto para hacerlo legible. Modifica lo que veas que haya hecho mal.

🗨️ 3
ppmanu

Hola muchas gracias te ha quedado que ni dios :D saludos.

ppmanu

Hola lo he simplificado aun mas y para mas seguridad le he añadido unbound , esta tarde actualizo la guia, saludos.

ppmanu

Hola la siguiente guía que voy ha hacer es "Como no usar usuarios teleco demandando a tu compañía de telefonía móvil y en el caso de que tengas razón y pruebas ganar el juicio y la correspondiente indemnización" ¿Dónde la posteo? Gracias ibb.co/8rb4NTy