Avertissement MySQL «L'adresse IP n'a pas pu être résolue»


36

J'ai la configuration MySQL Master / Slave et j'ai remarqué les avertissements suivants dans les fichiers journaux mysql sur les deux serveurs:

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

J'ai vérifié et les recherches DNS fonctionnent bien et la plupart de ces adresses IP proviennent de Chine.

Je prévois de limiter l'accès au port 3306 sur le pare-feu, mais pourriez-vous m'aider, s'il vous plaît, à comprendre ce qu'ils tentent de faire. Sont-ils simplement en train d'essayer de se connecter au serveur MySQL? Où je peux chercher plus de détails.

Merci

Réponses:


48

Lorsque vous créez un utilisateur username@example.comMySQL, MySQL doit effectuer une recherche inversée sur toutes les adresses IP qui s'y connectent pour déterminer si elles en font partie example.com.

Bien sûr, il n’existe aucune restriction quant à la création de recherches inversées. Je peux donc très facilement demander à mon fournisseur de définir la recherche inversée de mon adresse IP google.comsi je le souhaite ... ou example.comsi j’ai su que c’est ce que les utilisateurs de votre base de données ont. . Cela ne me laissera pas entrer, car MySQL effectue ensuite une recherche directe sur le domaine renvoyé pour s'assurer qu'il correspond à la même adresse IP que celle utilisée pour la connexion.

Vous pouvez désactiver ceci avec skip_name_resolvedans votre my.cnf. Il y a beaucoup de bonnes raisons pour cela .

La raison pour laquelle vous obtenez cette erreur est que l'adresse IP en question n'a aucune recherche inversée.

Vous avez également des attaquants malveillants en provenance de Chine qui tentent de s’imposer de force dans votre base de données. Cela devrait être votre priorité absolue.


1
peut-il y avoir aucun problème pour localhost ?
Malay M

Je ne pense pas qu'il y ait un trou de sécurité là-bas, car si une recherche inversée pour une adresse IP est résolue localhost, MySQL continuera à effectuer la recherche directe localhostpour s'assurer qu'elle correspond à l'adresse IP d'origine. Cependant, comme pour tout ce qui concerne la sécurité, ne vous fiez pas à moi simplement là-dessus. Et il vaut toujours mieux désactiver la résolution de noms dans votre configuration.
Ladadadada

13

Je pense que c'est une très très mauvaise idée d'exposer vos serveurs de bases de données directement sur Internet.

Si vous effectuez une réplication sur un hôte distant et que vous avez besoin d'un accès Internet, nous vous conseillons de configurer un VPN entre les deux réseaux et de lier vos serveurs MySQL pour n'écouter que le réseau local.

Si vos deux hôtes sont sur le même réseau local, vous pourrez relier vos serveurs mysql à ce réseau en toute sécurité.


1

Cela vient d’être attrapé par Amazon RDS. Je voulais seulement me connecter à mon instance de base de données de test (ce qui suit n'est absolument pas recommandé pour les bases de données de production):

Les groupes de sécurité dans Amazon RDS fonctionnent de manière différente des règles de pare-feu normales pour les instances EC2. Si vous ouvrez un port MySQL pour une adresse IP spécifique, celle-ci doit être reconnue par votre serveur MySQL. Sinon la connexion est refusée. La solution temporaire consiste à créer un nouveau groupe de sécurité, c’est- anyone_can_connect_to_mysqlà- dire avec un seul élément. Autorisez la connexion entrante MySQL / Aurora depuis Internet et attachez ce groupe de sécurité à votre base de données.

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

Cela supprime la vérification IP des connexions client afin que vous soyez libre de vous connecter. N'oubliez pas de détacher la anyone_can_connect_to_mysqlstratégie de la base de données une fois les problèmes de résolution résolus.


0

Lors de la connexion à Mysql à distance, une erreur s'est produite. J'ai eu cet avertissement dans /var/log/mysqld.log:

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

Je viens d'ajouter cette ligne au /etc/hostsfichier:

X.X.X.X some_name

Problème résolu! sans utiliser skip-name-resolve, cela a causé des erreurs dans mon application locale lors de la connexion à mysql.


Il y a plus d'un an, mais avez-vous dû redémarrer MySQL? Cela n'a pas fonctionné pour moi.
Ejoso

Vous ne le feriez pas puisque le fichier hosts est géré sur le client, pas sur le serveur mysql.
leeman24
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.