Comment autoriser les connexions à distance à MySQL


Si vous travaillez avec un Base de données MySQL, vous êtes déjà conscient des défis auxquels vous êtes confronté pour sécuriser votre base de données. Des tentatives de piratage de bases de données utilisant des injections SQL aux attaques par force brute, il est difficile de protéger vos données, surtout si vous travaillez à distance avec une base de données.

Il existe des moyens de configurer un serveur SQL pour autoriser les connexions à distance. , mais vous devez être prudent, car autoriser les connexions à distance sur un serveur MySQL peut faire de votre base de données une cible facile pour les pirates. Si vous souhaitez autoriser des connexions distantes sécurisées à une base de données MySQL, voici ce que vous devez savoir.

Table des matières

    Avant vous Commencer

    Avant d'apporter des modifications à votre base de données MySQL, il est important que vous sauvegardez votre base de données, surtout si vous travaillez sur un serveur de production (un serveur en utilisation active). Toute modification que vous apportez à votre base de données ou au serveur qui l'héberge peut entraîner de graves pertes de données en cas de problème.

    Vous pouvez également constater que des modifications apportées aux connexions de votre serveur peuvent vous empêcher d'y accéder par la suite. Si cela se produit, vous devrez peut-être consulter un administrateur de serveur pour obtenir une assistance supplémentaire. Une bonne idée est d'essayer toutes les modifications sur un serveur MySQL exécuté localement pour vérifier si vos modifications fonctionnent avant de les essayer à distance.

    Il est également probable que si vous apportez des modifications à un serveur distant, vous Vous aurez besoin d'un moyen sûr de vous connecter et d'apporter des modifications. SSH (Secure Shell)est souvent le meilleur moyen de le faire, car il vous permet de vous connecter à votre serveur distant. Vous pouvez également utiliser SSH pour vous connecter aux serveurs de votre réseau local, tels que ceux hébergé sur un Raspberry Pi.

    Ce guide vous guidera à travers les étapes pour configurer MySQL pour autoriser les connexions à distance, mais vous devrez d'abord vous assurer d'avoir un accès direct ou à distance au serveur hébergeant votre serveur MySQL.

    Supposons que vous n'ayez pas accès à distance à votre serveur via SSH (par exemple). Dans ce cas, vous ne pourrez pas configurer votre base de données MySQL pour autoriser directement les connexions à distance, à moins que votre compte mySQL root n'autorise déjà les connexions à distance. Vous devrez donc d'abord établir cette connexion avant de pouvoir continuer.

    Modification de votre fichier de configuration MySQL

    La première étape de la configuration de MySQL pour autoriser les connections est d'éditer votre fichier de configuration MySQL. À ce stade, ce guide supposera que vous êtes déjà connecté au serveur, au PC ou au Mac hébergeant votre base de données mySQL à distance et que vous avez accès à la console.

    Vous pouvez également configurer un serveur MySQL local à l'aide d'un terminal ouvert sur Mac ou Linux ou d'un éditeur de texte sur Windows.

    1. Pour commencer, utilisez votre éditeur de texte de console préféré pour modifier votre fichier de base de données MySQL. Sous Linux, tapez sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfdans un terminal ou une fenêtre SSH pour éditer ce fichier à l'aide de l'éditeur nano(en supposant votre base de données MySQL est à l'emplacement par défaut).
      1. Si vous utilisez Windows, ouvrez l'explorateur de fichiers et accédez au dossier contenant votre installation MySQL (par exemple C:/Program Files/MySQL/MySQL Server 8.0). Ouvrez le fichier my.inià l'aide de votre éditeur de texte par défaut (par exemple, le Bloc-notes) en double-cliquant sur l'entrée. Si ce n'est pas le cas, créer d'abord le fichier.
        1. Sur Mac, ouvrez une fenêtre de terminal et tapez sudo nano /usr/local/etc/my.cnf. Il s'agit du fichier de configuration par défaut pour MySQL si vous avez installé MySQL utiliser des homebrews.
        2. Les emplacements référencés ci-dessus sont les emplacements par défaut pour les fichiers de configuration MySQL. Si ces commandes ne fonctionnent pas, vous devrez rechercher les fichiers pertinents (my.cnf, mysqld.cnf, ou my.ini) manuellement pour localiser le chemin du fichier approprié.

          Définition d'une plage IP d'adresse de liaison sécurisée

          1. Une fois que vous Si vous avez ouvert le fichier de configuration MySQL de votre serveur, utilisez la touche fléchée de votre clavier pour atteindre la section bind-addressdu fichier. Cette plage d'adresses IP limite les connexions à votre base de données, qui est généralement configurée pour autoriser uniquement les connexions à partir de la machine ou du serveur local à l'aide de 127.0.0.1.
            1. Si vous souhaitez configurer votre base de données MySQL pour autoriser les connexions à partir d'appareils utilisant votre connexion Internet actuelle, commencez par trouver votre adresse IP publique, puis remplacez 127.0.0.1avec cette adresse IP. Vous pouvez également la remplacer par une adresse IP pour l'appareil ou le serveur à partir duquel vous souhaitez autoriser les connexions.
              1. Dans certaines circonstances , vous pouvez autoriser toutesles connexions distantes à une base de données MySQL. Cela comporte un risque extrêmeet ne doit pas être utilisé sur un serveur de production. Si vous souhaitez toutefois autoriser cela, remplacez 127.0.0.1par 0.0.0.0.
                1. Notez la valeur du portdans la section Paramètres de base. Cela sera requis dans la section suivante. S'il n'est pas visible, la valeur par défaut sera utilisée, à savoir le port 3306. Vous pouvez ajouter votre propre port en tapant port = xxxxsur une nouvelle ligne, en remplaçant xxxxpar une valeur de port appropriée.
                  1. Une fois que vous avez configuré l'adresse de liaisondans votre fichier de configuration MySQL, enregistrez le fichier. Si vous êtes sous Linux, sélectionnez Ctrl + Oet Ctrl + Xpour ce faire. Sur Mac, sélectionnez Commande + Oet Commande + X. Les utilisateurs de Windows peuvent enregistrer en sélectionnant Fichier>Enregistrer.
                    1. Ensuite, les utilisateurs Linux et Mac peuvent redémarrer MySQL en tapant mysql.server stop && mysql.server startou mysql.server restart. Vous devrez peut-être élever la commande en utilisant sudo (par exemple sudo mysql.server restart) et utiliser le chemin approprié vers le fichier mysql.server (par exemple /usr /local/bin/mysql.server).
                    1.  Si la commande ci-dessus ne fonctionne pas, essayez plutôt de sudo service mysql restart.
                      1. Pour redémarrer MySQL sous Windows, ouvrez une nouvelle fenêtre PowerShell en cliquant avec le bouton droit sur le menu Démarrer et en sélectionnant Windows PowerShell (Admin). Dans la fenêtre PowerShell, tapez net stop mysql80suivi de net start mysql80, en remplaçant mysql80par le nom de service correct sur votre PC.
                      2. Si vous n'êtes pas sûr du nom de service correct sous Windows, tapez net startpour le trouver.Si vous ne pouvez pas recharger votre configuration, redémarrez votre serveur et rechargez MySQL manuellement (si nécessaire).

                        Configuration de vos pare-feu

                        À ce stade, votre base de données MySQL doit autoriser les connexions à distance à partir d'appareils utilisant l'adresse IP que vous avez définie comme valeur bind-addressdans votre fichier de configuration MySQL (ou à partir de tous les appareils si vous définissez cette valeur sur 0.0.0.0à la place). Cependant, les connexions seront toujours bloquées par votre appareil ou pare-feu réseau.

                        La plupart des serveurs et des PC utilisent un pare-feu pour bloquer les connexions, sauf si l'accès à un port spécifique est autorisé. Les étapes de configuration varient selon que vous exécutez MySQL sous Windows ou Linux. Les pare-feu Mac sont désactivés par défaut, vous ne devriez donc pas avoir à effectuer d'étapes supplémentaires ici.

                        Configurer les pare-feu Linux

                        De nombreux serveurs Linux utilisent iptablescomme utilitaire de pare-feu par défaut. Vous pouvez le configurer en suivant les étapes ci-dessous.

                        1. Ouvrez un terminal ou une connexion SSH et tapez sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT. Remplacez XXXXpar l'adresse IP de l'appareil dont vous souhaitez autoriser les connexions MySQL depuis, et remplacez YYYYpar la valeur de port correspondante de votre configuration MySQL (par exemple 3306).
                          1. Cela configurera temporairement le pare-feu. Si vous utilisez un serveur Linux basé sur Debian ou Ubuntu, rendez cette modification permanente en tapant sudo netfilter-persistent saveet sudo netfilter-persistent reloaddans le terminal ou SSH fenêtre.
                          2. Si iptables n'est pas l'outil de pare-feu par défaut pour votre distribution Linux, vous devrez consulter le manuel d'utilisation de votre distribution pour plus d'informations. Si certains packages (tels que netfilter-persistent) ne sont pas disponibles, utilisez l'outil de référentiel logiciel de votre distribution pour l'installer (par exemple, sudo apt install netfilter-persistent).

                            Configurer les pare-feu Windows

                            Si vous utilisez un PC ou un serveur Windows pour héberger votre base de données, vous pouvez configurer votre pare-feu en suivant ces étapes :

                            1. Cliquez avec le bouton droit sur le menu Démarrer et sélectionnez Exécuter.
                              1. Dans la zone Exécuter, saisissez wf.mscet sélectionnez OK.
                                1. Dans la fenêtre Windows Defender, sélectionnez Règles de trafic entrant >Nouvelle règle.
                                  1. Dans l'Assistant Nouvelle règle entrante, sélectionnez Port>Suivant.
                                    1. Dans le menu suivant, sélectionnez TCPparmi les options, tapez 3306(ou la valeur de port indiquée dans votre fichier de configuration MySQL), puis sélectionnez Suivant.
                                      1. Dans le menu Action, laissez l'option par défaut à Autorisez la connexionactivée, puis sélectionnez Suivant.
                                        1. Confirmez que vous souhaitez que la règle s'applique à tous les types de réseaux, puis sélectionnez Suivant.
                                          1. Tapez un nom descriptif pour la règle (par exemple MySQL) dans le port fourni , puis sélectionnez Terminerpour l'ajouter à votre liste de règles de pare-feu.
                                          2. Si vous rencontrez des problèmes de connexion, répétez les étapes ci-dessus , en veillant à créer une nouvelle règle sortantedans les paramètres de votre pare-feu en utilisant les mêmes détails (port 3306, etc.). Vous devrez peut-être également configurer votre routeur de réseau local sur ouvrir les ports bloqués nécessaires pour autoriser les connexions entrantes et sortantes à votre base de données.

                                            Connexion à un serveur distant à l'aide de MySQL

                                            Après avoir configuré votre base de données MySQL pour autoriser les connexions distantes, vous devrez réellement établir une connexion avec celle-ci. Vous pouvez le faire à l'aide de la commande mysql(mysql.exesous Windows) à partir d'un terminal ou d'une fenêtre PowerShell.

                                            Si vous utilisez Windows, vous devrez vous assurer que MySQL est installé localement avant de commencer. Les utilisateurs Mac peuvent installer MySQL utiliser des homebrews depuis le terminal (brew install mysql), tandis que les utilisateurs Linux peuvent utiliser leur référentiel d'applications local (par exemple sudo apt install mysql) pour installer les packages nécessaires.

                                            Se connecter à MySQL sur Linux ou Mac

                                            1. Pour se connecter à votre serveur MySQL distant sur Mac ou Linux, ouvrez une nouvelle fenêtre de terminal et tapez mysql -u username -h XXXX:XXXX -p. Remplacez XXXX:XXXXpar l'adresse IP et le numéro de port de votre serveur distant (par exemple, 100.200.100.200:3306) et nom d'utilisateurpar votre nom d'utilisateur MySQL.
                                              1. Lorsque vous y êtes invité, confirmez votre mot de passe. Si la connexion est réussie, un message de réussite apparaîtra dans le terminal.
                                              2. Connexion à MySQL sous Windows

                                                1. Pour se connecter à un serveur MySQL distant sous Windows, ouvrez une nouvelle fenêtre PowerShell en cliquant avec le bouton droit sur le menu Démarrer et en sélectionnant Windows PowerShell (Admin).
                                                  1. Dans la nouvelle fenêtre PowerShell, tapez cd "C:\Program Files\MySQL\MySQL Workbench 8.0\" pour entrer dans le bon dossier, en remplaçant ce répertoire avec le bon répertoire d'installation sur votre PC. Par exemple, si votre version de MySQL est 8.0.1, utilisez plutôt le dossier MySQL Workbench 8.0.1.
                                                    1. À partir de là, tapez .\mysql.exe -u username -h X.X.X.X:XXXX -p. Remplacez XXXX:XXXXpar l'adresse IP et le numéro de port de votre serveur distant (par exemple, 100.200.100.200:3306) et nom d'utilisateurpar un nom d'utilisateur MySQL qui autorise l'accès à distance (comme root). Suivez les instructions supplémentaires à l'écran.
                                                    2. Fournissez votre mot de passe, lorsque vous y êtes invité, pour terminer le processus de connexion et accéder à votre base de données MySQL à distance.
                                                    3. Si cela ne fonctionne pas, connectez-vous au serveur ou au PC hébergeant votre serveur MySQL en utilisant SSH (ou accédez-y directement) en suivant ces étapes et en utilisant l'argument -h localhost. Vous pouvez ensuite créer un compte utilisateur approprié en suivant les étapes ci-dessous.

                                                      Autoriser l'accès utilisateur à distance à une base de données MySQL

                                                      À ce stade, vous devriez être capable de se connecter à votre serveur MySQL à distance en utilisant le compte d'utilisateur root de votre serveur ou un autre compte d'utilisateur avec des privilèges élevés. Comme ce niveau d'accès n'est pas sûr, vous préférerez peut-être créer un compte plus restreint pour accéder à votre base de données MySQL.

                                                      Ce compte aura un accès limité à votre serveur MySQL, lui permettant d'interagir uniquement avec les bases de données sélectionnées. Il ne pourra pas apporter de modifications plus importantes, telles que l'accès à d'autres données de base de données, la création de nouveaux comptes utilisateur, etc. 

                                                      Vous devrez avoir la possibilité de vous connecter à votre serveur MySQL à distance. Si vous ne pouvez pas utiliser votre compte root à distance, vous devrez accéder au shell de votre serveur à l'aide de la commande mysqlvia une connexion SSH à distance ou en accédant directement au PC ou au serveur hébergeant le serveur.

                                                      1. Dans votre shell MySQL distant (à l'aide de l'outil mysql), tapez CREATE USER "username"@"xxxx" IDENTIFIED BY "password" ;et sélectionnez Entrer. Remplacez nom d'utilisateurpar le nom d'utilisateur que vous souhaitez créer, xxxxpar l'adresse IP à partir de laquelle vous souhaitez vous connecter et mot de passepar un mot de passe approprié.
                                                        1. Vous devrez accorder à votre nouveau compte les autorisations nécessaires. Pour ce faire, tapez GRANT ALL ON databasename.* TO username@"x.x.x.x" ;et remplacez nom de la base de données, nom d'utilisateur,et x.x.x.x par les informations correctes. Si vous le souhaitez, remplacez nom de la base de donnéespar *pour lui donner accès à toutes les bases de données.
                                                        2. L'accès étant accordé, utilisez les étapes de la section ci-dessus pour vous connecter à votre serveur à distance en utilisant votre nouveau compte (par exemple, mysql -u username -h XXXX:XXXX -p).

                                                          Sécurisation de vos données de base de données

                                                          Que vous travailliez avec MySQL ou un autre type de SQL base de données, il est important de sécuriser vos connexions pour maintenir la sécurité de vos données. Un bon moyen de le faire est de générer des clés SSH pour un accès à distance vers votre serveur, plutôt que de vous fier à des mots de passe obsolètes (et facilement devinables).

                                                          Si vous craignez une perte de données, vous pouvez facilement sauvegarder votre base de données en ligne. La plupart des bases de données sont exécutées à l'aide de serveurs Linux—vous pouvez automatiser facilement une sauvegarde de fichier Linux. Si vous utilisez MySQL sur Windows, vous pouvez configurer un système de sauvegarde automatique pour Windows similaire, vous permettant de restaurer vos données en cas d'urgence.

                                                          Articles Similaires:


                                                          9.08.2021