dragonrider8 Posté(e) le 18 octobre 2012 Posté(e) le 18 octobre 2012 Bonjour Je viens d'installer phpmyadmin sur mon nas synology ( DS212) et de créer une base de donnée pour une appli que je suis en train de développer. Mon appli accède correctement à ma base de donnée depuis mon réseau local mais je tente désespérément de rendre ma base de données accessible depuis internet. Je pense que j'ai du oublié de configurer quelque chose mais je ne sais pas quoi : 1) J'ai bien forwardé le port 3306 de ma freebox 2) Sur mon nas, le port 3306 est autorisé dans le firewall 3) Sur phpmyadmin j'ai bien créé un utilisateur avec tous les droits et depuis tous les lieux ( % ) en lui mettant bien sur un mot de passe. Il ne s'agit pas d'un problème de code de mon programme, car j'ai un ami qui a créé la même base de donnée chez lui et l'appli accède à sa BD correctement. J'ai cherché sur google et j'ai trouvé divers post qui parle d'un fichier de configuration my.cnf dans lequel il indique qu'il faut rajouter une ligne avec : bind-address = ip externe J'ai tenté cette manipulation mais elle ne marche pas, mon serveur mysql ne marche plus du tout après cette manip ( même en local), j'ai donc désactiver cette nouvelle ligne. Je pense qu'il s'agit d'un problème de droit ou de firewall ( je ne peux pas accéder à phpmyadmin ailleurs que dans mon réseau local ) mais j'avoue que je ne sais plus quoi faire. 0 Citer
PatrickH Posté(e) le 18 octobre 2012 Posté(e) le 18 octobre 2012 Premièrement ouvrir une base de donnée "directement" sur internet n'est PAS une bonne idée (ouvrir le port 3306) car les risques d'attaques sont bien trop grandes. Ensuite le bind-address =0.0.0.0 devrait fonctionner As tu essayé d'y accéder depuis un de tes PC ? ca fonctionne dans ce cas la ou pas ? Patrick 0 Citer
dragonrider8 Posté(e) le 18 octobre 2012 Auteur Posté(e) le 18 octobre 2012 (modifié) Premièrement ouvrir une base de donnée "directement" sur internet n'est PAS une bonne idée (ouvrir le port 3306) car les risques d'attaques sont bien trop grandes. Ensuite le bind-address =0.0.0.0 devrait fonctionner As tu essayé d'y accéder depuis un de tes PC ? ca fonctionne dans ce cas la ou pas ? Patrick Oui j'y accède depuis mon pc ( mon nas et mon pc sont dans le même réseau local, comme je l'ai indiqué, en local cela fonctionne parfaitement ) Je viens d'essayer le bind-address = 0.0.0.0 j'ai toujours l'erreur suivante lorsque je redemarre le serveur mysql: Starting MySQL...... ERROR! Manager of pid-file quit without updating file. MYSQL data dir = /volume1/@database/mysql... Sinon que me conseilles tu de faire pour ne pas ouvrir ma base de donnée directement sur internet ? Modifié le 18 octobre 2012 par dragonrider8 0 Citer
PatrickH Posté(e) le 19 octobre 2012 Posté(e) le 19 octobre 2012 ... Sinon que me conseilles tu de faire pour ne pas ouvrir ma base de donnée directement sur internet ? Je conseille d'héberger l'application qui a besoin des données de la base de donnée sur le même serveur ou sur un serveur du même réseau local. Car si ton application fait de nombreuses requête à la DB au travers d'internet cela sera de toute facon très lent (hormis le problème de sécurité de tes données !) C'est quoi ton application exactement ? et quelle est son architecture ou est le serveur d'application ? et que fais tu sur le client ? Patrick 0 Citer
dragonrider8 Posté(e) le 19 octobre 2012 Auteur Posté(e) le 19 octobre 2012 Mon application est du type client lourd (elle se contente de créer ou modifier des données dans une base de donnée distante). Il s'agira d'une petite application avec une base donnée également petite ( au maximum 1000 lignes dans une table ). Il y aura uniquement 2 personnes avec des droits en écriture et les autres ( une dizaine maxi ) auront uniquement accès en lecture, ces clients étant réparti dans plusieurs régions géographique et non uniquement présent sur un réseau local. Le problème de performance est donc minim étant donné la faible volumétrie des données et le petit nombre d'utilisateur, de plus les données ne sont pas confidentiel. Cependant je n'arrive toujours pas à rendre ma base de données de mon accessible depuis internet... 0 Citer
PatrickH Posté(e) le 19 octobre 2012 Posté(e) le 19 octobre 2012 As tu bien ouvert le port 3306 en TCP vers ton Syno ? Patrick 0 Citer
dragonrider8 Posté(e) le 19 octobre 2012 Auteur Posté(e) le 19 octobre 2012 (modifié) As tu bien ouvert le port 3306 en TCP vers ton Syno ? Patrick Arf je croyais l'avoir fais dans l'interface de ma freebox mais ca a du buggué ... je le refais, je re teste et je te tiens au courant. Edit : c'était bien cela ma configuration du port sur ma freebox n'avait pas été retenu, j'ai du faire une erreur quelque part. Bon ba maintenant j'ai plus qu'a trouver comment sécuriser ma base de données avec un accès SSL seulement Modifié le 27 octobre 2012 par dragonrider8 0 Citer
loli71 Posté(e) le 19 octobre 2012 Posté(e) le 19 octobre 2012 Faire transiter les requêtes mysql directement sur internet parait effectivement TRES dangereux, si je ne me trompe pas, le protocole n'est pas forcément encrypté, donc on verra passer en clair le compte et mot de passe qui donne accès à ta base de donnée en écriture en clair sur internet .... Après il existe un moyen assez simple de ne pas faire passer en clair ces données, mais qui nécessite un accès en ssh sur le synology et un clietn ssh sur le poste client qui ferait du forwarding de port (type putty). En gros, tu lances sur le PC (avant de lancer ton client lourd) une connexion ssh vers le synology avec (dans la conf putty) le forwarding du port 3306 vers 127.0.0.1:3306 (qui correspond à l'autre bout du tunnel donc ton syno). Ensuite tu paramètre ton client lourd pour qu'il utilise 127.0.0.1 comme adresse du serveur mysql et le tour est joué. Avantages: - pas de connexion en clair sur le port 3306 sur internet entre ton client lourd et ta base de données sur ton syno - pas de port 3306 à ouvrir ni sur le firewall du syno ni sur ta box, uniquement le port 22 (SSH) voir même un autre port moins connu selon le paramétrage de ta box Inconvénients: - nécessité de créer au moins un compte sur le syno (sans forcément de droits dans les différents applications du syno d'ailleurs à part le ssh) permettant l'accès ssh - nécessité de lancer une connexion ssh du PC hébergeant le client lourd vers le syno avant le lancement du client lourd (utilisation de Putty par exemple) - L'utilisation de Putty veut dire que le PC hébergeant le client lourd doit avoir une connexion directe à Internet (pas d'utilisation de proxy d'entreprise par exemple, sinon la solution devient plus complexe) A toi de voir ;-) 0 Citer
PatrickH Posté(e) le 19 octobre 2012 Posté(e) le 19 octobre 2012 Il est possible d'utiliser une connexion SSL pour se connecter à ta base de donnée. MySQL le supporte normalement, mais savoir si la config installé sur nos Syno le permet j'ai jamais regardé car je n'ouvre JAMAIS MySQL vers internet Patrick 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.