Cómo instalar e integrar WireGuard, Pi-Hole y DNSCrypt en nuestro NAS
Guía detallada para instalar la VPN WireGuard en tu NAS Synology además de integrarse con Pi-Hole y tener una navegación segura , limpia y ultrarápida.

Regístrate en HDS+
Tutoriales y soporte sobre sistemas NAS, Redes, Docker y SelfHosting.
Sin SPAM. Es gratuito. Ten acceso a todo el contenido.
En el siguiente tutorial os voy a explicar no solamente cómo instalar estas tres utilidades imprescindibles en vuestro NAS, sino también a integrarlas entre sí, de esta forma cuando estemos navegando a través de VPN con WireGuard, utilizaremos el servidor DNS de Pi-Hole para que nos continúe filtrando toda la publicidad.

Instalación de WireGuard
WireGuard no está compilado por defecto para DSM 7 por lo que deberemos de mirar primero cual es la arquitectura de la CPU de nuestro Synology. Una vez lo sepamos, nos bajamos el .spk correcto del siguiente enlace.
A continuación nos vamos a 'Centro de paquetes' - 'Instalación manual' y seleccionamos el .spk recién descargado.

Una vez instalado, volvemos a acceder vía SSH a nuestro NAS y ejecutamos los siguientes comandos:
sudo /var/packages/WireGuard/scripts/start
sudo wg-autostart enable wg0
Ya tenemos WireGuard correctamente instalado en nuestro Synology. Ahora vamos a instalar un complemento para acceder mediante interfaz gráfica. Para ello nos vamos a 'File Station' - 'docker' y creamos una nueva carpeta a la que llamaremos wg-easy y nos dirigimos a Portainer y añadimos un nuevo 'Stack'.
version: "3.8"
services:
wg-easy:
environment:
# ⚠️ Required:
# Change this to your host's public address
- WG_HOST=tuddns #ponemos nuestro DDNS sin puerto
# Optional:
- PASSWORD=tuPassword #la password superefectiva
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.9.1.x # Puedes cambiar el rango, pero deja el ultimo como x
- WG_DEFAULT_DNS=IPdetuNAS #IP de tu nas para que actue Pihole
- WG_MTU=1420
- WG_ALLOWED_IPS=0.0.0.0/0, 192.168.x.x/24 #el valor de tu red local. Sustituye "x.x" por tu rango. 192.168.x.x es opcional, ponlo si no puedes acceder a tus direcciones internas
- WG_PERSISTENT_KEEPALIVE=25
image: weejewel/wg-easy
container_name: wg-easy
volumes:
- /volume1/docker/wg-easy:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: always
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
Una vez ejecutado el stack, podremos acceder mediante el puerto elegido (en este caso el puerto 51821 y creamos nuestro primer Peer (Cliente).


Para conectarnos por ejemplo desde un iPhone, deberemos de utilizar la app WireGuard para iOS y escanear el código QR. Es un proceso muy rápido y sencillo.
Instalación de Pi-Hole
El siguiente paso va a ser instalar Pi-Hole y conectarlo con nuestro NAS. Primero hemos de crear las carpetas dentro de 'File Station - docker'. Creamos la carpeta "pihole-unbound" y dentro de esta creamos tres subcarpetas:
- "dns", y dentro dentro de esta otra subcarpeta llamada config y crearemos un archivo vacío con el nombre resolv.conf
- dnsmasq.d-configs
- pihole-configs
Una vez creadas las carpetas, volvemos a Portainer y creamos un nuevo Stack:
version: '3.7'
#volumes:
# etc_pihole-unbound:
# etc_pihole_dnsmasq-unbound:
services:
pihole:
container_name: pihole_oficial
image: pihole/pihole:latest
network_mode: host
hostname: pihole_oficial
dns:
- # IP DEL NAS
ports:
- 443:443/tcp
- 54:54/tcp
- 54:54/udp
- 80:80/tcp
environment:
ServerIP: #IP DEL NAS
TZ: Europe/Madrid # la zona horaria donde vivas
WEBPASSWORD: # LA PASSWORD Q QUIERAS
WEB_PORT: 4321
DNS1: 127.0.0.1#5335 # Hardcoded to our Unbound server
DNS2: 127.0.0.1#5335 # Hardcoded to our Unbound server
DNSSEC: "true" # Enable DNSSEC
volumes:
- /volume1/docker/pihole-unbound/dnsmasq.d-configs:/etc/dnsmasq.d:rw
- /volume1/docker/pihole-unbound/pihole-configs:/etc/pihole:rw
- /volume1/docker/pihole-unbound/dns/config/resolv.conf:/etc/resolv.conf:rw
restart: always
Una vez ejecutado el Stack, accederemos mediante: https://IPdetuNAS:4321/admin y accedemos mediante la contraseña introducida en la creación del stack.

Seguidamente nos dirigimos a Settings - DNS y dejamos los ajustes tal y como os muestro en las siguientes dos imágenes:


Ya tenemos también a Pi-Hole correctamente instalado en nuestro Synology, para comprobar que funciona y empieza a filtrar y bloquear la publicidad nos fijaremos en la pantalla principal la cual nos indica la cantidad de Queries procesadas / bloqueadas:

Instalación de DNSCrypt
Para acabar el tutorial, añadiremos un plus de privacidad en nuestra conexión, para ello:
- Descargamos la versión de DNSCrypt adaptada a la arquitectura de nuestra CPU desde el siguiente enlace.
- Descargamos la versión de SynoEdit adaptada también a nuestra arquitectura desde el siguiente enlace.
Procedemos a la instalación manual de ambos paquetes a través del Centro de paquetes.
Una vez instalados, abrimos SynoEdit y seleccionamos "dnscrypt-proxy" y seleccionamos el archivo "dnscrypt-proxy.toml"

- Descomentamos la línea 31 de "server _names" y dejamos únicamente 'cloudfare'.
- Cambiar el valor de require_dnssec a true.
- Una vez modificado estos dos parámetros, pulsamos en Save y ya nos faltará únicamente reiniciar el contenedor de Pi-Hole para que se apliquen los cambios.
En el próximo tutorial os explicaré como configurar vuestro Router Asus para que trabaje bajo la DNS Pi-Hole de nuestro NAS y bloquee la publicidad en todos los dispositivos de nuestra Red Local, sin tener que ir añadiendo los DNS manualmente a cada dispositivo de forma manual.
¡A disfrutarlo!