En el post anterior vimos cómo levantar este blog, pero hoy quiero bajar un nivel más y hablar de donde vive realmente. Todo lo que ves aquí reside en una máquina a la que he bautizado como Bastion.
No es un servidor de rack de última generación, sino un veterano Acer Aspire V5 que ha encontrado una segunda vida (y mucha más acción) como cerebro de mi red local. Corriendo sobre Ubuntu 26.04, Bastion no solo aloja este blog, sino que cumple una misión crítica: ser la única puerta de entrada y el principal filtro de seguridad de mi hogar.
El Hardware: Reciclaje con propósito
Como podéis ver en el fastfetch , estamos aprovechando un procesador AMD A10-5757M con 8GB de RAM. Para ser una máquina de gestión, va sobrada de recursos, manteniendo un consumo contenido y un rendimiento sólido para mover varios contenedores Docker en paralelo.

Misión 1: Acceso seguro desde el exterior (VPN)
La primera regla del club de la seguridad: no abras puertos innecesarios. Para poder gestionar mi red desde cualquier lugar del mundo sin exponer servicios críticos, Bastion corre una VPN.
Esto me permite estar en una cafetería en Madrid y sentirme como si estuviera conectado directamente al router de mi casa.
Se basa en openvpn-server levantado con pivnp( originalmente pensado para la pi ), un script que instala y gestiona todo, que se pueda usar en sistemas basados en Debian/Ubuntu :
Web:

Github:
Documentación:


Misión 2: Tráfico y exposición (Nginx Proxy Manager)
Para los servicios que sí necesito que sean públicos (como este blog, mi instancia de Nextcloud o Grocy), utilizo Nginx Proxy Manager (NPM). Es el encargado de recibir las peticiones, gestionar los certificados SSL de Let's Encrypt y redirigir el tráfico al contenedor correspondiente.
Gracias a NPM, puedo tener subdominios limpios sin pelearme con archivos de configuración de Nginx a pelo cada vez que añado un servicio.




docker-compose.yml
# Ejemplo de cómo tengo orquestado NPM en mi docker-compose
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
environment:
TZ: "Europe/Madrid"
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencryptMisión 3: El filtro de la red (Pi-hole)
Bastion también es el "policía" del tráfico DNS. Con Pi-hole, me aseguro de que toda la red local esté libre de telemetría innecesaria y anuncios a nivel de red. No solo mejora la privacidad, sino que acelera la navegación al no tener que cargar basura publicitaria.


Lo tengo levantado con Docker:
docker-compose.yml
# Ejemplo de cómo tengo orquestado pihole
version: "3"
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
# Es vital mapear el puerto 53 en TCP y UDP para el DNS
ports:
- "53:53/tcp"
- "53:53/udp"
- "8080:80/tcp" # Accederás a la web por el puerto 8080
environment:
TZ: 'Europe/Madrid'
# IP de tu portátil en la red local (ayuda a Pi-hole a configurarse)
FTLCONF_LOCAL_IPV4: '192.168.20.38'
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
# Capacidad para que Pi-hole gestione correctamente la red
cap_add:
- NET_ADMIN
restart: unless-stopped
Misión 4: Defensa activa con Fail2Ban
Exponer servicios a internet es como poner una diana en tu IP. Para mitigar los intentos de fuerza bruta, tengo a Fail2Ban vigilando constantemente los logs de acceso de Nginx Proxy Manager.
Si alguien intenta "adivinar" el login de mi Nextcloud más de la cuenta, Fail2Ban le corta el paso directamente a nivel de firewall (iptables/nftables). Es la capa de "bouncer" que toda infraestructura necesita.

# Mi jail personalizada para Fail2ban
[nginx-proxy-manager]
enabled = true
port = http,https
filter = nginx-proxy-manager
# Apuntamos a todos los archivos de acceso de los proxy hosts y al de por defecto
logpath = /root/docker/nginx_proxy_manager/data/logs/proxy-host-*_access.log
/root/docker/nginx_proxy_manager/data/logs/default-host_access.log
maxretry = 3
findtime = 600
bantime = 3600
action = iptables-allports[name=npm, chain=DOCKER-USER]

Monitorización con Prometheus y Grafana ( fail2ban_exporter)

Conclusión
Bastion es la prueba de que no necesitas hardware de grado empresarial para tener una red segura y profesional. Con un poco de Linux, Docker y las herramientas adecuadas, cualquier portátil viejo puede convertirse en una fortaleza.




