Verificar se as portas de banco de dados estão expostas à internet

Host
Verifique apenas hosts que você possui ou para os quais tem permissão explícita para testar. A verificação checa cerca de 20 portas TCP conhecidas.
Próximo

Um banco de dados que responde na internet pública é um dos erros mais comuns em servidores. Informe seu servidor e veja se o MySQL (3306), o PostgreSQL (5432) ou o Redis (6379) aceitam conexão de fora. Se nenhum aparecer, eles não estão acessíveis a partir daqui.

Como testar bancos de dados expostos

  1. 1

    Informe o endereço do servidor

    Use o nome de host público ou o IP da máquina que hospeda o banco de dados.

  2. 2

    Execute a varredura

    Clique em Próximo e, em seguida, em Verificar portas comuns.

  3. 3

    Confira 3306, 5432 e 6379

    Se algum deles aparecer na lista, esse serviço aceita conexões da internet.

  4. 4

    Corrija o que deveria ser privado

    Vincule o serviço a um endereço privado ou feche a porta no firewall e faça a varredura novamente.

Por que a exposição importa

Bancos de dados e caches foram feitos para serem acessados pela sua própria aplicação, não por desconhecidos. O Redis, em especial, costuma rodar sem senha nas configurações padrão, e uma porta do MySQL ou do PostgreSQL acessível convida a tentativas de adivinhar senhas. Manter essas portas fora da internet pública é uma precaução básica.

O que cada resultado significa

Porta Serviço Se aparecer na lista
3306 MySQL O servidor aceita conexões TCP da internet
5432 PostgreSQL Igual, revise as regras de acesso e o endereço de bind
6379 Redis Igual, verifique se há senha e um endereço de bind privado

Uma porta aberta não significa que o banco de dados esteja desprotegido. A autenticação e as regras de host ainda podem recusar o login. Significa que o serviço está acessível e merece uma análise mais detalhada.

Correções típicas

  1. Faça o bind do banco de dados em localhost ou em uma rede privada.
  2. Crie uma regra de firewall que permita a porta apenas a partir dos seus servidores de aplicação.
  3. Em servidores na nuvem, revise também o security group ou a network ACL, além do firewall do host.
  4. Faça a varredura novamente para confirmar que a porta não aparece mais.

Limites desta verificação

Apenas as três portas padrão são testadas. Um banco de dados em uma porta personalizada não é detectado. Porta fechada, filtrada e inacessível produzem o mesmo resultado vazio, portanto uma varredura limpa significa apenas que essas portas não aceitaram conexão daqui. Faça a varredura somente de servidores que você possui ou administra.

Quando a exposição é intencional

Algumas configurações expõem um banco de dados de propósito, por exemplo um serviço gerenciado que aceita conexões de uma lista de endereços autorizados, ou uma réplica à qual outras regiões se conectam. Se for o seu caso, uma porta aberta nesta varredura é esperada. A pergunta a fazer é se a lista de endereços autorizados realmente limita o acesso, e a forma de verificar é confirmar que a porta se comporta como você pretende a partir de endereços fora dessa lista.

Se você não pretendia expor o banco, trate uma porta de banco de dados aberta como um problema a corrigir hoje, e depois analise os logs do banco em busca de tentativas de conexão de endereços que você não reconhece.

Perguntas frequentes

Não. Ela apenas abre uma conexão TCP com a porta e informa se foi aceita. Não envia credenciais nem executa consultas.

Não. Apenas as portas padrão da lista fixa são testadas, então um banco de dados em outra porta não é verificado.

Nem sempre, pois a autenticação e a criptografia ainda podem protegê-la. Mas a exposição amplia a superfície de ataque, por isso a maioria das configurações mantém essas portas privadas.

O firewall pode permitir apenas o endereço do seu escritório. A varredura sai de um endereço público diferente, então vê o que todos veem, que é justamente o objetivo da verificação.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas

Guias e casos de uso