Blindando o MySQL: Configurações de segurança

O banco de dados é parte importante e fundamental de um ou vários sistemas de uma empresa, provendo informações necessárias para tomadas de decisões, lançamentos de produtos e regras de negócios, ou seja, é no banco de dados onde estão a informações mais valiosas de uma empresa.

[ Hits: 17.676 ]

Por: Allan Moraes em 28/10/2015


Instalação e configurações do Sistema Operacional



O banco de dados é parte importante e fundamental de um ou vários sistemas de uma empresa, provendo informações necessárias para tomadas de decisões, lançamentos de produtos e regras de negócios, ou seja, é no banco de dados onde estão a informações mais valiosas de uma empresa.

É fato que tanta informação valiosa em um mesmo local não é algo seguro por natureza e é ai que você, DBA, deve agir com inteligência e elaborar estratégias de segurança como: Políticas de senhas, firewall, SO, SGBD e até a própria cultura do local onde você trabalha, pois, não adianta de nada você cuidar da segurança e a sua equipe ficar trafegando o usuário e senha em plain text pela rede.

Criando uma boa estratégia de segurança você evita dores de cabeça como: Acessos indevidos, roubo ou exclusão de dados e indisponibilidade no serviço. Então hoje estarei ensinando alguns truques e passando algumas dicas de como deixar o seu SGBD mais seguro para que você consiga dormir a noite.

Minha primeira dica é: instale o MySQL apenas em sistemas Linux. Pode ser Debian, Suse, Redhat, CentOS, Ubuntu etc. Além do SGBD ter uma performance maior nestes sistemas, teremos uma maior maleabilidade e facilidade de trabalhar com o MySQL e implementar rotinas que possam nos ajudar.

Não deixe os backups do seu MySQL onde está instalado o seu SGBD. Além de não ser uma prática nem um pouco inteligente e muito menos eficaz, você facilita a vida do invasor. Sempre coloque o seu backup em um servidor separado, específico para este serviço e sempre tente trafegar os dados com TLS.

Caso você tenha instalado o MySQL via repositório oficial via yum ou apt-get, por exemplo, você já terá esta configuração pronta, caso tenha compilado o source code, você deve criar um usuário para o MySQL. Este usuário será o responsável por controlar o serviço. Vamos aos comandos para criar o usuário e setar as permissões:

# useradd mysql -d /localdeinstalacao -b /sbin/nologin
# chown mysql:mysql /localdeinstalacao -R


Não esqueça de configurar o seu my.cnf na sessão [ mysqld ] o usuário: "user=mysql" e de configurar as permissões deste arquivo:

# chmod 400 /etc/my.cnf
# chown mysql:mysql /etc/my.cnf


Nunca, jamais, em hipótese alguma faça isso:

# mysql -u root -p'minhasenha'

Assim, você está gravando o seu login de administração no history do Linux! Outra falha clássica é colocar o usuário e senha em um arquivo para não precisar digitar a senha para se logar via mysqlclient. Fazendo isso você está deixando a chave na porta para o invasor.

A próxima dica é: após efetuar a instalação do seu SGBD, execute o programa de configuração de segurança do MySQL. Ele fará diversas checagens e perguntará se as quer corrigir ou não. A primeira é a mais importante de todas: "Você quer trocar a senha de root?".

# mysql_secure_installation

Outra falha de segurança grotesca e que muitos esquecem de fazer é remover o .mysql_history, que fica na home do seu usuário. Neste arquivo ficam armazenados todos os comandos que você executa no mysqclient e dependendo da versão, até os comandos que contêm senhas ficam lá. Um solução é colocar na cron para remover este arquivo a cada 10 minutos, mas não é efetiva. Eu indico criar um link simbólico para o /dev/null, pois esta solução sim resolve o seu problema.

# ln -s /dev/null /SUAHOME/.mysql_history

E a dica mais óbvia, mas que é sempre bom lembrar: não deixe o seu sistema desatualizado! Crie rotinas de update no SO da máquina e no seu SGBD, a falha de updates pode ser tão ou até mais grave do que uma senha fraca. Aliás, não use senhas fracas e óbvias.

    Próxima página

Páginas do artigo
   1. Instalação e configurações do Sistema Operacional
   2. Firewall e Rede
   3. MySQL e seus usuários
Outros artigos deste autor

Fazendo backup do seu MySQL com API do Dropbox

Leitura recomendada

Gerenciando banco de dados com MySQL (parte 2)

Gerenciando banco de dados com MySQL (Parte 1)

Instalando o MySQL no Slackware

MariaDB + phpMyAdmin no Ubuntu 12.04 LTS

Cluster MySQL - Instalação e configuração

  
Comentários
[1] Comentário enviado por fabio em 28/10/2015 - 12:33h

Excelente artigo, meus parabéns!

[2] Comentário enviado por MySQLBox em 28/10/2015 - 12:43h


[1] Comentário enviado por fabio em 28/10/2015 - 12:33h

Excelente artigo, meus parabéns!


Obrigado, Fabio!

[3] Comentário enviado por wleite em 07/11/2015 - 11:48h

Parabéns pelo artigo!!! As dicas são muito boas!!!

[4] Comentário enviado por wagnerfs em 09/11/2015 - 11:44h

Parabéns pelo artigo e obrigado por compartilhar o conhecimento.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

[5] Comentário enviado por UrielRicardo em 20/10/2016 - 15:38h

Boa!
Sysadmin


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts