Comment installer et sécuriser phpMyAdmin sur Ubuntu 18.04 LTS

phpMyAdmin est un outil d’administration gratuit et open source pour MySQL et MariaDB. phpMyAdmin est un outil Web qui te permet de gérer facilement les bases de données MySQL ou MariaDB. Tu peux effectuer des tâches d’administration telles que la création, la modification ou la suppression de bases de données, l’importation et l’exportation de sauvegardes de bases de données, l’exécution de recherches et la gestion des utilisateurs et des autorisations à l’aide de phpMyAdmin.

Caractéristiques

  • Prise en charge de plusieurs langues.
  • Importe des données depuis CSV et SQL.
  • Fournit des graphiques en direct pour surveiller l’activité du serveur MySQL comme les connexions, les processus, l’utilisation du CPU/de la mémoire, etc.
  • Recherche globale dans une base de données ou un sous-ensemble de celle-ci.
  • Interface web simple et facile à utiliser.
  • Exporte les données vers différents formats comme CSV, SQL, XML, PDF, Word, Excel, LaTeX, et autres.

Dans ce tutoriel, nous allons t’expliquer comment installer et sécuriser phpMyAdmin sur le serveur Ubuntu 18.04.

Exigences

    • Un serveur fonctionnant sous Ubuntu 18.04.
    • Un utilisateur non-root avec des privilèges sudo.

Installer phpMyAdmin

Avant de commencer, tu dois installer Apache et MySQL sur ton serveur. Tu peux les installer avec la commande suivante :

sudo apt-get install apache2 mysql-server -y

Par défaut, phpMyAdmin n’est pas disponible dans le référentiel par défaut d’Ubuntu 18.04. Tu devras donc ajouter le dépôt PHP tiers à ton système.

Tu peux l’ajouter en exécutant la commande suivante :

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

Une fois le référentiel ajouté, installe phpMyAdmin en exécutant la commande suivante :

sudo apt-get install phpmyadmin php-mbstring php-gettext -y

Pendant l’installation, il te sera demandé de choisir le serveur Web comme indiqué ci-dessous :

Installer phpMyAdmin

Choisis Apache et clique sur le bouton OK. Tu seras redirigé vers la page suivante :

Configure la base de données avec dbconfig common

Maintenant, clique sur le bouton Oui. Tu devrais voir la page suivante :

Set MySQL application password

Conf confirmer le mot de ce mot de ce mot de ce mot confirmé

Ici, indique le mot de passe de ton application MySQL pour phpMyAdmin et clique sur le bouton OK.

Une fois que phpMyAdmin a été installé, active l’extension PHP mbstring avec la commande suivante :

sudo phpenmod mbstring

Ensuite, redémarre le service Apache pour appliquer les modifications :

sudo systemctl restart apache2

Configurer l’authentification des utilisateurs

phpMyAdmin a automatiquement créé un utilisateur de base de données appelé phpmyadmin avec le mot de passe administratif que tu as défini pendant l’installation. Mais il est recommandé de créer un utilisateur distinct pour gérer les bases de données via l’interface Web de phpMyAdmin. Dans la dernière version de MariaDB, l’utilisateur racine de MySQL est configuré pour s’authentifier à l’aide du plugin auth_socket par défaut. Donc, si tu veux te connecter à phpMyAdmin en tant qu’utilisateur MySQL racine, tu devras changer sa méthode d’authentification de auth_socket à mysql_native_password.

Tout d’abord, connecte-toi au shell MySQL avec la commande suivante :

sudo mysql

Ensuite, vérifie la méthode d’authentification de l’utilisateur MySQL avec la commande suivante :

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Sortie :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.01 sec)

Dans la sortie ci-dessus, tu devrais voir que l’utilisateur root utilise le plugin auth_socket.

Tu peux configurer le compte root pour qu’il s’authentifie avec un mot de passe en exécutant la commande suivante :

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Ensuite, vide les privilèges avec la commande suivante :

mysql> FLUSH PRIVILEGES;

Maintenant, vérifie les méthodes d’authentification en exécutant la commande suivante :

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Sortie :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.01 sec)

Ensuite, crée un utilisateur distinct avec le nom phpmyadminuser pour te connecter à phpMyAdmin.

Tout d’abord, connecte-toi au shell MySQL :

mysql -u root -p

Saisis ton mot de passe root, puis crée un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'password';

Ensuite, accorde les privilèges appropriés à phpmyadminuser avec la commande suivante :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

Enfin, quitte le shell MySQL avec la commande suivante: :

MariaDB [(none)]> exit;

Maintenant, ouvre ton navigateur Web et tape l’URL http://your-server-ip/phpmyadmin. Tu seras redirigé vers la page suivante :

Connexion à phpMyAdmin

Ici, indique ton nom d’utilisateur et ton mot de passe. Ensuite, clique sur le bouton Go. Tu devrais voir le tableau de bord de PhpMyAdmin sur la page suivante :

Tableau de bord de phpMyAdmin

Sécuriser PhpMyAdmin

PhpMyAdmin est maintenant installé et configuré. Mais il est recommandé de sécuriser ton instance de phpMyAdmin pour empêcher tout accès non autorisé Tu peux sécuriser phpMyAdmin en utilisant les fonctionnalités d’authentification et d’autorisation .htaccess intégrées à Apache.

Pour ce faire, active d’abord l’utilisation des dérogations du fichier .htaccess en modifiant le fichier phpmyadmin.conf :

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Apporte les modifications suivantes :

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All

Enregistre et ferme le fichier. Ensuite, redémarre le service Apache pour appliquer les chnagements :

sudo systemctl restart apache2

Ensuite, crée un fichier .htaccess dans le répertoire phpmyadmin :

sudo nano /usr/share/phpmyadmin/.htaccess

Ajoute les lignes suivantes :

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Sauvegarde et ferme le fichier. Ensuite, crée un utilisateur nommé admin avec l’utilitaire htpasswd :

sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin

Sortie :

New password: 
Re-type new password: 
Adding password for user admin

Ton instance de phpMyAdmin est maintenant sécurisée par une couche d’authentification supplémentaire.

Maintenant, ouvre ton navigateur Web et tape l’URL http://your-server-ip/phpmyadmin. Tu seras redirigé vers le nom de compte et le mot de passe supplémentaires que tu viens de configurer, comme indiqué ci-dessous :

phpMyAdmin sécurisé avec .htaccess

Maintenant, indique ton nom d’utilisateur et le mot de passe et clique sur le bouton Connexion. Tu devrais être redirigé vers la page d’authentification normale de phpMyAdmin.

Liens

Vous aimerez aussi...