Protección de la base de datos MySQL expuesta públicamente para el proyecto CS de grupo

2

Hola, estoy buscando un consejo. Para un curso avanzado de programación en C ++, estoy tomando otro estudiante y haciendo un proyecto. Para este proyecto, planeamos usar una base de datos MySQL como nuestra base de datos backend. Me gustaría configurar una base de datos MySQL de acceso remoto que podamos usar para el proyecto de manera que podamos usar la misma base de datos para probar nuestros programas, también de esta manera Puede usar las computadoras en el laboratorio de computadoras para programar, ya que no tendremos que llevar una computadora con MySQL instalado a la clase para trabajar en nuestro programa.

Lo que me preocupa es la seguridad de hacer algo como esto, lo que planeo hacer es crear una base de datos y un usuario. Lo que me gustaría hacer es permitir conexiones remotas de MySQL a la base de datos desde mi cuenta de usuario y restringir los inicios de sesión de root a localhost (si necesito iniciar sesión en la base de datos como root, puedo ingresar SSH a mi servidor Unix y luego iniciar sesión como root de mysql localmente por lo que el tráfico será encriptado). Lo que estoy buscando es un consejo sobre cómo puedo proteger mejor esta base de datos.

No planeo usar SSL para iniciar sesión en la base de datos como "usuario" de nuestro programa, ya que esto requerirá que se agreguen aún más bibliotecas de terceros (OpenSSL) a nuestro proyecto y realmente para mantener la cantidad de bibliotecas que están utilizando abajo.

Lo que estoy buscando es un consejo sobre la mejor manera de proteger este sistema. Solo lo mantendré durante el semestre y lo tomaré y volveré a tomar imágenes cuando termine. Se ubicará en una DMZ con el único otro host en la red que sea un servidor web de OpenBSD que estoy ejecutando.

Planeo usar el script mysql_secure_installation que se incluye con el servidor MySQL en OpenBSD cuando lo configuro para que se eliminen los usuarios de prueba y las bases de datos. Hay algo más que debo hacer además de mantener el sistema parcheado, no permitir el inicio de sesión remoto de forma remota. y usar contraseñas seguras?

Gracias por tomarse el tiempo para responder mi pregunta

    
pregunta crooked 16.09.2013 - 02:22
fuente

1 respuesta

2

la forma más sencilla, si todas las máquinas se basan en Linux / Unix, es crear túneles ssh (a veces llamados 'poor mans vpn') desde cada máquina en su servidor mysql;

  • no es necesario abrir puertos al exterior
  • no es necesario crear usuarios adicionales
  • no es necesario cambiar el permiso de acceso de mysql localmente
  • puedes trabajar con ssh-keys
  • la transferencia de datos está encriptada

ssh -p 22 -L 3306:127.0.0.1:3306 user@mysql-server -N

esto iniciará un túnel y hará que mysql @ mysql-server esté disponible localmente @ localhost: 3306

    
respondido por el that guy from over there 17.09.2013 - 10:01
fuente

Lea otras preguntas en las etiquetas