Necesito abrir el puerto de mi servidor MySQL al exterior y, por lo que leí, la configuración predeterminada no es segura ni está cifrada.
Para eso tengo en mente algunas soluciones con su razón, pero me gustaría saber, desde un mejor punto de vista de seguridad, si me falta algo.
Primero, la idea inicial era configurar un tunel SSH, pero me temo que la conexión podría perderse de vez en cuando (incluso si lo configuro con el sistema "autossh" para que se vuelva a conectar automáticamente cuando se detiene la conexión). Mi principal preocupación es que temo perder alguna solicitud (entre el momento en que se detiene ssh tunelling y el tiempo autossh toma una nueva conexión).
Así que pensé en abrir MySQL para el exterior. Soy consciente de que esta no es la mejor opción sin trabajar para asegurarla, pero si agrego esos pasos, ¿sería mejor?
- Cambia el puerto para el exterior. Esto no impedirá que alguien encuentre el puerto correcto, pero al menos detendrá a los bots que se dirigen directamente a 3306
- Configure Mysql SSL. Esto detendrá la transmisión de datos entre el cliente y el servidor y evitará los ataques MitM.
- Permitir solo desde ciertas direcciones IP. Esto asegurará que solo las direcciones IP que deseo puedan conectarse. Esto sería administrado por IPtables
- la raíz solo estará disponible en localhost . Y todos los demás usuarios tendrán acceso restringido (a su base de datos)
Con esta configuración en mente, ¿crees que MySQL aún sería vulnerable?
Mi única idea es si alguien accediera a mi servidor web y conozca el nombre de usuario / contraseña, pero creo que una vez que alguien tiene el nombre de usuario / contraseña, la seguridad se vuelve inútil (porque ya se ha violado para obtener las credenciales)