Advertencia de MySQL "No se pudo resolver la dirección IP"

36

Tengo la configuración MySQL Master / Slave y he notado las siguientes advertencias en los archivos de registro de mysql en ambos servidores:

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

Lo he comprobado y las búsquedas de DNS funcionan bien y la mayoría de estas IP son de China.

Planeo limitar el acceso al puerto 3306 en el firewall, sin embargo, ¿podrían ayudarme a entender lo que están tratando de hacer? ¿Están tratando de conectarse al servidor MySQL? Donde puedo buscar más detalles.

Gracias

HTF
fuente

Respuestas:

48

Cuando crea un usuario [email protected]MySQL, MySQL tiene que hacer una búsqueda inversa en cada dirección IP que se conecta a ella para determinar si son parte de ella example.com.

Por supuesto, no hay restricciones para crear búsquedas inversas, por lo que puedo pedirle a mi proveedor que establezca la búsqueda inversa de mi dirección IP google.comsi lo deseo ... o example.comsi sé que eso es lo que tienen los usuarios de su base de datos . Esto no me deja entrar, ya que MySQL realiza una búsqueda directa en el dominio devuelto para asegurarse de que coincida con la misma dirección IP que se está conectando.

Puede desactivar esto skip_name_resolveen su my.cnf. Hay muchas buenas razones para hacerlo .

La razón por la que obtiene este error es que la dirección IP en cuestión no tiene ninguna búsqueda inversa.

También tiene atacantes maliciosos de China que intentan ingresar por la fuerza bruta a su base de datos. Esa debería ser tu máxima prioridad.

Ladadadada
fuente
1
¿Puede haber algún problema para localhost ?
Malayo M
No creo que haya un agujero de seguridad allí porque si se resuelve una búsqueda inversa de alguna dirección IP localhost, MySQL seguirá haciendo la búsqueda directa localhostpara asegurarse de que coincida con la dirección IP original. Sin embargo, como ocurre con todo lo relacionado con la seguridad, no confíes en mí en esto. Y aún es mejor desactivar la resolución de nombres en su configuración.
Ladadadada
13

Creo que es una muy, muy mala idea exponer sus servidores de bases de datos directamente en Internet.

Si se está replicando en un host remoto y necesita acceso a Internet para lograrlo, le sugiero que configure una VPN entre las dos redes y conecte sus servidores MySQL para escuchar solo la red local.

Si sus dos hosts están en la misma red local, estará seguro de vincular sus servidores mysql a esa red.

m0ntassar
fuente
1

Acabo de quedar atrapado por esto también en Amazon RDS. Solo quería conectarme a mi instancia de base de datos de prueba (lo siguiente definitivamente no se recomienda para las bases de datos de producción):

Los grupos de seguridad en Amazon RDS funcionan de manera diferente a las reglas normales de firewall para las instancias EC2. Si abre el puerto MySQL para la IP específica, la IP debe ser reconocida por su servidor MySQL. Si no, se rechaza la conexión. La solución temporal es crear un nuevo grupo de seguridad, es decir, anyone_can_connect_to_mysqlcon un solo elemento: permitir la conexión entrante MySQL / Aurora en cualquier lugar desde Internet y adjuntar este grupo de seguridad a su base de datos.

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

Esto elimina la comprobación de IP de las conexiones del cliente, por lo que puede conectarse libremente. No olvide separar la anyone_can_connect_to_mysqlpolítica de la base de datos una vez que los problemas de resolución hayan terminado.

musketyr
fuente
0

Al conectarme a Mysql de forma remota, recibí un error. Tenía esta advertencia en /var/log/mysqld.log:

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

Acabo de agregar esta línea al /etc/hostsarchivo:

X.X.X.X some_name

¡Problema resuelto! sin usar skip-name-resolve, causó algunos errores en mi aplicación local, al conectarme a mysql.

Amin Sh
fuente
Hace más de un año, pero ¿tuviste que reiniciar mysql? Esto no funcionó para mí.
Ejoso
No lo haría ya que el archivo de hosts se gestiona en el cliente, no en el servidor mysql.
leeman24