6 dicas de segurança para o MySQL/MariaDB
O MySQL é, muito provavelmente, o sistema de gestão de base de dados (SGBD) mais usado em todo o mundo, estando disponível em várias versões e para diferentes sistemas operativos. Por outro lado o MariaDB (fork do MySQL) tem tido um crescimento fantástico.
Hoje deixamos 6 dicas de segurança para quem usa o MySQL ou o MariaDB.
Por omissão, depois de instalar o MySQL/MariaDB, a segurança dos serviços não é totalmente garantida. Nesse sentido é preciso realizar alguns ajustes importantes. Aqui ficam as nossas dicas para hoje:
Dica 1 - "Instalação" segura do MySQL
Depois de instalar o MySQL/MariaDB devem executar o script mysql_secure_installation para:
- Definir uma password para o utilizador root
- Remover bases de dados de testes
- Remover utilizadores anónimos
- Não permitir o acesso remoto ao gestor de base de dados
- etc.
Durante a configuração, devem seguir os seguintes passos:
- Enter current password for root (enter for none): # DAR ENTER #
- Set root password? [Y/n] # DAR ENTER #
- New password: # Redefinir Password #
- Re-enter new password: # Redefinir Password #
- Remove anonymous users? [Y/n] Y
- Disallow root login remotely? [Y/n] Y
- Remove test database and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n] Y
Dica 2 - Permitir apenas o acesso local
Se não usar o script anterior para bloquear o acesso remoto à base de dados, pode fazê-lo através do ficheiro /etc/mysql/mariadb.conf.d/50-server.cnf adicionando, a seguir à secção mysql, o comando:
bind-address = 127.0.0.1 |
Nota: Caso pretenda definir esta alteração no MySQL, deve ser no ficheiro /etc/mysql/mysql.conf.d/mysql.cnf.
Dica 3 - Mudar o porto de ligação ao MySQL/MariaDB
Por omissão, o porto de ligação ao MySQL/MariaDB é o conhecido 3306. Para mudarem, por exemplo, para 5555, devem ir ao ficheiro /etc/mysql/mariadb.conf.d/50-server.cnf e mudar a variável port.
Dica 4 - Apagar comandos MySQL
Todos os comandos executados na shell do MySQL/MariaDB são guardados no ficheiro ~/.mysql_history.
Para apagar toda a informação desse ficheiro devem usar o comando:
cat /dev/null > ~/.mysql_history |
Dica 5 - Mude frequentemente a password de acesso ao MySQL/MariaDB
Para mudar com frequência a password de acesso ao gestor de base de dados basta que use os seguintes comandos:
MariaDB [(none)]> USE mysql; MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; |
E por hoje é tudo! Caso tenham outras dicas partilhem connosco, e com todos os leitores, nos comentários.
Este artigo tem mais de um ano
Com o bind-address = 127.0.0.1 é possível que uma aplicação a correr noutra máquina consiga ligar-se à BD?
O objectivo é mesmo q n seja possível.
Sim, caso faças acesso remoto à maquina através de SSH, depois conectas-te ao 127.0.0.1
A pergunta era no sentido de ter uma aplicação a correr num servidor aplicacional numa máquina e o MySQL noutra, i.e., se essa aplicação conseguiria estabelecer a ligação ,e.g., via JDBC, à BD. O objetivo não é ter uma sessão SSH a correr eternamente entre as 2 máquinas e fazer port-forward até à porta do MySQL.
Seria interessante poder colocar alguns endereços para limitar o acesso. Porém, só é possível colocar um único endereço.
Para esse nível de segurança, configurar o firewall ou colocar os servidores com mais de uma placa, colocando o servidor de DB em uma rede diferente.