Mysql Connexion distante : sécurité

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

Mysql Connexion distante : sécurité

Messagepar vito » 27 Fév 2005 17:05

Bonjour,

j'ai une application (java) qui doit alimenter une base MySql distante (les pc clients tournent sous windows, et pas d'IP fixe). J'ai donc créé un utilisateur spécifique avec les privilèges nécessaires.

Maintenant j'ai ajouté une règle à iptables pour ouvrir le port 3306 comme ceci :
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Ma question se porte sur le côté sécurité, ne peut-on pas spécifier une règle plus fine au niveau iptables (sur un nom d'utilisateur mysql ou autre) car j'imagine qu'en terme de sécurité cette config n'est pas idéale.

J'ai essayé d'utiliser l'adresse mac des machines mais j'ai appris que celle ci ne se transmettai que dans un réseau local.

Merci
vito
Matelot
Matelot
 
Messages: 4
Inscrit le: 26 Fév 2005 18:51

Messagepar Zeno » 27 Fév 2005 19:53

TU peu filtrer avec une adresse IP.. Si tu as une IP fixe...
Avatar de l’utilisateur
Zeno
Vice-Amiral
Vice-Amiral
 
Messages: 767
Inscrit le: 22 Déc 2003 01:00
Localisation: Lyon

Messagepar frost » 27 Fév 2005 21:16

Aprés cela vient aussi de ton application si elle est sécurisée ou non, si tu peux ajoutes snort sur ton serveur ou plutot ton pc routeur, cela serait l'idéale, je m'explique, tu ajoutes les régles par défaut, dont une qui detecte si un utilisateur tente de se connecter avec un mot de passe Root aprés à toi de voir si tu veux faire des modifications de snort pour le passer en Actif mais cela peut aussi te générer de fausses-vraies erreurs (en effet si tu prends un nids actif, et que le pirate arrive à savoir que tu possédes ce genre d'équipements, il peut forger des paquets pour faire un deni de service et donc tu ne pourras plus utiliser ton serveur Mysql).

Suis-je assez clair ?
Frost
------------------------------
Ipcop Addict
------------------------------
Avatar de l’utilisateur
frost
Contre-Amiral
Contre-Amiral
 
Messages: 465
Inscrit le: 28 Fév 2004 01:00
Localisation: Arras

Messagepar vito » 28 Fév 2005 01:31

Zeno, en effet mais ça coute chère, merci quand même.

Frost,
"Suis-je assez clair ?" :


Et bien mon niveau est assez modeste, tes explications j'en saisie l'aspect théorique, mais la mise en pratique risque d'être plus délicate.

A mon avis, l’application n'est pas sécurisée. Je n'ai pas encore vu comment celle ci était gérée, mais il y a de grande chance pour que celle ci relève du bricolage.

[grosnewbies]Le port 3306 ouvert, c'est vraiment ennuyeux non ? [/grosnewbies]

Si vraiment il est crucial que celui ci soit hermétique aux flux externes peut être devrais-je revoir le mécanisme qui alimente la base MySql. Alors dans les 2 cas je me remonte les manches et soit je m'attaque à l'installation de snort (directement sur mon serveur car je n'ai pas de pc routeur...) ou soit je revois l'application java.

Pour cette histoire d'adresse mac vous confirmer que celle ci n'est pas exploitable hors réseau interne ?
vito
Matelot
Matelot
 
Messages: 4
Inscrit le: 26 Fév 2005 18:51

Messagepar frost » 28 Fév 2005 14:03

Le port 3306 est le port de connexion par defaut

Or pour te connecter à une base de données (ou même tout autre service) tu dois déclarer le port auquel tu vas te connecter donc celui-ci doit être ouvert; mais il faut un systéme permettant de scanner les paquets pour vérifier que la personne qui se connecte ne va pas utiliser un mot de passe root. Tant qu'à faire et dans la mesure du possible, définis toi un utilisateur qui se connecte à ta base de données (via ton application) et applique lui des droits restrictifs, c'est à dire que tu dois trouver quelles commandes il aura droit de faire et quelles commandes il n'aura pas le droit :

SELECT
CREATE
GRANT
INSERT
ALTER
PROCESS
UPDATE
INDEX
RELOAD
DELETE
DROP
SHUTDOWN
FILE
REFERENCES

Si par hasard ton utilisateur est root de base, tu as des soucis à avoir car par defaut Root à tous les droits, enfin cette solution n'est envisageable que si tu peux avoir accés au code source de ton appli !!
Frost
------------------------------
Ipcop Addict
------------------------------
Avatar de l’utilisateur
frost
Contre-Amiral
Contre-Amiral
 
Messages: 465
Inscrit le: 28 Fév 2004 01:00
Localisation: Arras

Messagepar vito » 28 Fév 2005 15:58

Ds mon premier post :
J'ai donc créé un utilisateur spécifique avec les privilèges nécessaires.

=
définis toi un utilisateur qui se connecte à ta base de données


C'est bien ce que j'ai fais, j'ai un user par exemple appliJava avec mot de passe et seulement le droit de select et d'insert avec en host % et uniquement sur 1 base (je pourrais même allez jusqu'à donner ces droits uniquement sur 2 tables en fait).

Là on est bon, mais il me reste le problème d'ouvrir le port 3306 pour que celui ci se connecte sur ma base de données. Plus j'y pense et plus je ne vois que la solution d'avoir des IP fixes pour les postes qui doivent alimenter la base de données :cry: . Ainsi je peux autoriser de manière très simple tel ip à accèder au port 3306.
vito
Matelot
Matelot
 
Messages: 4
Inscrit le: 26 Fév 2005 18:51

Messagepar frost » 28 Fév 2005 17:22

Autant pour moi j'avais oublier de relire ton post, mais pour le port je crois que tu vas être chocolat !!! sans pouvoir y faire grand chose... je le crains.
Frost
------------------------------
Ipcop Addict
------------------------------
Avatar de l’utilisateur
frost
Contre-Amiral
Contre-Amiral
 
Messages: 465
Inscrit le: 28 Fév 2004 01:00
Localisation: Arras

Messagepar vito » 28 Fév 2005 17:39

:cry: oui j'ai beau retourner le problème dans tous les sens, pas de soluce miracle à l'horizon.

La meilleure chose serait de modifier l'appli java, que celle ci pousse par ftp un fichier txt ou xml. Une tâche cron détecterait ce nouveau fichier et hop ça partirait en traitement. Ainsi je reste en local pour alimenter mysql et ce satané port 3306 peut rester fermé...

En tout cas merci quand même.
vito
Matelot
Matelot
 
Messages: 4
Inscrit le: 26 Fév 2005 18:51

Messagepar Jkill » 28 Fév 2005 17:47

vito a écrit::cry: oui j'ai beau retourner le problème dans tous les sens, pas de soluce miracle à l'horizon.

La meilleure chose serait de modifier l'appli java, que celle ci pousse par ftp un fichier txt ou xml. Une tâche cron détecterait ce nouveau fichier et hop ça partirait en traitement. Ainsi je reste en local pour alimenter mysql et ce satané port 3306 peut rester fermé...

En tout cas merci quand même.
pas mal l'idée :D
j'y penserai pour une appli future :)
bon courage sinon 8)
.:: JKiLL ::.
Avatar de l’utilisateur
Jkill
Premier-Maître
Premier-Maître
 
Messages: 69
Inscrit le: 09 Oct 2002 00:00
Localisation: chartres (28)


Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron