Servidor Bastión · 12 min read · Sep 09, 2025
Cómo configurar un servidor Bastión con Warpgate en Debian

Un servidor Bastión se refiere a una computadora/máquina/servidor que está diseñado y configurado específicamente para resistir ataques en redes informáticas. La funcionalidad del servidor Bastión es similar a un proxy o balanceador de carga para aplicaciones. Permite acceder a computadoras o servidores que se encuentran en redes DMZ.
Warpgate es una solución moderna que se puede utilizar como un servidor Bastión. Está escrito en Rust y proporciona un panel de administración basado en la web. Puedes instalarlo en un nodo específico, luego puedes agregar fácilmente nodos o servidores de destino que se encuentran en tu infraestructura privada. Actualmente, Warpgate se puede utilizar como un servidor Bastión para SSH, MySQL/MariaDB y HTTP.
En este tutorial, configurarás un servidor Bastión para conexiones SSH y MySQL/MariaDB en un servidor Debian 11 utilizando Warpgate. Instalarás y configurarás Warpgate en el servidor Debian, luego agregarás el servidor de destino SSH y el servidor MySQL a Warpgate. Al final, te asegurarás de que el servidor Bastión de Warpgate esté funcionando al conectarte al servidor SSH de destino y al servidor MySQL.
Requisitos previos
Necesitarás los siguientes requisitos para completar este tutorial:
- Un servidor Linux que ejecute Debian 11 - Este ejemplo utiliza un servidor con un nombre de host ‘warpgate-debian‘ y dirección IP ‘192.168.5.10‘.
- Un usuario no root con privilegios de administrador sudo/root.
Descargar el archivo binario de Warpgate
En esta sección, descargarás el archivo binario de Warpgate manualmente desde GitHub, luego lo moverás al directorio ‘bin’ del sistema. Otra forma de instalar Warpgate es compilando desde el código fuente o utilizando la versión Docker de Warpgate.
Para comenzar, ejecuta el siguiente comando wget para descargar el archivo binario de Warpgate. Visita la página oficial de descargas de GitHub para la última versión de Warpgate.
wget -q https://github.com/warp-tech/warpgate/releases/download/v0.7.0/warpgate-v0.7.0-x86_64-linuxUna vez descargado, mueve el archivo binario de Warpgate a ‘/usr/local/bin/warpgate ‘. Luego, hazlo ejecutable utilizando el comando ‘chmod +x’.
mv warpgate-v0.7.0-x86_64-linux /usr/local/bin/warpgate
sudo chmod +x /usr/local/bin/warpgateA continuación, ejecuta el siguiente comando para localizar el archivo binario ‘ warpgate ‘ en tu sistema.
which warpgateAhora verifica la versión de Warpgate y lista los parámetros disponibles del comando ‘warpgate’.
warpgate version
warpgate --helpDeberías recibir una salida como esta.

Configurando Warpgate como servidor Bastión
Con el archivo binario de Warpgate descargado, ahora configurarás e instalarás tu instalación de Warpgate. Esto se puede hacer de forma interactiva a través del comando ‘ warpgate ‘.
Ejecuta el siguiente comando para configurar Warpgate como el servidor bastión.
warpgate setupDespués de ejecutar el comando, se te preguntará sobre las siguientes configuraciones:
- ¿Dónde deseas almacenar los datos de Warpgate? Déjalo como predeterminado en el directorio ‘/var/lib/warpgate’.
- ¿El punto final del panel de administración web de Warpgate? Déjalo como predeterminado para ejecutar Warpgate en tu dirección IP interna/pública con el puerto 8888.
- ¿Aceptar conexiones SSH? Ingresa sí para habilitar Warpgate como el servidor bastión SSH.
- ¿El punto final del servidor bastión SSH? Déjalo como predeterminado para ejecutar el servidor bastión SSH en la dirección IP interna/pública con el puerto 2222.
- ¿Aceptar conexiones MySQL? Ingresa sí para habilitar Warpgate como un servidor bastión MySQL.
- ¿El punto final del servidor bastión MySQL? Déjalo como predeterminado con el puerto 33306.
- ¿Registrar sesiones de usuario? Ingresa sí para habilitarlo.
- Configura una contraseña para el usuario predeterminado admin. Ingresa la contraseña para tu instalación de Warpgate.

Una vez que el proceso de configuración esté terminado, deberías recibir una salida como esta. También verás el archivo de configuración de Warpgate ‘/etc/warpgate.yaml’ y el directorio de datos ‘/var/lib/warpgate’ creados durante el proceso.

Ahora ejecuta el siguiente comando para mostrar el contenido del archivo ‘/etc/warpgate.yaml’ y la lista de archivos y directorios disponibles en ‘/var/lib/warpgate’.
cat /etc/warpgate.yaml
ls /var/lib/warpgateA continuación se muestra la salida que se imprimirá en tu terminal.

Ahora ejecuta el siguiente comando para ejecutar Warpgate. Verás la salida ‘ Warpgate ahora está en funcionamiento ‘ y abrirá puertos TCP para conexiones SSH, MySQL y HTTP.
warpgate --config /etc/warpgate.yaml run
Abre tu navegador web y visita la dirección IP de Warpgate con el puerto 8888 (es decir: https://192.168.5.10:8888/). Cuando sea exitoso, deberías obtener la página de inicio de sesión de Warpgate.

Regresa a tu terminal y presiona Ctrl+c para terminar el proceso de Warpgate.
Ejecutando Warpgate como un servicio Systemd
En esta sección, configurarás Warpgate para que se ejecute con Systemd. Esto te permite ejecutar Warpgate en segundo plano y es más fácil de gestionar a través de la utilidad de comandos systemctl.
Crea un nuevo archivo de unidad systemd ‘/etc/systemd/system/warpgate.service’ utilizando el siguiente comando del editor nano.
sudo nano /etc/systemd/system/warpgate.serviceAgrega las siguientes configuraciones de unidad systemd al archivo.
[Unit]
Description=Warpgate
After=network.target
StartLimitIntervalSec=0
[Service]
Type=notify
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/warpgate --config /etc/warpgate.yaml run
[Install]
WantedBy=multi-user.targetGuarda el archivo y sal del editor cuando termines.
Ejecuta el siguiente comando para recargar el administrador de systemd y aplicar los cambios.
sudo systemctl daemon-reloadLuego inicia y habilita el servicio Warpgate utilizando la siguiente utilidad de comandos systemctl.
sudo systemctl start warpgate
sudo systemctl enable warpgate
Después de eso, verifica el estado del servicio Warpgate para asegurarte de que el servicio esté en funcionamiento.
sudo systemctl status warpgateLa salida a continuación confirma que el servicio Warpgate está en funcionamiento.

Si revisas la lista de puertos abiertos en tu servidor, verás múltiples puertos 2222, 8888 y 33306 en estado LISTEN. Ejecuta el comando ss a continuación.
ss -tulpnSalida:

Configurando UFW
En esta sección, instalarás, ejecutarás y habilitarás UFW en tu servidor Debian. También abrirás los puertos que son utilizados por Warpgate.
Instala UFW ejecutando el siguiente comando apt.
sudo apt install ufwCuando se te pida, ingresa y para confirmar y presiona ENTER.

Una vez que UFW esté instalado, ejecuta el siguiente comando para abrir el servicio OpenSSH y los puertos de Warpgate 2222, 8888 y 33306.
sudo ufw allow OpenSSH
sudo ufw allow 8888/tcp
sudo ufw allow 2222/tcp
sudo ufw allow 33306/tcpLuego, inicia y habilita UFW utilizando el comando a continuación. Ingresa y cuando se te pida y presiona ENTER para continuar.
sudo ufw enableDespués de que se ejecute el siguiente comando, UFW debería estar en funcionamiento y habilitado, lo que significa que UFW se ejecutará automáticamente al inicio del sistema.

Ahora ingresa el siguiente comando para verificar el estado de UFW. Deberías ver que UFW está ‘Estado: Activo’ con el servicio OpenSSH, puertos 2222, 8888, y 33306 añadidos.
sudo ufw statusSalida:

Iniciando sesión en Warpgate
Con Warpgate ejecutándose como un servicio systemd y UFW en funcionamiento, ahora accederás a la instalación de Warpgate.
Abre tu navegador web y visita la dirección IP del servidor seguida del puerto 8888 (es decir: https://192.168.5.20:8888 /) y verás la página de inicio de sesión de Warpgate.
Ingresa el usuario predeterminado ‘admin‘ y la contraseña que has configurado. Luego haz clic en Iniciar sesión para continuar.

Una vez que hayas iniciado sesión como ‘admin‘, haz clic en el menú ‘Administrar Warpgate‘.

Ahora deberías ver el panel de usuario de Warpgate.

En este punto, has terminado la instalación de Warpgate como servidor Bastión SSH y MySQL en el servidor Debian. Ahora estás listo para agregar tu servidor y el servidor MySQL a Warpgate.
Agregando servidor de destino SSH
En esta sección, agregarás el servidor Linux con dirección IP 192.168.5.25 y nombre de host ‘node1‘ al servidor Bastión de Warpgate. Para hacer eso, debes agregar la clave pública SSH de Warpgate a tu servidor de destino.
En el panel de Warpgate, haz clic en el menú SSH y verás las claves públicas y privadas SSH de Warpgate que se utilizarán para iniciar sesión en el servidor de destino.
Copia la clave pública SSH a tu nota.

Ahora inicia sesión en el servidor de destino, crea un nuevo directorio ‘~/.ssh‘, luego crea el archivo ‘authorized_keys‘ utilizando el siguiente comando del editor nano.
mkdir -p ~/.ssh/
nano ~/.ssh/authorized_keysAgrega la clave pública SSH de Warpgate en él.

A continuación, dirígete al panel de Warpgate y haz clic en el menú Config, luego haz clic en ‘Agregar un destino‘.

Ingresa el nombre de host del servidor de destino, selecciona el tipo como SSH, luego haz clic en Crear destino.

Cambia la dirección IP del servidor de destino y el usuario que se utilizará para iniciar sesión en el servidor. En cuanto a la autenticación, selecciona ‘Claves privadas de Warpgate‘. Luego, debes habilitar el rol ‘warpgate:admin’ en la sección ‘Permitir acceso para roles‘.
Cuando termines, haz clic en ‘Actualizar configuraciones‘.

Con esto, el servidor de destino ‘node1‘ se ha agregado a Warpgate. Ahora puedes conectarte a ‘node1‘ a través del servidor bastión de Warpgate.
Ejecuta el siguiente comando ssh para conectarte a ‘node1‘ a través del servidor bastión de Warpgate. En este comando, el formato utilizado es ‘rol: nombre-del-servidor’ con la dirección IP del servidor bastión 192.168.5.10 y el puerto 2222.
ssh 'admin:[email protected]' -p 2222Ingresa sí para confirmar y agregar la huella digital SSH del destino. Cuando se te pida la contraseña, ingresa la contraseña del usuario bastión ‘admin‘.
Cuando la conexión sea exitosa, deberías obtener una salida como ‘Warpgate conectado‘. Y estarás conectado al servidor de destino ‘node1‘.
Ingresa el siguiente comando para verificar el servidor actual al que estás conectado. Verás que has iniciado sesión en el servidor ‘node1‘ a través del servidor bastión SSH de Warpgate.
id
hostnameSalida:

Si revisas en el panel de administración web de Warpgate, deberías ver la huella digital de tu servidor de destino SSH.

Agregando servidor de destino MySQL/MariaDB
En esta sección, agregarás un servidor MariaDB al servidor bastión de Warpgate. Antes de eso, configurarás el servidor MariaDB para que se ejecute en una dirección IP privada/interna, y también crearás un nuevo usuario de MariaDB para conexiones remotas.
Inicia sesión en el servidor MariaDB y abre el archivo de configuración ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ utilizando el siguiente comando del editor nano.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfDescomenta el parámetro ‘bind-address‘ y cambia el valor a tu dirección IP interna. En este ejemplo, el servidor MariaDB se ejecutará en la dirección IP privada ‘192.168.5.25‘.
bind-address = 192.168.5.25Guarda el archivo, luego edita el editor.
Ingresa el siguiente comando para reiniciar el servicio MariaDB y aplicar los cambios. Cuando se reinicie, el MariaDB debería estar funcionando en la dirección IP ‘192.168.5.25’ en lugar de en el localhost predeterminado.
sudo systemctl restart mariadbA continuación, inicia sesión en la consola de MariaDB como el usuario root para configurar y crear un nuevo usuario.
sudo mariadb -u root -pIngresa las siguientes consultas para crear un nuevo usuario de MariaDB ‘appuser’ y permitir que el usuario acceda a todas las bases de datos en el servidor MariaDB. Además, asegúrate de cambiar la contraseña en la siguiente consulta.
CREATE USER 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';
FLUSH PRIVILEGES;
EXIT;A continuación, configurarás el paquete cliente de MariaDB en la máquina que se utilizará para conectarse al servidor MariaDB.

Instala el paquete ‘mariadb-client‘ a través del siguiente comando. Ingresa y cuando se te pida y presiona ENTER para continuar.
sudo apt install mariadb-client
Ahora dirígete al servidor Warpgate, cambia el directorio de trabajo a ‘/var/lib/warpgate‘, luego copia los certificados TLS de Warpgate a tu máquina cliente de MariaDB.
cd /var/lib/warpgate/
sudo scp tls.certificate.pem tls.key.pem [email protected]:/etc/mysql/
Ahora regresa a la máquina cliente y abre la configuración del cliente de MariaDB ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ utilizando el siguiente comando del editor nano.
sudo nano /etc/mysql/mariadb.conf.d/50-client.cnfAgrega las siguientes configuraciones a la sección ‘[client]‘ para habilitar una conexión segura del cliente.
[client]
....
ssl-cert=/etc/mysql/tls.certificate.pem
ssl-key=/etc/mysql/tls.key.pemGuarda el archivo, luego edita el editor cuando termines.
Ahora en el panel de Warpgate, haz clic en el menú ‘Config’, luego haz clic en ‘Agregar un destino‘.

Ingresa el nombre del servidor MariaDB, selecciona el tipo como ‘MySQL‘, luego haz clic en Crear destino.

Cambia los detalles del host, usuario y contraseña con los detalles de tu usuario de MariaDB. Asegúrate de desactivar la opción ‘Verificar certificado‘ si tienes certificados TLS predeterminados, luego habilita el rol ‘warpgate:admin‘ en la sección ‘Permitir acceso para roles‘.
Haz clic en ‘Actualizar configuración‘ cuando termines.

Con el servidor MariaDB agregado a Warpgate, ahora puedes acceder al servidor MariaDB a través del servidor Bastión MySQL de Warpgate.
Desde la máquina cliente de MariaDB, ingresa el siguiente comando para conectarte al servidor MariaDB. Cuando se te pida, ingresa la contraseña del usuario administrador de Warpgate.
mysql -u 'admin#mysql1' --host '192.168.5.10' --port 33306 --ssl -pCuando estés conectado, deberías ver el aviso de la consola de MariaDB como ‘MySQL [(dbname)]>‘. Ingresa las siguientes consultas para asegurarte de que el usuario que estás utilizando esté disponible en el servidor MariaDB.
SELECT host, user, plugin, authentication_string from mysql.user;
SHOW GRANTS FOR appuser@'%';Salida:

Con esto, ahora te has conectado al servidor MariaDB a través del servidor Bastión MySQL/MariaDB de Warpgate.
Conclusión
En este tutorial, has instalado y configurado el servidor Bastión Warpgate en Debian 11. Has configurado Warpgate para ejecutarse con systemd y el firewall UFW. Además de eso, has configurado Warpgate como servidor Bastión SSH y MySQL/MariaDB, agregado el servidor de destino SSH y también agregado el servidor de destino MySQL/MariaDB.
Con esto en mente, ahora puedes configurar nuevos usuarios, roles y agregar nuevas conexiones a tu servidor Bastión Warpgate. Y puedes centralizar las conexiones y accesos de usuarios a través de un único servidor Bastión centralizado. Para encontrar los detalles sobre Warpgate, visita la documentación oficial de Warpgate.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.