Puede haber desde uno hasta más de diez puertos utilizados dentro de su ecosistema MySQL. Realmente depende de lo que haya habilitado, de los componentes que esté utilizando, de cómo se conecten sus aplicaciones y de otras características de su entorno.
Desde el punto de vista de la seguridad, estos puertos deben abrirse lo suficiente como para permitir que los distintos componentes que deben comunicarse se comuniquen mientras se bloquea cualquier otra cosa que intente hackear su camino – el objetivo es hacer cumplir el principio de seguridad de «mínimo privilegio». Obviamente, lo que no debes hacer es abrir todo para que las cosas funcionen, sólo para descubrir más tarde que te has dejado completamente expuesto y hackeado. No seas «ese administrador o DBA».
Por supuesto, la forma de bloquear y abrir los puertos con reglas de entrada y salida adecuadas depende de tu entorno – donde tienes varias herramientas cortafuegos, VPNs, capacidades de los sistemas operativos, etc. Con algunos de nuestros paquetes de instalación, nuestro objetivo es ser seguros por defecto, así como la facilidad de uso, y vamos a ayudar, pero normalmente sólo para los puertos más básicos. Por ejemplo, el instalador de MySQL para Windows añadirá reglas al cortafuegos de Windows, o los paquetes de Linux añaden reglas a SELinux o AppArmor.
Sin embargo, para los puertos menos comunes, opcionales o específicos de productos externos, no los abrimos para usted en nuestros paquetes, por lo que tendrá que hacerlo usted mismo en esos casos. Con comandos como el de SELinux como
semanage port -a -t mysqld_port_t -p tcp <puerto abierto a mysqld>
De todos modos, para este blog el objetivo es sólo el conocimiento de los puertos, así que sólo quería enumerarlos para asegurarme de que se conocen y entienden en relación a
- Qué son
- Qué los usa
- Cuando se usan
- ¿Está la comunicación encriptada por defecto (Sí en la mayoría de los casos)
- Limitar el acceso
Esta referencia se aplica a MySQL 5.7 y 8.0
Visualmente se ve algo así.
Esto NO es una referencia completa – las tablas de abajo proporcionan la referencia completa.
O para todos los detalles vea
- Referencia detallada de los puertos de MySQL – PDF
Y una práctica tabla de referencia rápida de puertos MySQL
Puertos MySQL
Tecnología | Puerto por defecto | SSL|Enc Def. | Requerido |
---|---|---|---|
Conexiones cliente – servidor (cliente msql, conectores, mysqldump, mysqlpump) |
|||
Cliente MySQL a Servidor – Protocolo MySQL – 3306 | 3306/tcp | Y a menos que sólo utilice 33060 | |
MySQL Client to Server – New X Protocol – 33060 | 33060/tcp | Y | Y a menos que sólo se utilice 3306 |
MySQL Shell | |||
MySQL Client to Server – Protocolo MySQL – 3306 | 3306/tcp | Y a menos que sólo utilice 33060 | |
Cliente MySQL a Servidor – Nuevo Protocolo X – 33060 | 33060/tcp | Y | Y a menos que sólo utilice 3306 |
Para comprobaciones de Shell al servidor GR durante la configuración del clúster InnoDB. | 33061/tcp | Y | Y si se ejecuta el Cluster InnoDB |
MySQL Workbench | |||
MySQL Client to Server – Protocolo MySQL – 3306 | 3306/tcp | Y | Opcional – elegir al menos 1 |
Cliente MySQL a Servidor – Nuevo Protocolo X – 33060 | 33060/tcp | Y | Opcional – elija al menos 1 |
Conecta vía túnel SSH | 22/tcp | Y | Opcional – elija al menos 1 |
Conexiones Cliente – Router – | |||
Cliente MySQL Cualquier SQL al Router – Protocolo MySQL | 6446/tcp | Inherited | Requerido si el router proporciona acceso RW |
Cliente MySQL ReadOnly SQL al router – Protocolo MySQL | 6447/tcp | « | Requerido si el router proporciona acceso ReadOnly |
MySQL Router to Server – Protocolo MySQL | 3306/tcp | «» | Requerido |
Cliente MySQL Cualquier llamada API al Router – Nuevo Protocolo X – 33060 | 6448/tcp | «» | Requerido si el Router proporciona acceso RW |
Llamadas de sólo lectura del cliente MySQL al router – Nuevo protocolo X – 33060 | 6449/tcp | «» | Requerido si el router proporciona acceso de sólo lectura |
MySQL Router al Servidor – Nuevo Protocolo X – 33060 | 33060/tcp | «» | Requerido |
Alta disponibilidad | |||
Puerto de comunicaciones internas de replicación de grupo MySQL – 33061 | 33061/tcp | Y | Y |
MySQL Replication | 3306/tcp | Y | Y |
Autenticación externa* | |||
Autenticación empresarial MySQL – LDAP * | 389/tcp | Y | Sólo si se utiliza la autenticación externa a LDAP. También admite el uso de SASL |
Autenticación empresarial de MySQL – AD * | 389/tcp | Y | Sólo si se utiliza la autenticación externa en LDAP |
Gestión de llaves (para TDE, Funciones de llavero, etc.) * | |||
KMIP – utilizado con Oracle Key Vault, Gemalto KeySecure, servidor de gestión de claves Thales Vormetric, Fornetix Key Orchestration * | Varía, véase la documentación específica del gestor de claves/bóveda. | Sí | Sólo se requiere si TDE está utilizando un servidor KMIP |
Servicios de claves – AWS KMS * | 443/tcp | Y | Sólo se requiere si TDE está utilizando AWS KMS |
Respaldo de MEB | |||
Comunicarse con la instancia local | 3306/tcp | Y | Opcional – puede conectarse con tcp|socket|pipe|memory |
Si la replicación del clúster/grupo InnoDB | 3306/tcp | Y | Requerido para la copia de seguridad del clúster InnoDB |
Oracle Object Store | 443/tcp | Y | Opcional |
AWS S3 | 443/tcp | Y | Opcional |
Copia de seguridad al gestor de medios (SBT API) * | Varía – Consulte la documentación específica del gestor de medios de copia de seguridad | Dependiente del proveedor | Opcional |