Comment sécuriser phpmyadmin?

9

J'ai vérifié mes journaux d'apache et, whooooaaa, ​​il y a beaucoup de bots essayant d'exploiter phpmyadmin. La première chose que j'ai faite a été de changer le nom du répertoire en quelque chose de plus obscur.

Mais, existe-t-il d'autres conseils pour sécuriser phpmyadmin?

(La base de données elle-même n'est disponible que sur le réseau local)

Boris Guéry
la source
5
La base de données elle-même peut être accessible uniquement localement, mais si son interface de gestion (phpMyAdmin) est accessible au public, cela ne fait aucune différence.
John Gardeniers,
4
La meilleure façon de sécuriser phpMyAdmin est d'apprendre à utiliser le client de ligne de commande MySQL, puis à désinstaller phpMyAdmin.
MDMarra
@MDMarra Je suis absolument d'accord avec vous, mais j'avais juste une mission pour ce client qui avait besoin d'avoir PhpMyAdmin installé, je ne l'ai jamais utilisé et je préfère toujours SSH. Cependant, pour certains usages, l'apprentissage de SQL n'est pas une option et une interface graphique telle que PhpMyAdmin est bien accueillie par de nombreux utilisateurs mais doit être correctement sécurisée par nous, experts et professionnels. C'est très arrogant de penser le contraire.
Boris Guéry

Réponses:

13

Nous faisons une combinaison de choses:

  • Protégez phpMyAdmin via .htaccess ou la configuration Apache qui demande une connexion par nom d'utilisateur / mot de passe HTTP.
  • Protégez phpMyAdmin via la configuration .htaccess ou Apache pour n'autoriser l'accès qu'à partir de certaines adresses IP de confiance
  • Mettez phpMyAdmin dans son propre VirtualHost et exécutez-le sur un port non standard
  • Autoriser uniquement les connexions HTTPS à phpMyAdmin, et non HTTP standard
  • Autorisez uniquement les connexions depuis le LAN (utilisez un VPN pour traverser votre pare-feu et n'autorisez les connexions que si vous êtes sur ce LAN / VPN)
  • Ne nommez pas le répertoire, il se trouve dans quelque chose d'évident comme / phpMyAdmin /

Vous pouvez également utiliser la redirection de port SSH pour utiliser les clés SSH. Voir https://stackoverflow.com/a/3687969/193494

Keith Palmer Jr.
la source
6

Ajoutez un .htaccess qui autorise uniquement l'accès IP local au dossier phpmyadmin.

gekkz
la source
Et si c'est destiné aux clients? De nombreux hébergeurs utilisent PHPMyAdmin.
Luc
6

Rendez phpmyadmin disponible sur un vhost qui n'est accessible que depuis localhost et obligez les utilisateurs à utiliser ssh et la redirection de port pour y accéder.

Brian De Smet
la source
2

Utilisez .htaccess

Nous jetons simplement un fichier .htaccess avec une protection par nom d'utilisateur / mot de passe et (selon les circonstances) une adresse IP.

Cela permet aux États-Unis d'accéder rapidement et facilement à la ressource à partir d'ordinateurs de confiance, mais empêche les pirates de pénétrer.

Une autre remarque ... n'utilisez pas le MÊME nom d'utilisateur / mot de passe pour votre .htaccess comme vous le faites pour PHPMyAdmin ... ce serait idiot. :-)

J'espère que cela t'aides.

KPWINC
la source
2

Je suis d'accord avec htaccess (/ w mot de passe) et https.

Vous pouvez également envisager d'ajouter une deuxième IP à ce serveur et de créer un hôte virtuel Apache basé sur IP pour phpmyadmin. Cela pourrait simplement être une adresse IP de réseau local, il serait donc protégé par le pare-feu (et vous pourriez même ne pas avoir de règle nat pour cela).

Plus il y a de couches (ie htaccess + https + Virtualhost), mieux je pense. Idéalement, les robots ne devraient pas pouvoir l'atteindre en premier lieu.

Vous pouvez bien sûr toujours mettre phpmyadmin sur une autre boîte aussi.

Kyle Brandt
la source
1

En plus des réponses fournies, nous utilisons également l'OSSEC open source pour surveiller nos journaux Web et alerter / bloquer ces analyses.

Il est très simple à installer et par défaut, il trouvera vos journaux Web et commencera à les surveiller.

Lien: http://www.ossec.net

sucuri
la source
1

Déplacez phpmyadmin dans un répertoire dont le nom est obscurci comme on pourrait s’attendre à ce qu’un mot de passe soit: combinaison de lettres minuscules et de chiffres (PhP01mY2011AdMin, par exemple) et de même un mot de passe "en toute sécurité" protégeant le répertoire avec .htpasswd devrait à peu près faire l'affaire.

Là encore, si la sécurité de vos bases de données mysql est vitale pour votre entreprise, il faut se demander "qu'est-ce qui fait rendre un outil d'administration comme phpmyadmin accessible à Internet en premier lieu?" Mais bon, tout le monde a ses raisons de vivre.

A dessiné
la source
0
  • HTTPS
  • Rendez-le accessible uniquement via le tunnel VPN / SSH

phpmyadmin est trop une bête pour sécuriser. Vous auriez besoin de mod_security et d'une semaine de débogage des alertes juste pour désactiver la moitié des règles pour assurer la fonctionnalité de phpmyadmin. Conclusion: ne le rendez pas accessible au public.

weeheavy
la source