Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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

Posté(e) (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é par dragonrider8
Posté(e)

...

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

Posté(e)

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...

Posté(e) (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é par dragonrider8
Posté(e)

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 ;-)

Posté(e)

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

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.