Header Ads

Como conectar-se a um banco de dados através de uma rede

Ao conectar-se a um banco de dados, você deve tomar precauções extras se ele não estiver sendo executado localmente. Todas as conexões feitas em uma rede devem ser seguras, e você nunca deve deixar o banco de dados aberto para que alguém faça força bruta em uma conexão.

A melhor solução: execute seu banco de dados em uma sub-rede privada

Conectar-se pela Internet é arriscado. Você nunca deve deixar seu banco de dados aberto para a web, pois ele simplesmente aumenta sua superfície de ataque sem motivo. Com as senhas adequadas configuradas, não permitirá que ninguém o invadir instantaneamente, mas geralmente não é necessário ter um banco de dados acessível ao público.

Com isso dito, geralmente é benéfico para a arquitetura ter bancos de dados executados em servidores separados. A separação do banco de dados dos servidores da web permite que você gerencie individualmente. Se você quiser escalar seus servidores da Web ou adicionar réplicas de leitura para o banco de dados, é mais fácil fazê-lo se for separado.

A execução em uma máquina diferente significa que você a executará em algum tipo de rede. A melhor prática para isso é executar o banco de dados em uma sub-rede privada. A maioria dos provedores de nuvem, como a AWS, oferece a capacidade de tornar determinados servidores privados, para que não haja IP público. Você pode configurar o banco de dados para escutar o endereço IP privado.

Dessa forma, as conexões feitas com o banco de dados ocorrem apenas dentro da sua VPC ou nuvem privada virtual. O usuário está se conectando ao servidor público da Web, que conversa com o banco de dados para o usuário sem que ele precise saber o endereço do servidor de banco de dados.

Essa configuração é bem fácil de configurar. A maioria dos provedores de nuvem terá controles para criar sub-redes privadas, mas se você quiser lidar com isso sozinho, poderá obter o mesmo efeito com um firewall que permite apenas conexões de endereços privados:

 sudo ufw allow from 172.16.0.0/12 para qualquer porta 22 

Isso bloqueará todas as solicitações do servidor provenientes de um IP público, impedindo efetivamente o acesso do servidor ao mundo exterior, embora você provavelmente deseje manter o SSH aberto de alguma forma para fins administrativos.

Para administração de longa distância, IPs da lista de permissões

Se você deseja acessar o banco de dados de sua própria máquina, deve conectar-se pela Internet. A solução mais simples para fazer isso com segurança é apenas colocar na lista branca o IP da máquina que você está usando para administração. Isso não substitui a senha, mas é muito melhor do que deixar alguém adivinhar.

No ufw, o firewall padrão no Ubuntu, isso pode ser feito facilmente:

 sudo ufw allow de 123.123.123.123 para qualquer porta 27017 

Você quer ter certeza de que não possui outras regras que permitam o acesso a essa porta a partir de qualquer IP.

Se você não deseja nenhum tráfego na Internet, o problema se torna um pouco mais complicado. Você precisará configurar um servidor VPN, como o OpenVPN, que seja executado na sua rede e forneça acesso gerenciado às máquinas em sub-redes privadas. Você pode conectar-se à VPN e fazer com que sua máquina aja como se estivesse na mesma VPC do banco de dados, o que lhe permitirá conectar-se diretamente a ela através de uma conexão segura. Fazer isso dessa maneira permite que o servidor de banco de dados seja totalmente bloqueado em sua própria rede, o que é um grande bônus para segurança.

Via: How to Geek

Nenhum comentário