Como acessar um servidor MySQL usando um túnel SSH

Por questões de segurança, o acesso direto ao banco de dados na porta 3306 é quase sempre bloqueado, porém é possível continuar acessando o servidor através de um túnel SSH

Túnel de dados

Deixar a porta 3306 aberta em seu servidor e permitir que o MySQL aceite conexões externas é um problema muito grande de segurança, especialmente quando não há nenhum recurso para limitar o número de tentativas, possibilitando os ataques conhecidos como Brute Force.

De fato a porta 22 (SSH) também está vulnerável aos mesmos problemas, exceto que podemos limitar o acesso a esta porta utilizando o Fail2Ban e prevenir estes ataques.

Porém ao restringir a porta 3306, não é mais possível acessar diretamente o banco de dados. Soluções como o phpMyAdmin também são conhecidas como inseguras (além de precisar de uma instalação completa do PHP em seu servidor e não possuir qualquer segurança contra bruteforce), além de não serem tão práticas quando um gerenciador de banco de dados.

Para solucionar este problema é possível utilizar softwares como o HeidiSQL e se conectar direto com o seu banco de dados através de um túnel SSH. Isto é, a porta 3306 de seu servidor continuará fechada, porém através de suas credenciais do protocolo SSH, você se conectará pela porta 22 e continuará a utilizar o servidor de banco de dados de forma direta para poder administra-lo.

Vale apena ressaltar que este método não serve para quem quer conectar o banco de dados com uma aplicação, pois a velocidade da conexão enquanto dentro do túnel SSH é extremamente limitada. Este método serve para quem deseja administrar o banco de dados remotamente, sem expor a porta 3306 a web e utilizar de uma interface gráfica para tal finalidade.

Requisitos

Baixe e instale os dois requisitos, em seguida abra o HeidiSQL.

Tipo de rede MySQL Túnel
Tipo de rede MySQL Túnel

Crie uma nova conexão e selecione MySQL (SSH Tunnel) em tipo de rede, insira as credenciais de seu banco de dados em "Usuário" e "Senha" e por fim selecione a porta de seu banco (acessível dentro do servidor, por padrão 3306).

Túnel SSH no HeidiSQL
Túnel SSH no HeidiSQL

Na aba Túnel SSH aponte o caminho para o plink.exe, configure o servidor e porta SSH para o endereço de seu servidor (onde realiza o acesso a porta SSH), em usuário e senha coloque as credenciais do seu servidor, e não do banco de dados. Utilize uma porta diferente do seu banco de dados na porta local, caso seja 3306, use 3307 por exemplo. Pressione abrir para testar as configurações.

Interface do HeidiSQL conectado a um servidor remoto via túnel SSH
Interface do HeidiSQL conectado a um servidor remoto via túnel SSH

Caso tudo tenha funcionado corretamente, será possível ver todos os seus bancos de dados e suas respectivas tabelas. executar consultas e gerencia-las da mesma forma que diretamente no servidor (ou em aplicações como o phpMyAdmin), porém utilizando uma interface mais amigável sem expor o servidor aos riscos de manter a porta 3306 pública.


Comentários



Voltar ao topo
Aguarde..