É seguro conectar-se remotamente ao Mysql usando o shell?

2

Eu criei um script de shell para se conectar a um banco de dados e fazer algumas consultas:

#/!bin/bash
...
...
mysql -h remote -u root --password='pw' MatchingDB 
some SQL queries 

Minha pergunta é: Essa conexão é considerada como Conexão segura? Qualquer atacante pode farejar qualquer consulta que eu enviar para o banco de dados remoto ou talvez alterar as consultas que eu enviei?

    
por Networker 21.05.2014 / 00:26

2 respostas

2

Sim, mas não forneça a senha na linha de comando. Ele solicitará a senha quando você a omitir das chaves da linha de comando.

Exemplo

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 227743
Server version: 5.0.95 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Manuseando sua senha com segurança

Dê uma olhada nas recomendações da documentação do MySQL. A página intitulada: 6.1.2.1 Diretrizes para o usuário final sobre segurança de senha destaca os vários métodos e discute os prós e contras de cada um.

Das opções discutidas, você provavelmente desejará usar um arquivo de opções.

trecho

Store your password in an option file. For example, on Unix, you can list your password in the [client] section of the .my.cnf file in your home directory:

   [client]
   password=your_pass

To keep the password safe, the file should not be accessible to anyone but yourself. To ensure this, set the file access mode to 400 or 600. For example:

   shell> chmod 600 .my.cnf

   shell> mysql --defaults-file=/home/francis/mysql-opts

Todos os métodos discutidos têm seus problemas de uma perspectiva de segurança, mas esse é provavelmente o menos arriscado, supondo que o diretório em que você está executando esteja isolado de outros com acesso privilegiado.

Usando cofres

Se o trabalho que você vai fazer é o que eu chamaria de instalações de "suporte à produção", então usar cofres de senhas é o mecanismo apropriado aqui. Você pode ler mais sobre eles neste MySQL, intitulado: 5.3.6 O armazenamento de senhas Cofre .

No Linux, especificamente no GNOME, você estaria usando o daemon do GNOME gnome-keyring .

Referências

por 21.05.2014 / 00:30
1

Você provavelmente deve ativar o suporte SSL para a conexão.

Para verificar se um mysqld server suporta SSL , examine o valor da variável de sistema have_ssl ,

mysql> SHOW VARIABLES LIKE 'have_ssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl      | YES   |
+---------------+-------+

Se o valor for YES , o servidor suportará conexões SSL . Se o valor for DISABLED , o servidor é capaz de suportar conexões SSL, mas não foi iniciado com as opções --ssl-xxx apropriadas para permitir que elas sejam usadas.

Provavelmente, confira aqui sobre como configurar o mysql servidor com suporte a SSL.

    
por 21.05.2014 / 00:31