Wireguard + Pihole en Docker

by Mayra Salas

Guía detallada para instalar la VPN WireGuard en un contenedor Dockers y la integración con Pi-Hole para tener una navegación segura , limpia y ultrarápida.

Requisitos para CyberPanel

Aunque Wireward recomienda obtener un mínimo de 1 GB de RAM, le recomiendo que obtenga al menos 2 GB de RAM. Esto te evitará problemas más adelante.

En primer lugar, cambie a usuario root

sudo -s

El siguiente paso es actualizar el sistema operativo.

apt update -y

Después de eso, actualice los paquetes usando el siguiente comando.

apt upgrade -y

una vez actualizado, procedemos a crear un directorio y un fichero .yml

mkdir -p docker/wireward+pihole
touch docker-compose.yml

Configuración de fichero docker-compose.yml

version: '3.7'

services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Lima #Cambiar de acuerdo a la zona horaria local
      - SERVERPORT=51820 
      - PEERS=5 #Cantidad de usuarios creados
      - PEERDNS=auto 
      - INTERNAL_SUBNET=10.13.13.0 
    volumes:
      - /root/wireguard:/config
      - /lib/modules:/lib/modules
      - /usr/src:/usr/src
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    dns:
      - 172.20.0.7
    restart: unless-stopped
    networks:
      containers:
        ipv4_address: 172.20.0.6

  pihole:
    container_name: pihole
    image: pihole/pihole:v5.7
    expose:
      - "55"
      - "67"
      - "80"
      - "443"
    ports:
      - 80:80/tcp
    environment:
      TZ: 'America/Lima'
      WEBPASSWORD: 'mundolinux' #Cambiar a una contraseña de preferencia
    volumes:
      - './etc-pihole/:/etc/pihole/'
      - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    cap_add:
      - NET_ADMIN
    restart: unless-stopped
    networks:
      containers:
        ipv4_address: 172.20.0.7

networks:
  containers:
    ipam:
      config:
        - subnet: 172.20.0.0/24

Luego de personalizar el archivo docker-compose.yml , inciamos los contenedores y verificamos

docker-compose up -d
docker ps -a

posterior a ello, podemos visualizar la interfaz de pihole ingresado a la dirección local del equipo (recomendamos no publicar el puerto de no ser necesario)

Creación de clientes VPS con Wireguard

En este punto, solo bastaria revisar los logs para visualizar los codigos QR que corresponden a los usuarios creados. cabe resaltar que esta información la declaramos al momento de editar nuestro fichero docker-compose.yml para ellos ingresamos el siguiente comando.

docker logs (Id de contenedor Wireguard 

Una vez listado, podemos scanear el codigo QR utilizando el aplicativo para teléfonos móviles Wireguard APP

Si queremos utilizar dicho servicio en nuestros equipos desktop, debemos descargar los archivos de configuración e importarlos en el aplicativo de Wireguard para escritorio Para ello nos dirigimos al directorio Wireguard y descargamos las carpetas peer que corresponden a los clientes VPN

para descargar la configuración de dichos clientes desde distribuciones linux o macOS pueden ejecutar el siguiente parametro con la dirección IP de su servidor

scp -r [email protected]:wireguard/peer5 /home/

para usuarios Windows, pueden descargarlo mediante el software WinsSCP

Related Posts

Leave a Comment