Quão ruim é definir o bind-address do MySQL como 0.0.0.0?

33

Estou tentando permitir que um servidor remoto acesse uma instância do MySQL que atualmente compartilha um servidor Linux com um aplicativo da web. De acordo com a documentação , a única maneira de isso ser possível ( a menos que eu não esteja entendendo corretamente) é se a diretiva bind-address está definida para 0.0.0.0 , o que resulta no MySQL permitindo acesso de qualquer IP que possa produzir um válido usuário.

Então, duas perguntas:

  1. quão prejudicial seria isso para a segurança?
  2. há uma abordagem melhor para permitir a interação local e remota com o MySQL?
por jonathanatx 08.04.2011 / 21:54

2 respostas

33

Eu acho que você está entendendo mal o ajuste bind-address . Estes são os endereços locais que o MySQL irá escutar para conexões. O padrão é 0.0.0.0, que é todas as interfaces. Essa configuração não restringe quais IPs podem acessar o servidor, a menos que você tenha especificado 127.0.0.1 somente para host local.

Se você precisar restringir certos usuários de endereços IP específicos, utilize o usuário create / grant como este CREATE USER 'bobdole'@'192.168.10.221';

    
por 08.04.2011 / 22:04
1

a. É mau. Mesmo que você possa restringir o acesso do usuário por ip em cada banco de dados, eu acho mais seguro ter todas as conexões disponíveis localmente. Nos meus servidores eu permito que o MySQL aceite apenas conexões locais, 127.0.0.1 como é a configuração padrão. Para acessar o banco de dados remotamente, tudo o que você precisa fazer é criar um túnel ssh antes de se conectar ao banco de dados e, em seguida, conectar-se localmente. Se você está codificando com o php é muito fácil fazer isso. Se você estiver usando um aplicativo de desktop, é fácil fazê-lo no Linux (procure pelo túnel ssh). No Windows, eu normalmente uso um programa como o Putty para fazer o túnel para mim.

    
por 08.04.2011 / 22:03