15/11/2024

Base de données

Changer le port d’écoute MySQL

I. Présentation

Dans ce tutoriel, nous allons apprendre à changer le port d'écoute du service MySQL. Il faut savoir que par défaut, MySQL ne permet pas l'écoute sur le réseau par son interface externe. Cela résulte en général d'une modification de la configuration du service MySQL. En local, le port d'écoute d'une application n'a que peut d'intérêt, c'est pourquoi je vous oriente vers ce tutoriel si vous désirez ouvrir votre service MySQL à l'extérieur.

La plupart du temps, le changement du port d'écoute d'un service se fait par souci de sécurité. De cette manière, un attaquant souhaitant effectuer une attaque sur notre entrée MySQL devra d'abord trouver son port d'écoute. Cela lui rend la tâche plus difficile, mais surtout plus longue.

II. Vérifier le port d'écoute

Nous allons dans un premier temps vérifier le port d'écoute de notre service MySQL pour vérifier qu'il écoute bien sur son port standard 3306. Nous allons pour cela utiliser l'outil "netstat" qui est présent nativement sur la plupart des distributions Linux (et même sous Windows ! 😉 ). Celui-ci va nous  permettre de lister les ports ouverts sur notre serveur.

Une fois que votre service MySQL est démarré (ce que l'on peut vérifier avec "service mysqld status"), on pourra utiliser l'outil netstat avec la ligne de commande suivante :

netstat -petulan

Ici, nous aurons le résultat suivant :

changer-port-mysql-01
Vu des ports ouverts, dont le port mysql sous Linux

Il faut ici chercher le port "3306", qui est présent en première ligne dans ma capture d'écran. On retrouvera de toute façon le port MySQL par le nom de son processus "mysqld" dans la dernière colonne :

changer-port-mysql
Port MySQL ouvert visible via netstat

Nous voyons donc que notre service MySQL écoute bien sur son port standard.

II. Change le port d'écoute

Nous allons maintenant modifier la configuration de notre service MySQL. On va pour cela modifier le fichier "/etc/mysql/my.cnf" pour y trouver la ligne "port = 3306" pour y mettre un autre numéro de port (au-dessus de 1024 bien entendu) :

changer-port-mysql-03
Changement du port MySQL via la configuration

Le numéro de port vous est ici libre. Il faut bien faire attention à modifier cette valeur dans la partie "[mysqld]" et non dans la partie "[client]" qui contient les paramètres à utiliser lorsque l'on souhaite se connecter à un service MySQL sur un autre serveur.

Une fois cette modification faite, nous allons redémarrer notre serveur MySQL pour que les changements soient pris en compte :

service mysql restart

Nous allons maintenant refaire une vérification sur les ports ouverts de notre serveur :

netstat -petulan
changer-port-mysql
Vu du changement de port MySQL sous Linux

Nous voyons alors que le port ouvert du service MySQL n'apparait pas. Déjà à ce moment, la tâche de l'attaquant peut éventuellement être ralentie. Si l'attaquant est suffisamment patient, il pourra trouver ce port ouvert, mais mettra peut-être plus de temps à le trouver et à reconnaitre un service MySQL derrière.?

Le changement de port est donc bien effectif et c'est par ce numéro de port qu'il faudra maintenant passer pour communiquer avec notre service MySQL depuis l'extérieur. Notez bien que si vous avez des services externes au serveur et qu'ils communiquent avec ce service MySQL, il faudra leur indiquer quel port utiliser puisque ce ne sera plus le port standard.

IV. Connexion à distance à MySQL

Pour nous connecter en ligne de commande par exemple depuis un client sur notre serveur MySQL, il faudra utiliser l'option "-P" qui spécifie le port à utiliser si ce n'est pas le port standard :

mysql -u root -p -h < ip serveur > -P < numéro port >

Si l'option ne peut pas être spécifiée de cette manière, on peut aller également modifier la configuration dans le fichier "/etc/mysql/my.cnf" dans la partie "[client]". Alors, le port par défaut sera changé lors de la tentative de connexion à un serveur MySQL distant.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.