Server Bastion · 11 min read · Sep 09, 2025

Come configurare un server Bastion con Warpgate su Debian

Un server Bastion si riferisce a un computer/macchina/server progettato e configurato specificamente per resistere ad attacchi su reti informatiche. La funzionalità del server Bastion è simile a quella di un proxy o di un bilanciatore di carico per le applicazioni. Ti consente di accedere a computer o server situati in reti DMZ.

Warpgate è una soluzione moderna che può essere utilizzata come server Bastion. È scritto in Rust e fornisce un cruscotto di amministrazione basato sul web. Puoi installarlo su un nodo specifico, quindi puoi facilmente aggiungere nodi o server target che si trovano sulla tua infrastruttura privata. Attualmente, Warpgate può essere utilizzato come server Bastion per SSH, MySQL/MariaDB e HTTP.

In questo tutorial, configurerai un server Bastion per le connessioni SSH e MySQL/MariaDB su un server Debian 11 utilizzando Warpgate. Installerai e configurerai Warpgate sul server Debian, quindi aggiungerai il server target SSH e il server MySQL a Warpgate. Alla fine, verificherai che il server Bastion Warpgate funzioni collegandoti al server SSH target e al server MySQL.

Prerequisiti

Avrai bisogno dei seguenti requisiti per completare questo tutorial:

  • Un server Linux che esegue Debian 11 - Questo esempio utilizza un server con un nome host ‘warpgate-debian‘ e indirizzo IP ‘192.168.5.10‘.
  • Un utente non root con privilegi di amministratore sudo/root.

Scarica il file binario di Warpgate

In questa sezione, scaricherai manualmente il file binario di Warpgate da GitHub, quindi lo sposterai nella directory ‘bin’ del sistema. Un altro modo per installare Warpgate è compilare dal codice sorgente o utilizzare la versione Docker di Warpgate.

Per iniziare, esegui il seguente comando wget per scaricare il file binario di Warpgate. Visita la pagina di download ufficiale di GitHub per l’ultima versione di Warpgate.

wget -q https://github.com/warp-tech/warpgate/releases/download/v0.7.0/warpgate-v0.7.0-x86_64-linux

Una volta scaricato, sposta il file binario di Warpgate in ‘/usr/local/bin/warpgate ‘. Quindi, rendilo eseguibile utilizzando il comando ‘chmod +x’.

mv warpgate-v0.7.0-x86_64-linux /usr/local/bin/warpgate  
sudo chmod +x /usr/local/bin/warpgate

Successivamente, esegui il seguente comando per localizzare il file binario ‘warpgate‘ sul tuo sistema.

which warpgate

Ora verifica la versione di Warpgate e elenca i parametri disponibili del comando ‘warpgate’.

warpgate version  
warpgate --help

Dovresti ricevere un output simile a questo.

warpgate help

Configurare Warpgate come server Bastion

Con il file binario di Warpgate scaricato, ora configurerai e installerai la tua installazione di Warpgate. Questo può essere fatto interattivamente tramite il comando ‘warpgate‘.

Esegui il seguente comando per configurare Warpgate come server bastion.

warpgate setup

Dopo l’esecuzione del comando, ti verrà chiesto di fornire le seguenti configurazioni:

  • Dove vuoi memorizzare i dati di Warpgate? Lascialo come predefinito nella directory ‘/var/lib/warpgate’.
  • L’endpoint del cruscotto di amministrazione web di Warpgate? Lascialo come predefinito per eseguire Warpgate sul tuo indirizzo IP interno/pubblico con la porta 8888.
  • Accettare connessioni SSH? Inserisci sì per abilitare Warpgate come server bastion SSH.
  • L’endpoint del server bastion SSH? Lascialo come predefinito per eseguire il server bastion SSH sull’indirizzo IP interno/pubblico con la porta 2222.
  • Accettare connessioni MySQL? Inserisci sì per abilitare Warpgate come server bastion MySQL.
  • L’endpoint del server bastion MySQL? Lascialo come predefinito con la porta 33306.
  • Registrare le sessioni utente? Inserisci sì per abilitarlo.
  • Imposta una password per l’utente predefinito admin. Inserisci la password per la tua installazione di Warpgate.

setup warpgate

Una volta terminato il processo di configurazione, dovresti ricevere un output simile a questo. Vedrai anche il file di configurazione di Warpgate ‘/etc/warpgate.yaml’ e la directory dei dati ‘/var/lib/warpgate’ creati durante il processo.

setup finished

Ora esegui il seguente comando per mostrare il contenuto del file ‘/etc/warpgate.yaml’ e l’elenco dei file e delle directory disponibili su ‘/var/lib/warpgate’.

cat /etc/warpgate.yaml  
ls /var/lib/warpgate

Di seguito è riportato l’output che verrà stampato nel tuo terminale.

warpgate config files and directories

Ora esegui il seguente comando per eseguire Warpgate. Vedrai l’output ‘Warpgate è ora in esecuzione‘ e le porte TCP aperte per le connessioni SSH, MySQL e HTTP.

warpgate --config /etc/warpgate.yaml run

running warpgate

Apri il tuo browser web e visita l’indirizzo IP di Warpgate con la porta 8888 (ad es: https://192.168.5.10:8888/). Quando avrai successo, dovresti ottenere la pagina di accesso di Warpgate.

accessing warpgate

Torna al tuo terminale e premi Ctrl+c per terminare il processo di Warpgate.

Eseguire Warpgate come servizio Systemd

In questa sezione, configurerai Warpgate per essere eseguito con Systemd. Questo ti consente di eseguire Warpgate in background ed è più facile da gestire tramite l’utilità del comando systemctl.

Crea un nuovo file di unità systemd ‘/etc/systemd/system/warpgate.service’ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/systemd/system/warpgate.service

Aggiungi le seguenti configurazioni dell’unità systemd al file.

[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.target

Salva il file ed esci dall’editor quando hai finito.

Esegui il seguente comando per ricaricare il gestore systemd e applicare le modifiche.

sudo systemctl daemon-reload

Quindi avvia e abilita il servizio Warpgate utilizzando il seguente comando dell’utilità systemctl.

sudo systemctl start warpgate  
sudo systemctl enable warpgate

wearpgate systemd

Dopo di che, verifica lo stato del servizio Warpgate per assicurarti che il servizio sia in esecuzione.

sudo systemctl status warpgate

L’output qui sotto conferma che il servizio Warpgate è in esecuzione.

warpgate service status

Se controlli l’elenco delle porte aperte sul tuo server, vedrai più porte 2222, 8888 e 33306 nello stato LISTEN. Esegui il comando ss qui sotto.

ss -tulpn

Output:

check open ports

Configurare UFW

In questa sezione, installerai, eseguirai e abiliterai UFW sul tuo server Debian. Aprirai anche le porte utilizzate da Warpgate.

Installa UFW eseguendo il seguente comando apt.

sudo apt install ufw

Quando richiesto, inserisci y per confermare e premi INVIO.

install ufw

Una volta installato UFW, esegui il seguente comando per aprire il servizio OpenSSH e le porte Warpgate 2222, 8888 e 33306.

sudo ufw allow OpenSSH  
sudo ufw allow 8888/tcp  
sudo ufw allow 2222/tcp  
sudo ufw allow 33306/tcp

Quindi, avvia e abilita UFW utilizzando il comando qui sotto. Inserisci y quando richiesto e premi INVIO per procedere.

sudo ufw enable

Dopo che il seguente comando è stato eseguito, l’UFW dovrebbe essere in esecuzione e abilitato, il che significa che l’UFW verrà eseguito automaticamente all’avvio del sistema.

setup ufw

Ora inserisci il seguente comando per verificare lo stato di UFW. Dovresti vedere che l’UFW è ‘Status: Active’ con il servizio OpenSSH, le porte 2222, 8888, e 33306 aggiunte.

sudo ufw status

Output:

verify ufw

Accesso a Warpgate

Con Warpgate in esecuzione come servizio systemd e UFW in esecuzione, ora accederai all’installazione di Warpgate.

Apri il tuo browser web e visita l’indirizzo IP del server seguito dalla porta 8888 (ad es: https://192.168.5.20:8888 /) e vedrai la pagina di accesso di Warpgate.

Inserisci l’utente predefinito ‘admin‘ e la password che hai configurato. Quindi fai clic su Login per continuare.

Warpgate login as admin

Una volta effettuato l’accesso come ‘admin‘, fai clic sul menu ‘Gestisci Warpgate‘.

manage warpgate

Ora dovresti vedere il cruscotto utente di Warpgate.

warpgate dashboard

A questo punto, hai completato l’installazione di Warpgate come server Bastion SSH e MySQL sul server Debian. Sei ora pronto per aggiungere il tuo server e il server MySQL a Warpgate.

Aggiungere un server target SSH

In questa sezione, aggiungerai il server Linux con indirizzo IP 192.168.5.25 e nome host ‘node1‘ al server Bastion di Warpgate. Per fare ciò, devi aggiungere la chiave pubblica SSH di Warpgate al tuo server target.

Nel cruscotto di Warpgate, fai clic sul menu SSH e vedrai le chiavi pubbliche e private SSH di Warpgate che verranno utilizzate per accedere al server target.

Copia la chiave pubblica SSH nel tuo appunto.

list ssh keys

Ora accedi al server target, crea una nuova directory ‘~/.ssh‘, quindi crea il file ‘authorized_keys‘ utilizzando il seguente comando dell’editor nano.

mkdir -p ~/.ssh/  
nano ~/.ssh/authorized_keys

Aggiungi la chiave pubblica SSH di Warpgate al suo interno.

add SSH key to node

Successivamente, vai al cruscotto di Warpgate e fai clic sul menu Config, quindi fai clic su ‘Aggiungi un target‘.

add target server

Inserisci il nome host del server target, seleziona il tipo come SSH, quindi fai clic su Crea target.

create target

Cambia l’indirizzo IP del server target e l’utente che verrà utilizzato per accedere al server. Per quanto riguarda l’autenticazione, seleziona ‘Chiavi private di Warpgate‘. Quindi, devi abilitare il ruolo ‘warpgate:admin’ nella sezione ‘Consenti accesso per ruoli‘.

Quando hai finito, fai clic su ‘Aggiorna configurazioni‘.

details target ssh

Con questo, il server target ‘node1‘ è stato aggiunto a Warpgate. Ora puoi connetterti a ‘node1‘ tramite il server bastion di Warpgate.

Esegui il seguente comando ssh per connetterti a ‘node1‘ tramite il server bastion di Warpgate. In questo comando, il formato utilizzato è ‘role: server-name’ con l’indirizzo IP del server bastion 192.168.5.10 e la porta 2222.

ssh 'admin:[email protected]' -p 2222

Inserisci sì per confermare e aggiungere l’impronta digitale SSH del target. Quando richiesto per la password, inserisci la password dell’utente bastion ‘admin‘.

Quando la connessione ha successo, dovresti ricevere un output come ‘Warpgate connesso‘. E sarai connesso al server target ‘node1‘.

Inserisci il seguente comando per verificare il server corrente a cui sei connesso. Vedrai che ti sei connesso al server ‘node1‘ tramite il server bastion SSH di Warpgate.

id  
hostname

Output:

connect to target server via Warpgate bastion Server

Se controlli nel cruscotto di amministrazione web di Warpgate, dovresti vedere l’impronta digitale del tuo server target SSH.

list known hosts

Aggiungere un server target MySQL/MariaDB

In questa sezione, aggiungerai un server MariaDB al server bastion di Warpgate. Prima di ciò, configurerai il server MariaDB per essere eseguito su un indirizzo IP privato/interno e creerai anche un nuovo utente MariaDB per connessioni remote.

Accedi al server MariaDB e apri il file di configurazione ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Decommenta il parametro ‘bind-address‘ e cambia il valore con il tuo indirizzo IP interno. In questo esempio, il server MariaDB verrà eseguito all’indirizzo IP privato ‘192.168.5.25‘.

bind-address            = 192.168.5.25

Salva il file, quindi esci dall’editor.

Inserisci il seguente comando per riavviare il servizio MariaDB e applicare le modifiche. Quando riavviato, il MariaDB dovrebbe essere in esecuzione all’indirizzo IP ‘192.168.5.25’ invece del localhost predefinito.

sudo systemctl restart mariadb

Successivamente, accedi alla shell di MariaDB come utente root per configurare e creare un nuovo utente.

sudo mariadb -u root -p

Inserisci le seguenti query per creare un nuovo utente MariaDB ‘appuser’ e consentire all’utente di accedere a tutti i database sul server MariaDB. Assicurati anche di cambiare la password nella seguente query.

CREATE USER 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
FLUSH PRIVILEGES;  
EXIT;

Successivamente, configurerai il pacchetto client di MariaDB sulla macchina che verrà utilizzata per connettersi al server MariaDB.

create mariadb server

Installa il pacchetto ‘mariadb-client‘ tramite il seguente comando. Inserisci y quando richiesto e premi INVIO per procedere.

sudo apt install mariadb-client

install mariadb client

Ora vai al server Warpgate, cambia la directory di lavoro in ‘/var/lib/warpgate‘, quindi copia i certificati TLS di Warpgate sulla tua macchina client di MariaDB.

cd /var/lib/warpgate/  
sudo scp tls.certificate.pem tls.key.pem [email protected]:/etc/mysql/

copy tls certificates to mariadb client

Ora torna alla macchina client e apri la configurazione del client di MariaDB ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/mysql/mariadb.conf.d/50-client.cnf

Aggiungi le seguenti configurazioni alla sezione ‘[client]‘ per abilitare una connessione client sicura.

[client]  
....  
ssl-cert=/etc/mysql/tls.certificate.pem  
ssl-key=/etc/mysql/tls.key.pem

Salva il file, quindi esci dall’editor quando hai finito.

Ora nel cruscotto di Warpgate, fai clic sul menu ‘Config’, quindi fai clic su ‘Aggiungi un target‘.

add target warpgate

Inserisci il nome del server MariaDB, seleziona il tipo come ‘MySQL‘, quindi fai clic su Crea target.

add target mysql server

Cambia i dettagli dell’host, dell’utente e della password con i dettagli del tuo utente MariaDB. Assicurati di disattivare l’opzione ‘Verifica certificato‘ se hai certificati TLS predefiniti, quindi abilita il ruolo ‘warpgate:admin’ nella sezione ‘Consenti accesso per ruoli‘.

Fai clic su ‘Aggiorna configurazione‘ quando hai finito.

setup target server

Con il server MariaDB aggiunto a Warpgate, ora puoi accedere al server MariaDB tramite il server bastion MySQL di Warpgate.

Dalla macchina client di MariaDB, inserisci il seguente comando per connetterti al server MariaDB. Quando richiesto, inserisci la password dell’utente admin di Warpgate.

mysql -u 'admin#mysql1' --host '192.168.5.10' --port 33306 --ssl -p

Quando connesso, dovresti vedere il prompt della shell di MariaDB come ‘MySQL [(dbname)]>‘. Inserisci le seguenti query per assicurarti che l’utente che stai utilizzando sia disponibile sul server MariaDB.

SELECT host, user, plugin, authentication_string from mysql.user;  
SHOW GRANTS FOR appuser@'%';

Output:

connect to MySQL server via Warpgate Bastion Server

Con questo, ti sei ora connesso al server MariaDB tramite il server bastion MySQL/MariaDB di Warpgate.

Conclusione

In questo tutorial, hai installato e configurato il server Bastion di Warpgate su Debian 11. Hai configurato Warpgate per essere eseguito con systemd e il firewall UFW. Inoltre, hai configurato Warpgate come server Bastion SSH e MySQL/MariaDB, aggiunto il server target SSH e anche aggiunto il server target MySQL/MariaDB.

Tenendo presente questo, ora puoi configurare nuovi utenti, ruoli e aggiungere nuove connessioni al tuo server Bastion di Warpgate. E puoi centralizzare le connessioni e gli accessi degli utenti tramite un unico server Bastion centralizzato. Per trovare i dettagli su Warpgate, visita la documentazione ufficiale di Warpgate.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.