Config du trio mysql, phpmyadmin et apache2

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.

Config du trio mysql, phpmyadmin et apache2

Messagede le Manchot Masqué » Dim 08 Juil 2018, 23:05

Intro pour les débutants :
- MySQL est une base de données propriété d'Oracle, aujourd'hui remplacée de plus en plus par son pendant libre mariadb sous GNU/Linux. Cela étant, MySQL reste très utilisée pour des raisons qui dépassent le cadre de document.
- PhpMyAdmin est une interface web pour créer et gérer les bases de données et les tables associées.
- Apache2 est le serveur web par défaut de GNU/Linux, le plus usité sur la toile.

Premier problème : sous la Ubuntu 18.04, mysql est installé sans mot de passe (?!), ce qui signifie que si vous êtes root, il suffit de taper 'mysql' pour rentrer en session, et détruire toutes les bases de données installées !
Réglons donc d'abord cette hérésie sécuritaire :

Code: Select All Code
# mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mot_de_passe';
FLUSH PRIVILEGES;
SELECT user,authentication_string,plugin,host FROM mysql.user;


Après ce traitement de choc, c'est désormais 'mysql -uroot -p' ou 'mysql -p' sous root (on vous pardonnera si vous relisez 2x cette phrase).

Second problème : après l'installation classique de phpmyadmin, il n'est pas rare que l'ordinateur vous insulte avec un :
Code: Select All Code
Access denied for user 'root'@'localhost'


Il faut alors simplement reconfigurer votre phpmyadmin comme suit :

Code: Select All Code
# dpkg-reconfigure phpmyadmin
<Ok>
Reinstall database for phpmyadmin: <Yes>
Connection method for MySQL database server for phpmyadmin: Unix socket
MySQL database name for phpmyadmin: phpmyadmin
<Ok>
MySQL username for phpmyadmin: root@localhost
MySQL application password for phpmyadmin: mot_de_passe
Password confirmation: mot_de_passe
Name of the database's administrative user: root
Web server to reconfigure automatically: apache2


Et normalement, si vous ouvrez http://localhost/phpmyadmin, vous devez pouvoir vous connecter à vos bases.
Mais c'est mal. Parce que votre mot de passe root pour mysql circule en clair sur le réseau !

Heureusement, Apache propose une configuration https, utilisable rapidement

Code: Select All Code
# a2enmod ssl
# a2ensite default-ssl
# a2dissite default
# service apache2 restart


On a ici fait le choix de désactiver le mode http standard (non sécurisé) pour plus de sécurité.
Désormais, c'est https://localhost/phpmyadmin qu'il faut utiliser.
Dernier problème : Firefox râle (avec raison) parce que le certificat n'est pas signé par une autorité de certification (CA).
Normal : la configuration d'Apache2 génère un certificat autosigné, donc inconnu du reste du monde.
Mais comme Firefox est gentil, il permet de rajouter une exception, ce que nous faisons sur les postes clients.

À noter enfin qu'il est toujours utile de connaître la durée des certificats autogénérés par la Ubuntu (10 ans normalement).
Pour les plus curieux(-ses) :

Code: Select All Code
# openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -noout -text
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
 
Messages: 337
Inscription: Lun 26 Mai 2008, 21:05
Localisation: Guebwiller
Distribution: Debian, Ubuntu
Niveau: Moitié plein !

Retourner vers Sur un logiciel

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron