Aviso do MySQL "O endereço IP não pôde ser resolvido"


36

Eu tenho a configuração MySQL Master / Slave e notei os seguintes avisos nos arquivos de log do mysql nos dois servidores:

[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known

Eu verifiquei e as pesquisas de DNS funcionam bem e a maioria desses IPs é da China.

Estou planejando limitar o acesso na porta 3306 no firewall. No entanto, você poderia me ajudar a entender o que eles estão tentando fazer. Eles estão apenas tentando se conectar ao servidor MySQL. Onde posso procurar mais alguns detalhes.

obrigado

Respostas:


48

Quando você cria um usuário do MySQL, o username@example.comMySQL precisa fazer uma pesquisa inversa em todos os endereços IP conectados a ele para determinar se eles fazem parte example.com.

Obviamente, não há restrição para a criação de pesquisas reversas; portanto, posso pedir com satisfação ao meu provedor que defina a pesquisa inversa para o meu endereço IP, google.comse eu quiser ... ou example.comse eu souber que é isso que os usuários do seu banco de dados têm. . Isso não me deixa entrar, pois o MySQL faz uma pesquisa direta no domínio retornado para garantir que ele corresponda ao mesmo endereço IP que está se conectando.

Você pode desativar isso com o skip_name_resolveseu my.cnf. Existem muitas boas razões para fazer isso .

O motivo pelo qual você está recebendo esse erro é que o endereço IP em questão não tem pesquisa inversa.

Você também tem atacantes maliciosos da China tentando entrar no seu banco de dados com força bruta. Essa deve ser sua principal prioridade.


1
pode haver algum problema para o host local ?
M malaio

Eu não acho que haja uma brecha na segurança porque, se uma pesquisa inversa para algum endereço IP for resolvida localhost, o MySQL ainda fará a pesquisa direta localhostpara garantir que ele corresponda ao endereço IP original. No entanto, como em todas as coisas relacionadas à segurança, não confie apenas em mim. E ainda é melhor desativar a resolução de nomes na sua configuração.
Ladadadada

13

Acho uma péssima idéia expor seus servidores de banco de dados diretamente na internet.

Se você estiver replicando para um host remoto e precisar de acesso à Internet para isso, sugiro que você configure uma VPN entre as duas redes e ligue seus servidores MySQL para ouvir apenas a rede local.

Se os dois hosts estiverem na mesma rede local, você estará seguro para ligar seus servidores mysql a essa rede.


1

Só fui pego por isso também no Amazon RDS. Eu só queria conectar-me à minha instância de banco de dados de teste (definitivamente não é recomendado a seguir para bancos de dados de produção):

Os grupos de segurança no Amazon RDS funcionam de maneira um pouco diferente das regras normais de firewall para as instâncias do EC2. Se você abrir a porta MySQL para o IP específico, o IP deverá ser reconhecido pelo seu servidor MySQL. Caso contrário, a conexão será recusada. A solução temporária é criar um novo grupo de segurança, ou seja, anyone_can_connect_to_mysqlcom apenas um único item - permita a conexão de entrada MySQL / Aurora em qualquer lugar da Internet e conecte esse grupo de segurança ao seu banco de dados.

Inbound
-----------------------------------------
| MYSQL/Aurora | TCP | 3306 | 0.0.0.0/0 |
-----------------------------------------

Isso remove a verificação de IP das conexões do cliente para que você possa se conectar. Não se esqueça de desanexar a anyone_can_connect_to_mysqlpolítica do banco de dados assim que os problemas de resolução terminarem.


0

Ao conectar-me ao Mysql remotamente, recebi um erro. Eu recebi este aviso em /var/log/mysqld.log:

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

Acabei de adicionar esta linha ao /etc/hostsarquivo:

X.X.X.X some_name

Problema resolvido! sem usar skip-name-resolve, causou alguns erros no meu aplicativo local ao conectar ao mysql.


Há mais de um ano, mas você teve que reiniciar o mysql? Isso não funcionou para mim.
Ejoso

Você não faria isso, já que o arquivo hosts é gerenciado no cliente e não no servidor mysql.
leeman24 4/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.