Como posso me conectar ao MySQL remotamente e ainda mantê-lo seguro?

5

Como você sabe, manter a porta do MySQL 3306 aberta não é segura. No entanto, eu gostaria de usar um bom programa de administração do MySQL em vez do phpMyAdmin, que requer que a porta 3306 esteja aberta.

É claro que só posso permitir que meu endereço IP se conecte à porta 3306 usando o ipfw. O problema é que meu endereço IP muda a cada 24 horas, então eu teria que adicionar uma nova regra para cada endereço IP.

Não existe uma maneira melhor de manter o MySQL seguro e ainda usar a conexão remota?

    
por Cyclone 25.02.2012 / 15:54

1 resposta

9

Sim, com o encaminhamento de porta SSH.

Na sua máquina local, emita o comando

ssh -L 3306:127.0.0.1:3306 [email protected]

e, em seguida, você pode conectar sua ferramenta de administração local do MySQL à porta 3306 em sua máquina local. Você tem que considerar que para o MySQL a conexão parece vir também de 127.0.0.1 , então os direitos de acesso para seu usuário MySQL devem ser ajustados de acordo.

Se acontecer de você usar um servidor MySQL na máquina local, a porta 3306 já estará ocupada, mas você pode simplesmente usar uma porta diferente para o encaminhamento ( 13306:127.0.0.1:3306 ) e depois apontar sua ferramenta de administração para aquela porta diferente.

(Mais informações com man ssh ).

Editar Mais algumas explicações como resposta aos seus comentários:

  1. Você usará esse comando em sua máquina local, onde normalmente trabalha, antes de realizar algum trabalho administrativo no banco de dados. O que é fazer é criar um túnel via SSH que encaminha todo o tráfego indo para uma porta em sua máquina local para outra porta em outra máquina.
  2. Neste caso, o túnel termina no servidor MySQL, que você contata diretamente via SSH. A parte [email protected] é apenas um espaço reservado, substitua-o pelo nome de usuário da sua conta do shell e pelo endereço IP ou nome do host do servidor MySQL. Da sua máquina local, isso definitivamente não será localhost . Esta parte não é de todo sobre seu nome de usuário do MySQL, porque o SSH não sabe sobre o MySQL.
  3. Se você trabalha como root em seu banco de dados, você conectará sua ferramenta de administração do MySQL à porta 3306 no host 127.0.0.1 e usará o nome de usuário root . Embora você trabalhe a partir de um host remoto, para o servidor MysQL, a conexão parece vir de localhost , portanto, as permissões de acesso devem ser definidas de acordo.
  4. O
  5. encaminhamento / tunelamento de porta SSH é uma ferramenta extremamente poderosa. Você deve definitivamente ler mais sobre isso.
por 25.02.2012 / 15:58