Servidor Proxmox en Hetzner junto con opnsense
Punto de partida
Quería seguir aprendiendo y haciendo pruebas con máquinas virtuales, pero tenía varios inconvenientes:
- No disponía de un mini PC o servidor físico dedicado.
- No quería ejecutar las máquinas virtuales en mi ordenador principal.
- Si apagaba mi PC, todas las máquinas virtuales y servicios también se apagaban.
- Buscaba una solución que pudiera mantener funcionando de forma continua.
- El objetivo principal era seguir ampliando conocimientos de virtualización, redes y sistemas.
Después de comparar diferentes proveedores, opté por Hetzner por su relación entre precio y recursos disponibles.
Instalación de Proxmox
Una vez contratado el servidor, el siguiente paso fue instalar Proxmox VE.
El proceso inicial fue:
- Acceder al panel de administración de Hetzner.
- Activar el Rescue Mode del servidor.
- Reiniciar el servidor en modo Rescue.
- Acceder al servidor mediante SSH.
- Realizar desde SSH la instalación de Proxmox VE.
- Configurar posteriormente la red y el almacenamiento.
Configuración de los discos
Mi servidor dispone de dos discos, por lo que durante la instalación de Proxmox podía elegir entre diferentes configuraciones:
- Utilizar los dos discos de manera independiente.
- Aprovechar toda la capacidad disponible.
- Configurarlos en modo espejo.
- Utilizar RAID 1 para disponer de redundancia.
Con RAID 1, la información se almacena en ambos discos. De esta forma, si uno de ellos falla, todavía se dispone de una copia de los datos en el otro disco.
Para esta parte de la instalación utilicé también un vídeo como referencia para seguir el proceso paso a paso.
Objetivo: utilizar OPNsense como router virtual
Una vez instalado Proxmox, quería desplegar una máquina virtual con OPNsense.
Los principales objetivos eran:
- Utilizar OPNsense como router/firewall virtual.
- Crear una red separada para las máquinas virtuales.
- Configurar acceso mediante VPN.
- Poder conectarme desde fuera a la red de las máquinas virtuales.
- Administrar las máquinas como si estuviera conectado directamente a su misma red.
- Centralizar parte de la configuración de red y seguridad.
Problema encontrado
Durante la configuración surgió un problema importante:
- OPNsense no conseguía comunicarse correctamente utilizando la misma configuración de red asociada a la IP principal de Proxmox.
Después de:
- Buscar información en foros.
- Consultar documentación.
- Revisar la documentación de Hetzner.
- Probar diferentes configuraciones de red.
Llegué a la conclusión de que era más conveniente utilizar una segunda dirección IP pública.
Solución: segunda IP pública
La arquitectura quedó separada de la siguiente forma:
- IP pública principal: administración de Proxmox.
- Segunda IP pública: conexión WAN de OPNsense.
- Red interna: máquinas virtuales detrás de OPNsense.
Esto permite:
- Separar la administración de Proxmox del tráfico gestionado por OPNsense.
- Reducir posibles conflictos de red.
- Tener una arquitectura más ordenada.
- Facilitar la configuración del firewall.
- Facilitar posteriormente la configuración de VPN.
Importante: MAC virtual en Hetzner
Al contratar una segunda IP en Hetzner hay que tener en cuenta un detalle importante.
Para utilizar esa IP directamente en una máquina virtual:
- Acceder al panel de Hetzner.
- Seleccionar la segunda IP.
- Solicitar/generar una MAC virtual asociada.
- Configurar esa MAC en la tarjeta de red virtual de la máquina de OPNsense.
Esta MAC permite que Hetzner identifique correctamente el tráfico de la IP adicional asociado a la máquina virtual.
Configuración de red de Proxmox
La configuración principal de red de Proxmox se encuentra en:
/etc/network/interfaces
En este archivo se definen, entre otras cosas:
- Interfaces físicas.
- Bridges de Proxmox.
- Dirección IP del servidor.
- Gateway.
- Redes utilizadas por las máquinas virtuales.
- Interfaces que posteriormente utilizará OPNsense.
A continuación, muestro la configuración utilizada en mi servidor:

Fichero /etc/network/interfaces de Proxmox
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!
source /etc/network/interfaces.d/*
### network interface settings
auto lo
iface lo inet loopback
# Interfaz física
iface enp5s0 inet manual
# Bridge WAN: IP principal del host Proxmox
auto vmbr0
iface vmbr0 inet static
address ip_principal_hertzner
gateway ip_adicional
bridge-ports enp5s0
bridge-stp off
bridge-fd 0
pointopoint gateway
# Evita el error de "Redirect Host"
post-up sysctl -w net.ipv4.ip_forward=1
post-up sysctl -w net.ipv4.conf.all.send_redirects=0
post-up sysctl -w net.ipv4.conf.enp5s0.send_redirects=0
# Bridge LAN: Red interna detrás de OPNsense
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Arquitectura final
De forma simplificada, la infraestructura quedó así:
Internet → Hetzner → Proxmox → OPNsense → Red interna → Máquinas virtuales
Con esta configuración conseguí tener un entorno remoto disponible continuamente para seguir haciendo pruebas de:
- Virtualización.
- Redes.
- Firewalls.
- VPN.
- Linux.
- Proxmox.
- OPNsense.
- Administración de servidores.