Restreindre les connexions MySQL de localhost pour améliorer la sécurité

j'ai entendu dire que quiconque connaît mon nom D'Utilisateur et mon mot de passe MySQL peut y accéder, même s'il n'écoute que localhost.

supposons que mon info soit comme suit:

USER: root
PASS: 123456
Host: LOCALHOST (only)

Comment est-il possible que quelqu'un (local) puisse y accéder?

19
demandé sur jonsca 2012-11-03 15:14:15

4 réponses

si vous restreignez l'accès des hôtes distants à vos noms d'utilisateur et mots de passe, alors quelqu'un ne pourra pas accéder à la base de données à l'extérieur.

vous pouvez également configurer votre pare-feu pour n'autoriser que le trafic à 3306 (Port par défaut MySQL) depuis la machine localhost.

mise à Jour

pour configurer votre utilisateur de façon à ce qu'il ne puisse y accéder qu'en utilisant LOCALHOST:

GRANT ALL PRIVILEGES ON *.* TO db_user @'localhost' IDENTIFIED BY 'db_passwd';
GRANT ALL PRIVILEGES ON *.* TO db_user @'127.0.0.1' IDENTIFIED BY 'db_passwd';

aussi, liez votre serveur MySQL à l'adresse locale. Vous pouvez le faire en modifiant le [mysqld] article de my.cnf:

[mysqld]
bind-address = 127.0.0.1
39
répondu ajtrichards 2017-02-21 18:54:39

vous pouvez bloquer L'accès direct à MySQL par le pare-feu ou à L'intérieur de MySQL lui - même, mais la façon la plus probable que vous seriez piraté est par le biais d'une application web non sécurisée-dans cette situation, l'attaquant serait très probablement en mesure de lire votre connexion de base de données et se connecter à partir du serveur.

donc gardez vos applications en sécurité - Gardez tout à jour, n'autorisez pas le téléchargement de fichiers, utilisez suPHP si vous avez plusieurs comptes, etc.

si vous restreignez votre application mysql suivez ceci les étapes:

1.Vous pourriez bloquer le port 3306. Si le site est sur le même serveur, il pourra tout de même accéder à la base de données en utilisant localhost comme nom d'hôte.

2.Il suffit d'ajouter "bind-address = 127.0.0.1" à la section "[mysqld]" de leur my.fichier cnf pour restreindre l'accès à localhost seulement.

la Plupart des gens utilisent ce type de restriction.

4
répondu Ami 2012-11-03 11:41:14

C'est une question plus ancienne que je suis tombé sur, mais si Darkeden avait phpMyAdmin ou un fonctionnement similaire, n'importe qui peut se connecter à cela en utilisant des justificatifs MySQL valides.

si elle a été compromise, alors en plus de restreindre les connexions, changer tous les mots de passe.

4
répondu Steve 2015-01-10 03:30:33

Je n'ai pas vu de réponse à sa question (ajustée) - il l'a verrouillée sur localhost et l'attaquant est toujours en train d'y entrer.

Si vous avez vraiment limité, il pour l'hôte local (vérifier à l'aide de la commande netstat -an | egrep 3306 pour vérifier qu'il est à l'écoute à l'adresse 127.0.0.1 pas 0.0.0.0), la seule façon d'y accéder est de créer une connexion à partir de cet hôte local.

mesures initiales à prendre:

  1. probablement reconstruire un remplacer le système à partir de zéro et le durcir avant de le rendre accessible au public (avoir une recette reproductible, par exemple en utilisant ansible, vous aidera car vous pourriez avoir à passer par quelques itérations pour apprendre comment il obtient dans) Vérifiez avec des scanners de sécurité réputés ce que vous êtes des trous évidents,
  2. obtenez l'aide d'un professionnel de la sécurité (dépend si vous voulez passer $ ou le temps et la frustration de corriger)
  3. appliquer des correctifs de sécurité,
  4. supprimer les services que vous n'avez pas besoin d',
  5. restreindre l'accès à la base de données aux seuls programmes qui en ont besoin,
  6. refaire tous vos mots de passe,
  7. vérifier installé les rootkits et autres virus,
  8. sécurisez votre serveur si vous êtes dans votre propre bureau et formez le personnel à l'ingénierie sociale,
  9. utilisez un service qui surveillera et filtrera les requêtes qui passent et refusera l'accès direct (par exemple, utilisez cloudflare comme point de départ)
  10. vérifier enregistreurs de clavier (physiques, logiciels et autres virus) sur toutes les machines utilisées pour accéder au serveur),
  11. vérifiez les moyens physiques de journaliser vos frappes dans l'accès à votre serveur (par exemple, le style Web cam utilisé dans atm), les plus exotiques incluent le son (https://en.wikipedia.org/wiki/Acoustic_cryptanalysis), tapant avec un point d'accès wifi à proximité (par exemplehttps://www.schneier.com/blog/archives/2016/08/keystroke_recog.html)
  12. Ajouter un audit suivez et surveillez l'activité de la base de données pour savoir comment il passe, mais au moins vous devez faire tout le sécurisation évidente d'abord parce que sinon il va juste sauter d'un trou de sécurité à un autre

Il pourrait être également par le biais de l'aide:

  1. accès via un programme que vous utilisez (par exemple un serveur web) qui est accessible de l'extérieur et qui a un trou de sécurité qui lui permet d'exécuter des commandes sql arbitraires à travers sa base de données existante connexion - voir https://www.w3schools.com/sql/sql_injection.asp

  2. traquer un programme auquel il a accès de l'extérieur pour faire proxy une connexion pour lui à localhost: 3306 (par exemple via un pare-feu réseau mal configuré sur la machine)

  3. tromper un programme pour exécuter un programme local (bash. mysql etc), et de là obtenir l'accès à la base de données-débordements de tampon et d'autres données spécialement conçues est un problème commun à l'exécution de code arbitraire

  4. l'homme dans le milieu attaque sur une connexion qui a un accès légitime

  5. bogues dans un programme qui traite automatiquement ou manuellement des données de l'extérieur, par exemple le courrier électronique, le traitement de postscript / pdf/tout document avec le traitement de scripts - même l'affichage d'un fichier texte peut être dangereux - voir https://www.proteansec.com/linux/blast-past-executing-code-terminal-emulators-via-escape-sequences/

  6. ingénierie sociale un moyen d'amener les gens à vous donner accès à

  7. réussir à obtenir un dispositif matériel attaché à un ordinateur qui a accès (combien de personnes vont ramasser une "clé USB" couché dans le parking de travail et de vérifier à la place son "clavier programmable", et tous les ordinateurs confiance claviers!)

  8. et puis beaucoup plus toutes les autres sortes de méthodes que je ne connais pas, mais ceux qui sont partagent ...

rappelez-vous juste que vous avez besoin d'avoir une sécurité pratique, je pense que xkcd le dit juste:https://xkcd.com/538/

2
répondu iheggie 2017-10-03 18:27:02