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-linuxUna 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/warpgateSuccessivamente, esegui il seguente comando per localizzare il file binario ‘warpgate‘ sul tuo sistema.
which warpgateOra verifica la versione di Warpgate e elenca i parametri disponibili del comando ‘warpgate’.
warpgate version
warpgate --helpDovresti ricevere un output simile a questo.

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 setupDopo 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.

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.

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/warpgateDi seguito è riportato l’output che verrà stampato nel tuo terminale.

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

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.serviceAggiungi 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.targetSalva 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-reloadQuindi avvia e abilita il servizio Warpgate utilizzando il seguente comando dell’utilità systemctl.
sudo systemctl start warpgate
sudo systemctl enable warpgate
Dopo di che, verifica lo stato del servizio Warpgate per assicurarti che il servizio sia in esecuzione.
sudo systemctl status warpgateL’output qui sotto conferma che il servizio Warpgate è in esecuzione.

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 -tulpnOutput:

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 ufwQuando richiesto, inserisci y per confermare e premi INVIO.

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/tcpQuindi, avvia e abilita UFW utilizzando il comando qui sotto. Inserisci y quando richiesto e premi INVIO per procedere.
sudo ufw enableDopo 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.

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 statusOutput:

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.

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

Ora dovresti vedere il cruscotto utente di Warpgate.

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.

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_keysAggiungi la chiave pubblica SSH di Warpgate al suo interno.

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

Inserisci il nome host del server target, seleziona il tipo come SSH, quindi fai clic su Crea 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‘.

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 2222Inserisci 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
hostnameOutput:

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

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.cnfDecommenta 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.25Salva 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 mariadbSuccessivamente, accedi alla shell di MariaDB come utente root per configurare e creare un nuovo utente.
sudo mariadb -u root -pInserisci 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.

Installa il pacchetto ‘mariadb-client‘ tramite il seguente comando. Inserisci y quando richiesto e premi INVIO per procedere.
sudo apt 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/
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.cnfAggiungi 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.pemSalva 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‘.

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

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.

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 -pQuando 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:

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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.