Une idée pour ouvrir phpmyadmin directement en SSL ?

Bonjour,

Voilà mon souci :

lorsque je tape mon_adresse_ip/phpmyadmin, je tombe bien entendu sur la page index.php de phpmyadmin

en fait je voudrais pouvoir ouvrir uniquement cette page en https pour des raisons de sécurité comme on peut s’en douter et la désactiver en http.
Après lecture du manuel phpmyadmin, je n’arrive pas à trouver la solution pour arriver à ce résultat…

Install server : debian6 - lamp

Dans l’attente, merci !

Crée un .htaccess et fais une redirection.
httpd.apache.org/docs/2.2/en/mo … write.html

Salut,
Activer le mod_rewrite:a2enmod rewrite

Et ajouter ce qui suit à /etc/phpmyadmin.apache.conf

<IfModule mod_rewrite.c> <IfModule mod_ssl.c> <Location /phpmyadmin> RewriteEngine on RewriteCond %{HTTPS} !^on$ [NC] RewriteRule . https://%{HTTP_HOST}:443%{REQUEST_URI} [L] </Location> </IfModule> </IfModule>

Tu peux faire encore plus vicieux…
Changer le nom du répertoire et le port…

... Alias /tutrouveraspas /usr/share/phpmyadmin ... <IfModule mod_ssl.c> <Location /tutrouveraspas> ... RewriteRule . https://%{HTTP_HOST}:14443%{REQUEST_URI} [L] ...

Merci, en fait j’ai trouvé la solution…

Et croyez moi, c’est vraiment tout con (Et dire que j’ai cherché des heures et que c’était sous mon nez :

vim /etc/phpmyadmin/config.inc.php

et ajouter à la fin la ligne :

$cfg['ForceSSL'] = True;

Enregistrer et quitter l’éditeur et rafraîchir sa page web en tapant …/phpmyadmin et ça va directement en https… ce que je voulais ! :041 :041 :041 :041

Sinon, accessoirement… (maintenant que c’est résolu on peut faire un peu de HS :mrgreen:)

Je n’ai qu’un seul phpMyAdmin en local sur ma machine de travail. Donc pas besoin de SSL puisque Apache n’écoute que sur localhost.
Et pour accéder aux MySQL distants, j’utilise du bête port-forwarding SSH pour ramener le port MySQL distant en local.

Avantages :

  • serveurs plus sécurisés, ça réduit la surface d’attaque
  • un seul point de maintenance pour phpMyAdmin pour tous les serveurs (j’utilise toujours les sources, pas les paquets Debian, donc ça me simplifie beaucoup les mises à jour)

Seul et unique “inconvénient” : il faut lancer un port-forwarding SSH à la main en fonction du serveur auquel je veux me connecter. Y’a pire… :wink:

Salut,
Oui c’est une bonne solution.
Mais il faut être le seul à utiliser les bases sql; Option qui n’est pas envisageable si tu travaille à plusieurs sur le serveur… :wink:

Je n’ai pas de soucis de sécurité avec mon option:

  • ssl obligatoire;
  • changement du nom du répertoire - ne devrait pas contenir sql ou admin…;
  • modification du port;
  • fail2ban.

On peut tout à fait bosser à plusieurs. Ok je te l’accorde, chacun doit avoir un phpMyAdmin en local sur sa machine donc on perd un des avantages (la maintenance simplifiée). Mais ça a l’avantage de conserver tout de même la sécurité maximale du serveur. Oui, ta solution est satisfaisante aussi :stuck_out_tongue: mais vu qu’à la base je suis dév pas admin, moins y’a de trucs à gérer sur le serveur mieux je me porte, ça évite les erreurs/oublis. :wink:

On peut tout à fait bosser à plusieurs. Ok je te l’accorde, chacun doit avoir un phpMyAdmin en local sur sa machine donc on perd un des avantages (la maintenance simplifiée). Mais ça a l’avantage de conserver tout de même la sécurité maximale du serveur. Oui, ta solution est satisfaisante aussi :stuck_out_tongue: mais vu qu’à la base je suis dév pas admin, moins y’a de trucs à gérer sur le serveur mieux je me porte, ça évite les erreurs/oublis. :wink:[/quote]

Je garde l’idée dan un coin en tout cas. Je ne me suis jamais amusé avec le port-forwarding de ssh, ça m’a l’air plein de possibilités (et plus simple qu’un tunnel en tout cas, non ?).

En fait faut voir ça comme un proxy qui n’a qu’une seule IP:PORT de sortie (ce qui n’empêche pas de faire transiter plusieurs connexions simultanées). Super simple à utiliser quand tu as déjà un SSH fonctionnel :

$ ssh -N -L 3305:localhost:3306 user@example.com (authentification) (reste bloqué, arrêter avec Ctrl+C)
Dans un autre terminal toujours sur ta machine cliente :

$ netstat -taupn | grep 3305 tcp 0 0 127.0.0.1:3305 0.0.0.0:* LISTEN 27241/ssh
De la même manière, tu peux aussi ramener un port local sur le serveur avec -R au lieu de -L.

À noter que dans la commande de forwarding, le nom d’hôte (ici localhost) est interprété tel que vu du serveur (en l’occurrence, il s’agit donc bien sûr du serveur lui-même, mais tu pourrais tout aussi bien indiquer un nom d’hôte que seul le serveur connaît car renseigné uniquement dans son /etc/hosts ; ou une IP du LAN du serveur si tu veux, bref, tu vois le truc).

(j’ai mis 3305 côté client pour qu’il n’y ait pas de confusion et que ça soit simple à comprendre, mais rien ne t’empêche de mettre le même numéro de port des deux côtés, c’est d’ailleurs ce que je fais quasiment toujours)

Merci de l’info.
Ça m’ouvre effectivement des horizons… :smiley: