¿El puerto 3306 de MySQL está encriptado y, si no, cómo puedo encriptarlo?

26

Estoy trabajando a través de una auditoría de seguridad para un sistema en mi trabajo y uno de los requisitos es cifrar todo el tráfico a través de redes públicas / desprotegidas. Como estamos accediendo a la base de datos MySQL (a través del puerto 3306) en uno de nuestros servidores externos desde la red de nuestra oficina, la conexión a MySQL necesita ser encriptada.

¿Ya está encriptado, y si no, cómo puedo encriptarlo?

Estoy usando herramientas y scripts que no pueden usar SSH-port-forward o VPNs ... ¿aún es posible?

Stephen RC
fuente
1
Solo para las personas que se topan con este hilo El documento está ahora (2018) en otro enlace más; dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
CeD

Respuestas:

14

No, por defecto el tráfico mysql no está encriptado. Configurar MySQL para que funcione con OpenSSL por conexión es su mejor opción. La mayoría de los archivos binarios están diseñados con soporte SSL en estos días, pero es bastante fácil verificar si su versión lo admitirá. De la documentación:

Para verificar si un servidor binario está compilado con soporte SSL, invoque con la opción --ssl. Se producirá un error si el servidor no es compatible con SSL:

shell> mysqld --ssl --help
060525 14:18:52 [ERROR] mysqld: unknown option '--ssl'
nedm
fuente
El hipervínculo está muerto.
JellicleCat
Enlace para la v5.6: dev.mysql.com/doc/refman/5.6/en/ssl-connections.html (también actualizado arriba)
SMHG
6

Por defecto, MySQL no cifra su comunicación cliente / servidor:

Puede configurar MySQL para aceptar conexiones a través de SSL y exigir a los usuarios que usen SSL. Aquí está la guía para la configuración de SSL:

sreimer
fuente
los enlaces están rotos
knocte