Il pourrait y avoir de un à plus de dix ports utilisés dans votre écosystème MySQL. Cela dépend vraiment de ce que vous avez activé, des composants que vous utilisez, de la façon dont vos applications se connectent et d’autres caractéristiques de votre environnement.
D’un point de vue sécurité, ces ports doivent être ouverts juste assez largement pour permettre aux différents composants qui doivent communiquer de parler tout en bloquant tout ce qui essaie de pirater son chemin – le but étant d’appliquer le principe de sécurité du « moindre privilège ». Il est évident que vous ne devez pas tout ouvrir pour que les choses fonctionnent, pour découvrir plus tard que vous vous êtes laissé entièrement exposé et piraté. Ne soyez pas « cet administrateur ou DBA ».
Bien sûr, la façon dont vous bloquez et ouvrez les ports avec des règles d’entrée et de sortie appropriées dépend de votre environnement – où vous avez divers outils pare-feu, VPN, capacités des systèmes d’exploitation, etc. Avec certains de nos paquets d’installation, notre objectif est d’assurer la sécurité par défaut ainsi que la convivialité, et nous vous aiderons, mais généralement uniquement pour les ports les plus essentiels. Par exemple, l’installateur MySQL Windows ajoutera des règles au pare-feu Windows, ou les paquets Linux ajouteront des règles à SELinux ou AppArmor.
Par contre, pour les ports moins courants, optionnels ou spécifiques à un produit externe, nous ne les ouvrons pas pour vous dans nos paquets, vous devrez donc le faire vous-même dans ces cas-là. Avec des commandes comme celle pour SELinux comme
semanage port -a -t mysqld_port_t -p tcp <port ouvert à mysqld>
De toute façon, pour ce blog, le but est juste la sensibilisation aux ports, donc je voulais juste les énumérer pour être sûr qu’ils sont connus et compris par rapport à
- Ce qu’ils sont
- Qui les utilise
- Quand ils sont utilisés
- La communication est-elle cryptée par défaut (Oui dans la plupart des cas)
- Limiter l’accès
Cette référence s’applique à MySQL 5.7 et 8.0
Visuellement, cela ressemble à quelque chose comme ça.
Ce n’est PAS une référence complète – les tableaux ci-dessous fournissent la référence complète.
Ou pour tous les détails voir
- Référence détaillée des ports MySQL – PDF
.
Et un tableau pratique de référence rapide des ports MySQL
Ports MySQL
Technologie | Port par défaut | SSL|Enc Def. | Required | ||
---|---|---|---|---|---|
Client – Connexions au serveur (client msql, connecteurs, mysqldump, mysqlpump) |
|||||
Client MySQL au serveur – Protocole MySQL – 3306 | 3306/tcp | Y | Y à moins d’utiliser simplement 33060 | ||
MySQL Client to Server – New X Protocol – 33060 | 33060/tcp | Y | Y sauf si on utilise 3306 | ||
MySQL Shell | |||||
MySQL Client à Serveur – Protocole MySQL – 3306 | 3306/tcp | Y | Y à moins d’utiliser 33060 | ||
Client MySQL vers serveur – Nouveau protocole X – 33060 | 33060/tcp | Y | Y à moins d’utiliser 3306 | ||
Pour les vérifications, du Shell au serveur GR pendant la configuration du cluster InnoDB. | 33061/tcp | Y | Y si exécution du cluster InnoDB | ||
MySQL Workbench | |||||
MySQL Client à Server – Protocole MySQL – 3306 | 3306/tcp | Y | Optionnel – choisissez-en au moins 1 | ||
Client MySQL vers serveur – Nouveau protocole X – 33060 | 33060/tcp | Y | Optionnel – choisissez-en au moins 1 | Tcp | |
Connexion via un tunnel SSH | 22/tcp | Y | Optionnel – choisir au moins 1 | ||
Connexions Client – Routeur – | |||||
MySQL Client Tout SQL vers Routeur – Protocole MySQL | 6446/tcp | Inhérité | Requise si le routeur fournit un accès RW | ||
Client MySQL SQL en lecture seule vers le routeur – Protocole MySQL | 6447/tcp | « » | Requérant si le routeur fournit un accès en lecture seule | ||
Routeur MySQL vers le serveur – Protocole MySQL | 3306/tcp | « » | Required | ||
Client MySQL Tout appel API au routeur – Nouveau protocole X – 33060 | 6448/tcp | « » | Required si le routeur fournit un accès RW | ||
Appels en lecture seule du client MySQL vers le routeur – Nouveau protocole X – 33060 | 6449/tcp | « » | Requise si le routeur fournit un accès en lecture seule | ||
MySQL Routeur vers serveur – Nouveau protocole X – 33060 | 33060/tcp | « » | Required | ||
Haute disponibilité | |||||
Le port de communication interne de la réplication du groupe MySQL – 33061 | 33061/tcp | Y | Y | ||
MySQL Replication | 3306/tcp | Y | Y | ||
Authentification externe * | |||||
MySQL Enterprise Authentication – LDAP * | 389/tcp | Y | Uniquement si l’on utilise l’authentification externe à LDAP. Prend également en charge l’utilisation de SASL | ||
MySQL Enterprise Authentication -. AD * | 389/tcp | Y | Uniquement si l’on utilise l’authentification externe à LDAP | ||
Gestion des clés (pour TDE, Keyring Functions, etc) * | |||||
KMIP – utilisé avec Oracle Key Vault, Gemalto KeySecure, Thales Vormetric key management server, Fornetix Key Orchestration * | Varies, Voir la documentation spécifique au gestionnaire de clés/à la chambre forte. | Y | Uniquement requis si TDE utilise un serveur KMIP | ||
Services de clés -. AWS KMS * | 443/tcp | Y | Uniquement requis si TDE utilise AWS KMS | ||
Sauvegarde de la BEM | |||||
Communiquer avec l’instance locale | 3306/tcp | Y | Optionnel – peut se connecter avec tcp|socket|pipe|mory | ||
Si la réplication du cluster/groupe Innodb | 3306/tcp | Y | Requise pour la sauvegarde du cluster InnoDB | ||
Oracle Object Store | 443/tcp | Y | Optionnel | ||
AWS S3 | 443/tcp | Y | Optionnel | ||
Sauvegarde vers le gestionnaire de médias (API SBT) * | Varie – Voir la documentation spécifique au gestionnaire de médias de sauvegarde | Dépendant du fournisseur | Optionnel |
.