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.
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.
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
- 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).
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.
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 :
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
Connexion à MySQL sous Windows
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.
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.