Tendo um
MySQL bem instalado, um SO bem configurado junto com
firewall e rede confiável, já teremos uma boa "blindagem", mas ainda falta um passo muito importante que é a configuração dos usuários que você cria no seu SGBD. Um usuário com acesso externo e senha fraca pode ser um prato cheio para um final de semana inteiro de trabalho e restaurações de backups.
Após a instalação e a troca de senha do root, eu sempre indico que criem um novo usuário de administração e excluam o seu usuário root. Isso vai dificultar bastante a vida do invasor. Acesse o seu SGBD com o mysqlclient e crie o novo usuário:
mysql>
GRANT ALL PRIVILEGES ON *.* TO SEUNOVOUSUARIO@localhost IDENTIFIED BY 'SUASENHA' WITH GRANT OPTIONS;
Algumas observações:
- Nunca abra o acesso do seu usuário de administração para fora do servidor, sempre o crie para "localhost";
- Não coloque nada como administrator, admin ou algo do gênero;
- Utilize uma senha forte e a troque a cada 15 ou 30 dias;
- Tenha apenas um administrador do SGBD.
Após criar o seu novo administrador, tente logar com o novo usuário e criar e excluir um banco de teste, usuário etc. Se todos os testes ocorrem bem, podemos excluir o usuário root. Primeiro vamos ver quais usuários root existem:
mysql>
SELECT user,host FROM mysql.user WHERE user = 'root';
Agora que sabemos os usuários com nome de root que temos, podemos excluí-los.
mysql>
DROP USER root@localhost;
mysql>
DROP USER root@'::1';
mysql>
DROP USER root@'127.0.0.1';
Com o usuário de administração configurado, aqui vão algumas dicas de segurança para os usuários:
1. Evite criar usuários que o host seja '%'. Isto quer dizer que o usuário possui acesso de qualquer IP, tente sempre habilitar o acesso apenas para um IP fixo;
2. Ao criar um usuário comum, cuidado com as permissões. Nada de ALL PRIVILEGES ou WITH GRANT OPTIONS. Seja específico dando as permissões necessários como: SELECT, CREATE, DROP, UPDATE, DELETE;
3. Evite dar permissões para o banco todo. Nunca faça isso "ON *.* TO", assim você está permitindo que este usuário tenha acesso a todos os bancos de dados do seu SGBD. De preferência para "ON banco.* TO", assim este usuário só terá permissão no seu banco;
4. Crie senhas fortes (sempre é bom lembrar);
5. Ao remover um banco de dados remova o usuário, não o deixe sem um banco.
Então é isso pessoal. Espero que tenham gostado e se tiverem alguma dúvida ou sugestão é só entrar em contato e enviar a sua opinião.
Acessem
www.mysqlbox.ml para encontrar mais conteúdo relacionado ao MySQL ou entrar em contato!