Comment autoriser les connexions à distance MySQL dans ISPConfig 3 ?
Table des matières:
- Configurer le serveur MySQL
- Accorder l'accès à un utilisateur à partir d'une machine distante
- Configuration du pare-feu
- Iptables
- UFW
- Pare-feuD
- Vérification des modifications
- Conclusion
Par défaut, le serveur MySQL n'écoute les connexions que depuis localhost, ce qui signifie qu'il n'est accessible que par les applications s'exécutant sur le même hôte.
Cependant, dans certaines situations, il est nécessaire d'accéder au serveur MySQL à distance. Par exemple, lorsque vous souhaitez vous connecter au serveur MySQL distant à partir de votre système local, ou lorsque vous utilisez un déploiement multi-serveur où l'application s'exécute sur une machine différente du serveur de base de données. Une option serait d'accéder au serveur MySQL via SSH Tunnel et une autre est de configurer le serveur MySQL pour accepter les connexions à distance.
Dans ce guide, nous allons parcourir les étapes nécessaires pour autoriser les connexions à distance à un serveur MySQL. Les mêmes instructions s'appliquent à MariaDB.
Configurer le serveur MySQL
La première étape consiste à configurer le serveur MySQL pour écouter une adresse IP spécifique ou toutes les adresses IP de la machine.
Si le serveur MySQL et les clients peuvent communiquer entre eux sur un réseau privé, la meilleure option est de configurer le serveur MySQL pour écouter uniquement sur l'adresse IP privée. Sinon, si vous souhaitez vous connecter au serveur via un réseau public, configurez le serveur MySQL pour écouter toutes les adresses IP de la machine.
Pour ce faire, vous devez modifier le fichier de configuration MySQL et ajouter ou modifier la valeur de l'option
bind-address
. Vous pouvez définir une seule adresse IP et des plages IP. Si l'adresse est
0.0.0.0
, le serveur MySQL accepte les connexions sur toutes les interfaces IPv4 hôtes. Si vous avez configuré IPv6 sur votre système, utilisez plutôt
::
.
0.0.0.0
.
L'emplacement du fichier de configuration MySQL diffère selon la distribution. Dans Ubuntu et Debian, le fichier se trouve dans
/etc/mysql/mysql.conf.d/mysqld.cnf
, tandis que dans les distributions basées sur Red Hat telles que CentOS, le fichier se trouve dans
/etc/my.cnf
.
Ouvrez le fichier avec votre éditeur de texte:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Recherchez une ligne commençant par
bind-address
et définissez sa valeur sur l'adresse IP sur laquelle un serveur MySQL doit écouter.
Par défaut, la valeur est définie sur
127.0.0.1
(écoute uniquement dans localhost).
Dans cet exemple, nous allons configurer le serveur MySQL pour écouter sur toutes les interfaces IPv4 en modifiant la valeur à
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
S'il existe une ligne contenant un
skip-networking
, supprimez-la ou mettez-la en commentaire en ajoutant
#
au début de la ligne.
Dans MySQL 8.0 et supérieur, la directive
bind-address
peut ne pas être présente. Dans ce cas, ajoutez-le sous le
section.
Une fois terminé, redémarrez le service MySQL pour que les modifications prennent effet. Seuls les utilisateurs root ou root disposant des privilèges sudo peuvent redémarrer les services.
Pour redémarrer le service MySQL sur Debian ou Ubuntu, tapez:
sudo systemctl restart mysql
Sur les distributions basées sur RedHat comme CentOS pour redémarrer l'exécution du service:
Accorder l'accès à un utilisateur à partir d'une machine distante
L'étape suivante consiste à autoriser l'accès à la base de données à l'utilisateur distant.
Connectez-vous au serveur MySQL en tant qu'utilisateur root en tapant:
sudo mysql
mysql -uroot -p
Depuis l'intérieur du shell MySQL, utilisez l'instruction
GRANT
pour accorder l'accès à l'utilisateur distant.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Où:
-
database_name
est le nom de la base de données à laquelle l'utilisateur se connectera.user_name
est le nom de l'utilisateur MySQL.ip_address
est l'adresse IP à partir de laquelle l'utilisateur se connectera. Utilisez%
pour permettre à l'utilisateur de se connecter à partir de n'importe quelle adresse IP.user_password
est le mot de passe utilisateur.
Par exemple, pour accorder l'accès à un
my_passwd
de base de données à un utilisateur nommé
foo
avec le mot de passe
my_passwd
partir d'une machine client avec IP
10.8.0.5
, vous devez exécuter:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Configuration du pare-feu
La dernière étape consiste à configurer votre pare-feu pour autoriser le trafic sur le port
3306
(port par défaut MySQL) à partir des machines distantes.
Iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Autoriser l'accès à partir d'une adresse IP spécifique:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW est l'outil de pare-feu par défaut dans Ubuntu. Pour autoriser l'accès à partir de n'importe quelle adresse IP sur Internet (très non sécurisé), exécutez:
sudo ufw allow 3306/tcp
Autoriser l'accès à partir d'une adresse IP spécifique:
sudo ufw allow from 10.8.0.5 to any port 3306
Pare-feuD
FirewallD est l'outil de gestion de pare-feu par défaut dans CentOS. Pour autoriser l'accès à partir de n'importe quelle adresse IP sur Internet (très non sécurisé), tapez:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
Pour autoriser l'accès à partir d'une adresse IP spécifique sur un port spécifique, vous pouvez soit créer une nouvelle zone FirewallD, soit utiliser une règle riche. Eh bien, créez une nouvelle zone nommée
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
Vérification des modifications
Pour vérifier que l'utilisateur distant peut se connecter au serveur MySQL, exécutez la commande suivante:
mysql -u user_name -h mysql_server_ip -p
Où
user_name
est le nom de l'utilisateur
mysql_server_ip
vous avez accordé l'accès et
mysql_server_ip
est l'adresse IP de l'hôte sur lequel le serveur MySQL s'exécute.
Si tout est correctement configuré, vous pourrez vous connecter au serveur MySQL distant.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
L'erreur ci-dessous indique que l'utilisateur auquel vous essayez de vous connecter n'a pas les droits d'accès au serveur MySQL distant.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Conclusion
MySQL, le serveur de base de données open source le plus populaire par défaut, n'écoute les connexions entrantes que sur localhost.
Pour autoriser les connexions à distance à un serveur MySQL, vous devez effectuer les étapes suivantes:
- Configurez le serveur MySQL pour écouter sur tout ou une interface spécifique. Accordez un accès à l'utilisateur distant. Ouvrez le port MySQL dans votre pare-feu.
La base d'abonnés mobiles de l'Inde devrait également dépasser les 737 millions de connexions en 2012, avec une croissance annuelle d'environ 21%. L'Inde restera le deuxième marché sans fil après la Chine en termes de connexions mobiles, selon Gartner
La prévision optimiste de Gartner concernant le marché indien des services mobiles suit sa prédiction l'an dernier que le marché atteindrait 25,6 milliards de dollars en 2011, principalement L'Inde comptait près de 278 millions d'abonnés à la téléphonie mobile à la fin du mois de mai, après avoir ajouté 8,6 millions d'abonnés à la téléphonie mobile au cours du mois, selon la Telecom Regulatory Authority of India (TRAI).
Selon les recommandations énoncées dans un rapport publié vendredi par la Federal Trade Commission (FTC) des États-Unis, les consommateurs comprendraient mieux comment leurs données sont recueillies et utilisées par les principaux acteurs de l'univers mobile. Le rapport de la FTC, basé sur une série d'ateliers sur la protection des renseignements personnels tenus l'année dernière par la commission, recommande les «meilleures pratiques» pour les fournisseurs de plateformes mobiles, les développeu
[Plus d'informations: Comment supprimer les logiciels malveillants de votre PC Windows]
Utilisation de l'application de bureau à distance dans Windows 8 pour les connexions à distance
Apprenez à configurer et utiliser l’application Bureau à distance dans Windows 8 pour les connexions à distance.