Puerto 3306 (MySQL / MariaDB): para qué sirve y cómo protegerlo
El puerto 3306 TCP es el puerto por defecto de MySQL y MariaDB. Las aplicaciones (WordPress, Laravel, Nextcloud) se conectan por él a la base de datos. Debe estar cerrado a Internet: si la aplicación está en el mismo servidor, MySQL debería escuchar solo en 127.0.0.1.
Qué es el puerto 3306
En Ubuntu y Debian, MySQL escucha por defecto solo en localhost (bind-address = 127.0.0.1). Cambiarlo a 0.0.0.0 para conectar desde casa con un cliente gráfico es un error habitual: deja la base de datos expuesta a todo Internet.
Para administrarla en remoto, lo más seguro es un túnel SSH: la conexión pasa cifrada por el puerto 22 y MySQL sigue escuchando solo en local.
¿Es peligroso tener abierto el puerto 3306?
Riesgo alto: No debe estar abierto a Internet.
- Fuerza bruta contra root y otros usuarios.
- Ataques de ransomware que borran las tablas y dejan una nota de rescate.
Cómo proteger el puerto 3306
- bind-address = 127.0.0.1 si la aplicación está en el mismo servidor.
- Usuarios con host concreto ('app'@'10.0.0.5'), nunca '%'.
- Túnel SSH para administrar en remoto.
- mysql_secure_installation tras instalar.
Comandos y configuración
Comprobar si el puerto 3306 está abierto
sudo ss -tlnp | grep ':3306 '
nc -zv 203.0.113.10 3306
sudo nmap -p 3306 203.0.113.10Túnel SSH para usar DBeaver o MySQL Workbench
ssh -N -L 3307:127.0.0.1:3306 ana@203.0.113.10
# y conecta el cliente a 127.0.0.1:3307¿En qué interfaz escucha MySQL?
sudo ss -tlnp | grep 3306
grep -R "bind-address" /etc/mysql/Usuario limitado a una IP
CREATE USER 'app'@'10.0.0.5' IDENTIFIED BY 'una-clave-larga-y-unica';
GRANT SELECT, INSERT, UPDATE, DELETE ON tienda.* TO 'app'@'10.0.0.5';También puedes comprobarlo desde fuera de tu red con nuestro escáner de puertos online.
Herramientas para comprobarlo
Preguntas frecuentes
¿Cómo me conecto a MySQL de un servidor remoto sin abrir el 3306?
Con un túnel SSH (ssh -L 3307:127.0.0.1:3306 usuario@servidor) y conectando el cliente a localhost:3307.
¿Es peligroso abrir el puerto 3306?
Sí. Los bots lo escanean continuamente y prueban contraseñas. Una base de datos expuesta con una contraseña débil se compromete en horas.