Activer les connexions à distance my sql

402 vues

Publié le

JJKK

Publié dans : Business
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
402
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Activer les connexions à distance my sql

  1. 1. Activer les connexions à distance MySQL Sommaire  I. Présentation  II. Test de la connexion  III. Modification de la configuration  IV. Gestion de l’utilisation  V. Sécurisation de l’accès MySQL distant I. Présentation Dans ce tutoriel, nous allons apprendre à activer la gestion et la connexion à distance sur des bases de données MySQL. Bien souvent, on gère nos bases de données MySQL viaPhpMyAdmin, une interface web située sur notre serveur de base de données qui envoi des requêtes MySQL en local. Il peut cependant arriver pour plusieurs raisons d’avoir besoin de gérer nos bases de données à distance en lignes de commandes ou via des logiciels spécifiques comme SQLyog. II. Test de la connexion La connexion à la gestion MySQL en ligne de commande est par défaut possible qu’enlocalhost (via la commande “mysql -u user -p“). Si on souhaite activer les connexions à distance, on utilise le port 3306 (par défaut) comme indiqué dans le fichier de configuration “/etc/mysql/my.cnf” : On peut, pour voir l’accès, tenter une connexion à distance sur notre MySQL. Depuis un autre serveur, on entrera la commande suivante : Shell 1 mysql -u user -p -h < IP serveur Mysql > Nous aurons alors théoriquement ce message d’erreur :
  2. 2. Si on utilise la commande “perror” qui sert à décrire les messages d’erreurs de MySQL, nous verrons ce résultat : On voit donc bien que la connexion nous est impossible, avec un simple nmap, nous verrons en effet que le port MySQL (3306) n’est pas ouvert sur l’IP sur serveur MySQL. Shell 1 nmap -sV < IP serveur Mysql > -p 3306 III. Modification de la configuration Nous allons donc ouvrir notre service MySQL sur l’IP de notre serveur MySQL. Nous allons modifier notre fichier de configuration MySQL qui est “/etc/mysql/my.cnf“. On cherchera ensuite l’option “bind- address” où l’on indiquera l’IP de notre serveur sur le réseau : On doit ensuite redémarrer notre serveur MySQL : Shell 1 service mysql restart On peut ensuite retenter une connexion MySQL à distance en ligne de commande depuis un autre hôte Shell
  3. 3. 1 mysql -u user -p -h < IP serveur > IV. Gestion de l’utilisation Il est alors possible que vous ayez ce message d’erreur : Cela signifie que l’utilisateur en question (ici root) n’est pas autorisé à se connecter à distance mais uniquement en localhost. Souvent cela passe par une création de l’utilisateur en “user”@”localhost”. On doit donc modifier l’hôte de notre utilisateur pour soit y mettre une IP spécifique, soit y mettre tous les hôtes (IP) possibles. On doit alors se connecter en root sur notre base de données MySQL (pas encore à distance) pour changer l’hôte de notre utilisateur avec la commande suivante : Shell 1 UPDATE mysql.user SET Host = "%" WHERE user.Host = "localhost" AND user.User = "nom_user"; On met donc à jour l’hôte (Host) de notre utilisateur, “%” signifie tous les hôtes. Pour une sécurité accrue, on pourrait mettre seulement une IP à la place de “%” (ex 192.168.1.17ou 192.168.1.0/24) En peut ensuite retenter notre connexion MySQL à distance : Shell 1 mysql -u user -p -h < IP serveur > Notre connexion MySQL à distance est maintenant opérationnelle. V. Sécurisation de l’accès MySQL distant
  4. 4. Pour augmenter la sécurité et ralentir des éventuels attaquants dans leurs démarches. Nous pouvons changer le port par défaut pour les connexion MySQL à distance. On se rend pour cela dans notre fichier de configuration “/etc/mysql/my.cnf“. On doit y changer les deux valeurs suivantes : On choisie ici une valeur de “30306“. Cette valeur vous est libre mais on préférera un port au dessus de 1024 car les ports 0-1024 sont des ports réservés. De plus, lors d’une utilisation simple de nmap, celui- ci ne scan que les 1024 premiers ports, un port “30306” apparaitra donc pas dans un scan nmap simple. On redémarrera à nouveau notre serviceMysql pour que les changements soient pris en compte : Shell 1 service mysql restart On pourra ensuite renouveler notre test de connexion Mysql à distance en y ajoutant l’option “-P” pour y préciser le port : Shell 1 mysql -u user -p -P 30306
  5. 5. A propos de l'auteur Mickael Fondateur de www.it-connect.fr et de www.information-security.fr, étudiant en Master Sécurité Systèmes et réseaux à l'IIA (Laval). Je souhaite partager mes découvertes et connaissances avec les internautes professionnels, étudiants et amateurs. Autoriser l'accès à distance sur votre serveur MySQL Vous pouvez configurer votre serveur MySQL afin qu'il soit accessible depuis un serveur distant. Cela peut être utile si vous voulez que votre serveur de base de données soit séparé de votre serveur web, ou d'autres serveurs. 1. Accorder des droits à un nom d'utilisateur Pour ce faire, vous aurez besoin d'accorder les droits nécessaire à un utilisateur MySQL afin que celui-ci ait les droits sur la base autre part que sur le serveur hébergeant la base (localhost). Pour ce faire, tapez la commande suivante (une fois connecté à la console en SSH) : (se connecter d'abord au serveur “mysql”) grant all privileges on *.* to remoteuser@123.123.123.123 identified by "userpassword"; Où: *. désigne la ou les bases qui sont autorisées (* signifie toutes, mais vous pouvez n'en choisir qu'une seule si vous le souhaitez), remoteuser est le nom de l'utilisateur MySQL à qui vous accordez l'accès à distance, 123.123.123.123 est l'adresse IP du serveur distant auquel vous donnez l'accès (ceci peut être replacé par * pour TOUS les serveurs),
  6. 6. userpassword est le mot de passe associé à l'utilisateur MySQL en question Une fois que c'est fait, n'oubliez pas de “flusher” les privilèges. Cette commande fait en sorte que les modifications soient immédiatement effectives, sans avoir à redémarrer le serveur : flush privileges; 2. éditer my.cnf Editez le fichier de configuration: nano /etc/mysql/my.cnf Par défaut, MySQL n'écoute que localhost. . Il faudra désactiver la ligne relative au bind-address dans le fichier de configuration mysql: /* bind-address = 127.0.0.1 */ 3. redémarrer le serveur MySQL /etc/init.d/mysql restart

×