3 votos

MySQL: ¿Es un riesgo de seguridad desactivar la configuración "bind-address"?

He tenido un problema con una aplicación web que se conecta correctamente a un servidor MySQL y para resolverlo, intenté comentar la configuración bind-address en el archivo my.ini .

Eso pareció resolver el problema, sin embargo, me preguntaba si eso es un problema con respecto a la seguridad. ¿Es esa una configuración adecuada para un entorno de producción que, por supuesto, tiene acceso restringido por usuario / contraseña? ¿Y cuál es la diferencia entre comentarlo y establecerlo en bind-address=0.0.0.0 ?

4voto

HBruijn Puntos 16577

El impacto de comentar el valor depende del valor bind-address estaba establecido antes.

Al comentar una configuración es la misma que si se establece en el valor predeterminado. El manual le mostrará el valor predeterminado: https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_bind-address

bind-address
Valor Por Defecto:
*

El manual también explica lo que significa y cómo difiere de la utilización de 0.0.0.0 :

Si la dirección es *, el servidor acepta conexiones TCP/IP en todos los host del servidor de interfaces IPv4, y, si el servidor de host soporta IPv6, en todas las interfaces de IPv6. Utilice esta dirección para permitir tanto para IPv4 como para IPv6 conexiones en todas las interfaces del servidor. Este valor es el valor predeterminado. Si la opción especifica una lista de valores múltiples, este valor no está permitido.

Si la dirección es 0.0.0.0, el servidor acepta conexiones TCP/IP en todos los host del servidor de interfaces IPv4. Si la opción especifica una lista de valores múltiples, este valor no está permitido.

Si el servidor no está protegido con un firewall que restringe el acceso al puerto TCP 3306 (el puerto por defecto de MySQL), o bien * o 0.0.0.0 acepte conexiones entrantes en todas las direcciones IPv4 del servidor se ha configurado, así como las conexiones de TCP en la dirección de loopback 127.0.0.1/8 y * además de permitir que todos los estudiantes de tráfico IPv6.

En general se considera una buena práctica de seguridad para que sólo configurar el mínimo acceso a la red de servicios.
Ambos * 0.0.0.0 y probablemente son demasiado permisivas en muchas situaciones, pero por ejemplo en un sistema que debe permitir remoto de acceso a MySQL, con una única interfaz/ip-address (es decir, 192.0.2.1) no habría efectivos de seguridad de la diferencia entre bind-address = 192.0.2.1 o bind-address = 0.0.0.0 o bind-address = *
En los servidores que no permiten remoto de acceso a MySQL (la típica LÁMPARA de servidor) bind-address = ::ffff:127.0.0.1 sería recomendable.

1voto

fromthestone Puntos 180

Hablando de seguridad, exponiendo sus datos en el mundo nunca es una buena opción.

Hablando acerca de cómo evitar lo que hiciste, si tu MySQL se ejecuta en Linux y tienes acceso SSH puede configurar un túnel y no hay necesidad de exponer MySQL para el mundo.

Aquí un ejemplo:

ssh -v -N -o ExitOnForwardFailure=yes -o ConnectTimeout=10 -o NumberOfPasswordPrompts=3 \
-i ~/.ssh/yourkey.pem -o TCPKeepAlive=no -o ServerAliveInterval=60 \
-o ServerAliveCountMax=1 \
youruser@yourhost.com -L 3306:127.0.0.1:3306

De esta manera, puede conectar su interfaz gráfica de usuario, o cualquier APLICACIÓN que usted necesita para conectar a la IP 127.0.0.1 puerto 3306 y se hace.

Si usted no desea utilizar la línea de comandos, usted puede configurar la mayoría de la interfaz gráfica de usuario para conectar a MySQL a través de un túnel SSH

Por último, si se comentando bind-address=0.0.0.0 deja que tu mysql escuchar las conexiones a través de todas las direcciones IP, no sólo en localhost (127.0.0.1)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: