Configurer l’accès à distance aux bases de données MariaDB
Ce tutoriel montre comment configurer l’accès à distance aux serveurs de base de données MySQL ou MariaDB sur les systèmes Debian 9 Stretch. Lorsqu’il est configuré correctement, vous serez en mesure de vous connecter aux serveurs de base de données à partir d’un système distant.Si le serveur est connecté à Internet, vous pouvez y accéder depuis n’importe quel endroit du monde où l’accès à Internet est disponible. Cependant, l’ouverture de vos serveurs de base de données directement sur Internet n’est pas recommandée.
Pour protéger votre base de données et donner accès à distance qu’à une adresse IP fixe, on va restreindre l’accès au port TCP 3306 (port que MySQL) avec des règles IPTABLES.
Par défaut, MySQL ou MariaDB n’écoute que les connexions de l’hôte local. Tout accès distant au serveur est refusé par défaut.
Exécutez les commandes ci-dessous pour ouvrir le fichier de configuration MySQL ou MariaDB pour activer l’accès à distance,.
Pour MySQL :
# nano /etc/mysql/mysql.conf.d/mysql.cnf
Pour MariaDB :
# nano /etc/mysql/mariadb.conf.d/50-server.cnf
Ensuite, faites le changement ci-dessous :
bind-address = 127.0.0.1
à
bind-address = 0.0.0.0
Redémarrer le service mysql/mariadb
# service mysql restart
Ou
# service mariadb restart
Pour vérifier que vos changements, exécutez les commandes ci-dessous
# netstat -anp | grep 3306
Vous devriez trouver un résultat qui ressemble à celui ci-dessous
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1763/mysqld
Configurer une IP pour se connecter à une base de données.
Maintenant, le serveur est configuré pour écouter toutes les adresses IP mais l’adresse IP individuelle doit être explicitement configurée pour se connecter à une base de données.
Pour permettre à un client de se connecter à une base de données, vous devez autoriser l’accès au serveur distant.
Par exemple, si vous souhaitez qu’un ordinateur client avec l’adresse IP 62.212.208.49 se connecte à une base de données appelée wordpress en tant qu’utilisateur wpuser, exécutez les commandes ci-dessous après vous être connecté au serveur de base de données
create database wordpress;
create user wpuser;
set password for wpuser= PASSWORD("motdepasse");
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@62.212.208.49 IDENTIFIED by "motdepasse";
exit
Après avoir exécuté les commandes ci-dessus, vous devriez être en mesure d’accéder au serveur à partir de l’ordinateur client avec l’adresse IP attribuée.
Pour vous connecter au serveur à partir de l’adresse IP, exécutez les commandes ci-dessous
# mysql -uwpuser -pmotdepasse -h IPdeServer
Sécurisation de l'accès à distance aux bases de données MySQL ou MariaDB avec IPTABLES
Avec IPTABLES on va bloquer tous les accès aux hôtes qui n’ont pas besoin de se connecter et autoriser l’adresse IP à partir de laquelle vous vous connectez.
# iptables -A INPUT -p tcp -s 62.212.208.49 –dport 3306 -j ACCEPT
# iptables -A INPUT -p tcp -s 127.0.0.1 –dport 3306 -j ACCEPT
# iptables -A INPUT -p tcp –dport 3306 -j DROP
Voici votre serveur de bases de données MySQL ou MariaDB est accessible de l’extérieur et sécurisée avec IPTABLES.
Bonsoir,
Voici un bon petit tuto qui m’a bien aidé.
Juste une remarque, ne pas oublier de redémarrer le service mysql/mariadb après la modification du fichier de configuration.
Merci beaucoup.
Bonjour
Merci pour votre retour
Vous avez raison.
C’est fait
Merci
Bonjour,
Merci pour ce tuto, j’ai appliqué la procédure, j’arrive à se connecter à la base, mais en essayant d’ouvrir mon schéma , j’obtiens le message :
Access denied for user ‘cc’@’%’ to database ‘cc’
Bonjour
Merci pour votre retour
Avez-vous configuré l’accès au user CC à la base de donnée CC depuis votre ip publique
GRANT ALL PRIVILEGES ON cc.* TO cc@VotreIPPublique IDENTIFIED by « motdepasse »;
Pour avoir votre ip publique, il suffit d’aller sur http://www.mon-ip.com