Servidor Bastion · 11 min read · Sep 09, 2025

Como Configurar um Servidor Bastion com Warpgate no Debian

Um Servidor Bastion refere-se a um computador/máquina/servidor que é projetado e configurado especificamente para suportar ataques em redes de computadores. A funcionalidade do Servidor Bastion é semelhante a um proxy ou balanceador de carga para aplicações. Ele permite que você acesse computadores ou servidores que estão localizados em redes DMZ.

Warpgate é uma solução moderna que pode ser usada como um servidor Bastion. É escrito em Rust e fornece um painel de administração baseado na web. Você pode instalá-lo em um nó específico, e então pode facilmente adicionar nós ou servidores de destino que estão localizados em sua infraestrutura privada. O Warpgate atualmente pode ser usado como um Servidor Bastion para SSH, MySQL/MariaDB e HTTP.

Neste tutorial, você configurará um servidor Bastion para conexões SSH e MySQL/MariaDB em um servidor Debian 11 usando o Warpgate. Você instalará e configurará o Warpgate no servidor Debian, depois adicionará o servidor de destino SSH e o servidor MySQL ao Warpgate. No final, você garantirá que o servidor Bastion Warpgate está funcionando conectando-se ao servidor de destino SSH e ao servidor MySQL.

Pré-requisitos

Você precisará dos seguintes requisitos para completar este tutorial:

  • Um servidor Linux rodando Debian 11 - Este exemplo usa um servidor com o nome de host ‘warpgate-debian‘ e endereço IP ‘192.168.5.10‘.
  • Um usuário não-root com privilégios de administrador sudo/root.

Baixar o Arquivo Binário do Warpgate

Nesta seção, você fará o download do arquivo binário do Warpgate manualmente do GitHub, e depois movê-lo para o diretório ‘bin’ do sistema. Outra forma de instalar o Warpgate é compilando a partir do código-fonte ou usando a versão Docker do Warpgate.

Para começar, execute o seguinte comando wget para baixar o arquivo binário do Warpgate. Visite a página oficial de download do GitHub para a versão mais recente do Warpgate.

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

Uma vez baixado, mova o arquivo binário do Warpgate para ‘/usr/local/bin/warpgate ‘. Então, torne-o executável usando o comando ‘chmod +x’.

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

Em seguida, execute o seguinte comando para localizar o arquivo binário ‘ warpgate ‘ em seu sistema.

which warpgate

Agora verifique a versão do Warpgate e liste os parâmetros disponíveis do comando ‘warpgate’.

warpgate version  
warpgate --help

Você deve receber uma saída como esta.

ajuda do warpgate

Configurando o Warpgate como Servidor Bastion

Com o arquivo binário do Warpgate baixado, você agora configurará e instalará sua instalação do Warpgate. Isso pode ser feito interativamente através do comando ‘ warpgate ‘.

Execute o seguinte comando para configurar o Warpgate como o servidor bastion.

warpgate setup

Após a execução do comando, você será questionado sobre as seguintes configurações:

  • Onde você deseja armazenar os dados do Warpgate? Deixe como padrão no diretório ‘/var/lib/warpgate’.
  • O endpoint do painel de administração web do Warpgate? Deixe como padrão para executar o Warpgate em seu endereço IP interno/público com a porta 8888.
  • Aceitar conexões SSH? Digite sim para habilitar o Warpgate como o servidor bastion SSH.
  • O endpoint do servidor bastion SSH? Deixe como padrão para executar o servidor bastion SSH no endereço IP interno/público com a porta 2222.
  • Aceitar conexões MySQL? Digite sim para habilitar o Warpgate como um servidor bastion MySQL.
  • O endpoint do servidor bastion MySQL? Deixe como padrão com a porta 33306.
  • Registrar sessões de usuário? Digite sim para habilitá-lo.
  • Configure uma senha para o usuário padrão admin. Digite a senha para sua instalação do Warpgate.

configuração do warpgate

Uma vez que o processo de configuração esteja concluído, você deve receber uma saída como esta. Você também verá o arquivo de configuração do Warpgate ‘/etc/warpgate.yaml’ e o diretório de dados ‘/var/lib/warpgate’ criados durante o processo.

configuração concluída

Agora execute o seguinte comando para mostrar o conteúdo do arquivo ‘/etc/warpgate.yaml’ e a lista de arquivos e diretórios disponíveis em ‘/var/lib/warpgate’.

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

Abaixo está a saída que será impressa em seu terminal.

arquivos e diretórios de configuração do warpgate

Agora execute o seguinte comando para executar o Warpgate. Você verá a saída ‘ Warpgate está agora em execução ‘ e portas TCP abertas para conexões SSH, MySQL e HTTP.

warpgate --config /etc/warpgate.yaml run

executando warpgate

Abra seu navegador web e visite o endereço IP do Warpgate com a porta 8888 (ou seja: https://192.168.5.10:8888/). Quando bem-sucedido, você deve ver a página de login do Warpgate.

acessando warpgate

Volte ao seu terminal e pressione Ctrl+c para encerrar o processo do Warpgate.

Executando o Warpgate como um Serviço Systemd

Nesta seção, você configurará o Warpgate para ser executado com o Systemd. Isso permite que você execute o Warpgate em segundo plano e é mais fácil de gerenciar através da utilidade de comando systemctl.

Crie um novo arquivo de unidade systemd ‘/etc/systemd/system/warpgate.service’ usando o seguinte comando do editor nano.

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

Adicione as seguintes configurações de unidade systemd ao arquivo.

[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

Salve o arquivo e saia do editor quando terminar.

Execute o seguinte comando para recarregar o gerenciador systemd e aplicar as alterações.

sudo systemctl daemon-reload

Em seguida, inicie e habilite o serviço Warpgate usando a seguinte utilidade de comando systemctl.

sudo systemctl start warpgate  
sudo systemctl enable warpgate

warpgate systemd

Depois disso, verifique o status do serviço Warpgate para garantir que o serviço está em execução.

sudo systemctl status warpgate

A saída abaixo confirma que o serviço Warpgate está em execução.

status do serviço warpgate

Se você verificar a lista de portas abertas em seu servidor, verá várias portas 2222, 8888 e 33306 no estado LISTEN. Execute o comando ss abaixo.

ss -tulpn

Saída:

verificar portas abertas

Configurando o UFW

Nesta seção, você instalará, executará e habilitará o UFW em seu servidor Debian. Você também abrirá portas que são usadas pelo Warpgate.

Instale o UFW executando o seguinte comando apt.

sudo apt install ufw

Quando solicitado, digite y para confirmar e pressione ENTER.

instalar ufw

Uma vez que o UFW esteja instalado, execute o seguinte comando para abrir o serviço OpenSSH e as portas do Warpgate 2222, 8888 e 33306.

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

Em seguida, inicie e habilite o UFW usando o comando abaixo. Digite y quando solicitado e pressione ENTER para prosseguir.

sudo ufw enable

Após a execução do seguinte comando, o UFW deve estar em execução e habilitado, o que significa que o UFW será executado automaticamente na inicialização do sistema.

configurar ufw

Agora insira o seguinte comando para verificar o status do UFW. Você deve ver que o UFW está ‘Status: Ativo’ com o serviço OpenSSH, portas 2222, 8888, e 33306 adicionadas.

sudo ufw status

Saída:

verificar ufw

Fazendo Login no Warpgate

Com o Warpgate em execução como um serviço systemd e o UFW em funcionamento, você agora acessará a instalação do Warpgate.

Abra seu navegador web e visite o endereço IP do servidor seguido pela porta 8888 (ou seja: https://192.168.5.20:8888 /) e você verá a página de login do Warpgate.

Digite o usuário padrão ‘admin‘ e a senha que você configurou. Em seguida, clique em Login para continuar.

login do warpgate como admin

Uma vez logado como ‘admin‘, clique no menu ‘Gerenciar Warpgate‘.

gerenciar warpgate

Você agora deve ver o painel de usuário do Warpgate.

painel do warpgate

Neste ponto, você terminou a instalação do Warpgate como servidor Bastion SSH e MySQL no servidor Debian. Você está agora pronto para adicionar seu servidor e servidor MySQL ao Warpgate.

Adicionando Servidor de Destino SSH

Nesta seção, você adicionará o servidor Linux com endereço IP 192.168.5.25 e nome de host ‘node1‘ ao servidor Bastion Warpgate. Para fazer isso, você deve adicionar a chave pública SSH do Warpgate ao seu servidor de destino.

No painel do Warpgate, clique no menu SSH e você verá as chaves públicas e privadas SSH do Warpgate que serão usadas para fazer login no servidor de destino.

Copie a chave pública SSH para sua anotação.

lista de chaves ssh

Agora faça login no servidor de destino, crie um novo diretório ‘~/.ssh‘, e depois crie o arquivo ‘authorized_keys‘ usando o seguinte comando do editor nano.

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

Adicione a chave pública SSH do Warpgate a ele.

adicionar chave SSH ao nó

Em seguida, vá para o painel do Warpgate e clique no menu Config e depois clique em ‘Adicionar um destino‘.

adicionar servidor de destino

Digite o nome do host do servidor de destino, selecione o tipo como SSH, e depois clique em Criar destino.

criar destino

Altere o endereço IP do servidor de destino e o usuário que será usado para fazer login no servidor. Quanto à autenticação, selecione ‘Chaves privadas do Warpgate‘. Em seguida, você deve habilitar o papel ‘warpgate:admin’ na seção ‘Permitir acesso para papéis‘.

Quando terminar, clique em ‘Atualizar configurações‘.

detalhes do destino ssh

Com isso, o servidor de destino ‘node1‘ foi adicionado ao Warpgate. Você agora pode se conectar a ‘node1‘ através do servidor bastion Warpgate.

Execute o seguinte comando ssh para se conectar ao ‘node1‘ através do servidor bastion Warpgate. Neste comando, o formato usado é ‘role: server-name’ com o endereço IP do servidor bastion 192.168.5.10 e porta 2222.

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

Digite sim para confirmar e adicionar a impressão digital SSH do destino. Quando solicitado pela senha, digite a senha do usuário bastion ‘admin‘.

Quando a conexão for bem-sucedida, você deve obter uma saída como ‘Warpgate conectado‘. E você estará logado no servidor de destino ‘node1‘.

Digite o seguinte comando para verificar o servidor atual no qual você está logado. Você verá que você está logado no servidor ‘node1‘ através do servidor bastion SSH Warpgate.

id  
hostname

Saída:

conectar ao servidor de destino via servidor bastion Warpgate

Se você verificar no painel de administração web do Warpgate, você deve ver a impressão digital do seu servidor de destino SSH.

lista de hosts conhecidos

Adicionando Servidor de Destino MySQL/MariaDB

Nesta seção, você adicionará um servidor MariaDB ao servidor bastion Warpgate. Antes disso, você configurará o servidor MariaDB para rodar em um endereço IP privado/interno e também criará um novo usuário MariaDB para conexões remotas.

Faça login no servidor MariaDB e abra o arquivo de configuração ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ usando o seguinte comando do editor nano.

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

Descomente o parâmetro ‘bind-address‘ e altere o valor para o seu endereço IP interno. Neste exemplo, o servidor MariaDB será executado no endereço IP privado ‘192.168.5.25‘.

bind-address            = 192.168.5.25

Salve o arquivo, e depois saia do editor.

Digite o seguinte comando para reiniciar o serviço MariaDB e aplicar as alterações. Quando reiniciado, o MariaDB deve estar em execução no endereço IP ‘192.168.5.25’ em vez do localhost padrão.

sudo systemctl restart mariadb

Em seguida, faça login no shell do MariaDB como usuário root para configurar e criar um novo usuário.

sudo mariadb -u root -p

Digite as seguintes consultas para criar um novo usuário MariaDB ‘appuser’ e permitir que o usuário acesse todos os bancos de dados no servidor MariaDB. Além disso, certifique-se de alterar a senha na seguinte consulta.

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

Em seguida, você configurará o pacote cliente MariaDB na máquina que será usada para se conectar ao servidor MariaDB.

criar servidor mariadb

Instale o pacote ‘mariadb-client‘ através do seguinte comando. Digite y quando solicitado e pressione ENTER para prosseguir.

sudo apt install mariadb-client

instalar cliente mariadb

Agora vá para o servidor Warpgate, mude o diretório de trabalho para ‘/var/lib/warpgate‘, e depois copie os certificados TLS do Warpgate para sua máquina cliente MariaDB.

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

copiar certificados tls para cliente mariadb

Agora volte para a máquina cliente e abra a configuração do cliente MariaDB ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ usando o seguinte comando do editor nano.

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

Adicione as seguintes configurações à seção ‘[client]‘ para habilitar uma conexão segura do cliente.

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

Salve o arquivo e saia do editor quando terminar.

Agora no painel do Warpgate, clique no menu ‘Config’, e depois clique em ‘Adicionar um destino‘.

adicionar destino warpgate

Digite o nome do servidor MariaDB, selecione o tipo como ‘MySQL‘, e depois clique em Criar destino.

adicionar servidor de destino mysql

Altere os detalhes do host, usuário e senha com os detalhes do seu usuário MariaDB. Certifique-se de desativar a opção ‘Verificar certificado‘ se você tiver certificados TLS padrão, e depois habilite o papel ‘warpgate:admin‘ na seção ‘Permitir acesso para papéis‘.

Clique em ‘Atualizar configuração‘ quando terminar.

configurar servidor de destino

Com o servidor MariaDB adicionado ao Warpgate, você agora pode acessar o servidor MariaDB através do servidor Bastion MySQL do Warpgate.

Da máquina cliente MariaDB, insira o seguinte comando para se conectar ao servidor MariaDB. Quando solicitado, digite a senha do usuário admin do Warpgate.

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

Quando conectado, você deve ver o prompt do shell MariaDB como ‘MySQL [(dbname)]>‘. Digite as seguintes consultas para garantir que o usuário que você está usando está disponível no servidor MariaDB.

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

Saída:

conectar ao servidor MySQL via Servidor Bastion Warpgate

Com isso, você agora se conectou ao servidor MariaDB através do servidor Bastion MySQL/MariaDB do Warpgate.

Conclusão

Neste tutorial, você instalou e configurou o servidor Bastion Warpgate no Debian 11. Você configurou o Warpgate para rodar com systemd e o firewall UFW. Além disso, você configurou o Warpgate como servidor Bastion SSH e MySQL/MariaDB, adicionou o servidor de destino SSH e também adicionou o servidor de destino MySQL/MariaDB.

Com isso em mente, você agora pode configurar novos usuários, papéis e adicionar novas conexões ao seu Servidor Bastion Warpgate. E você pode centralizar conexões e acessos de usuários através de um único servidor Bastion centralizado. Para encontrar os detalhes sobre o Warpgate, visite a documentação oficial do Warpgate.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.