GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installez phpMyAdmin avec la pile LEMP sur Ubuntu 20.04 LTS

Nous savons déjà comment installer phpMyAdmin avec la pile LAMP sur Ubuntu 20.04 . Aujourd'hui, voyons comment installer phpMyAdmin avec la pile LEMP sur l'édition Ubuntu 20.04 LTS. Et puis nous discuterons également de quelques pratiques de sécurité qui aideront à protéger phpmyadmin des menaces courantes. Tout d'abord, assurez-vous d'avoir configuré la pile LEMP sur Ubuntu 20.04 comme décrit dans le lien suivant.

  • Installer Nginx, MySQL, PHP (pile LEMP) sur Ubuntu 20.04 LTS

Après avoir installé la pile LEMP, installez et sécurisez phpMyAdmin comme décrit dans les sections suivantes.

Installer phpMyAdmin avec la pile LEMP sur Ubuntu 20.04 LTS

Exécutez la commande suivante pour installer phpMyAdmin depuis le Terminal :

$ sudo apt install phpmyadmin

Dans la fenêtre suivante, vous serez invité à sélectionner le serveur Web qui doit être automatiquement configuré pour exécuter phpMyAdmin. Comme vous pouvez le voir dans la capture d'écran ci-dessous, Nginx n'est pas disponible dans la liste des serveurs Web. Apache et lighthttpd ne sont listés ici. Doncne sélectionnez pas n'importe quel serveur Web et laissez-le vide. Choisissez OK et appuyez sur ENTER pour continuer :

PhpMyAdmin nécessite une base de données installée et configurée avant de pouvoir être utilisé. Vous pouvez le faire avec dbconfig-command.

Choisissez Oui pour configurer la base de données pour phpmyadmin avec dbconfig-common :

Vous devez fournir un mot de passe pour que phpmyadmin s'enregistre auprès du serveur de base de données MySQL. Si le mot de passe n'est pas donné, un mot de passe aléatoire sera généré.

Saisissez un mot de passe fort et appuyez sur ENTER pour continuer :

Entrez à nouveau le mot de passe :

Au moment d'écrire ce guide, lorsque j'ai essayé de définir le mot de passe pour phpmyadmin, l'erreur suivante s'affiche :

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

Cette erreur se produit parce que nous avons activé le VALIDATE PASSWORD composant tel que décrit dans la section intitulée "2.2 Modifier la méthode d'authentification pour l'utilisateur racine MySQL" dans le guide d'installation de la pile LEMP joint ci-dessus.

Pour résoudre ce problème, vous devez désactiver temporairement le composant Valider le mot de passe et le réactiver après avoir défini le mot de passe pour phymyadmin. Cliquez sur OK pour fermer le message d'erreur ci-dessus et choisissez "abandonner" pour annuler l'installation de phpmyadmin.

Connectez-vous maintenant à l'invite Mysql en exécutant la commande suivante :

$ mysql -u root -p

Depuis l'invite mysql, utilisez la commande suivante pour désactiver le plugin Validate Password :

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Veuillez noter que la commande ci-dessus désactivera uniquement le plugin, mais ne le supprimera pas. Vous pourrez l'activer plus tard. Tapez ensuite "exit" pour quitter l'invite Mysql.

mysql> exit

Essayez maintenant d'installer à nouveau phpmyadmin en utilisant la commande :

$ sudo apt install phpmyadmin

Choisissez "Oui" et appuyez sur ENTRÉE pour configurer la base de données pour phpmyadmin avec dbconfig-common. Cette fois, l'installation de phpmyadmin fonctionnera sans aucun problème.

Une fois phpmyadmin installé, réactivez le plugin Validate Password. Pour ce faire, connectez-vous à votre invite Mysql :

$ mysql -u root -p

Depuis l'invite mysql, utilisez la commande suivante pour désactiver le plugin Validate Password :

mysql> INSTALL COMPONENT "file://component_validate_password";

Tapez exit pour quitter l'invite mysql.

mysql> exit

Créez maintenant un lien symbolique pour configurer le serveur Web Nginx afin qu'il exécute phpmyadmin à l'aide de la commande :

$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

Cette commande créera un lien symbolique nommé "phpmyadmin" sous le répertoire racine de Nginx. Ce lien symbolique pointe en fait vers le répertoire /usr/share/phpmyadmin, où les fichiers réels sont stockés.

Fait! Nous avons installé avec succès PhpMyAdmin avec la pile LEMP.

Accéder au tableau de bord phpMyAdmin

Ouvrez votre navigateur Web et accédez à "http://IP-Address/phpmyadmin" depuis la barre d'adresse.

Vous devriez voir la page de connexion phpmyadmin. Saisissez l'utilisateur de la base de données et son mot de passe :

Vous serez satisfait du tableau de bord phpMyAdmin.

À partir de là, vous pouvez créer, supprimer et gérer des bases de données.

Créer un utilisateur dédié pour accéder au tableau de bord phpMyAdmin

Une fois phpMyAdmin installé, un utilisateur de base de données nommé 'phpmyadmin' sera automatiquement créé avec le mot de passe administrateur que vous avez défini lors de l'installation. Vous pouvez vous connecter au tableau de bord phpmyAdmin en utilisant l'utilisateur 'phpmyadmin' ou mysql root utilisateur comme indiqué ci-dessus. Cependant, il est recommandé de créer un utilisateur dédié pour gérer les bases de données via l'interface web phpMyAdmin.

Pour ce faire, connectez-vous au shell mysql à l'aide de la commande :

$ mysql -u root -p

Entrez votre mot de passe root mysql. Vous serez maintenant dans le shell mysql.

Saisissez la commande suivante pour créer un nouvel utilisateur dédié pour phpmyadmin :

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

Ici, phpmyadmin est le nouvel utilisateur pour accéder au tableau de bord phpmyadmin. Le mot de passe pour phpmyadminuser est Password123#@ ! . Remplacez ces valeurs par les vôtres.

Donnez ensuite les privilèges appropriés au 'phpmyadminuser' en utilisant la commande :

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

Quittez enfin le shell mysql :

mysql> exit

Nous avons maintenant créé un utilisateur dédié pour gérer les bases de données via l'interface web phpmyadmin. Allons-y et accédons au tableau de bord phpmyadmin.

Ouvrez le navigateur Web et accédez à "http://IP-Address/phpayadmin. Entrez l'utilisateur de la base de données nouvellement créé et son mot de passe. Félicitations ! Vous êtes connecté avec un utilisateur dédié au tableau de bord Web phpMyAdmin.

Sécuriser phpMyAdmin

Cette section fournit quelques conseils pour sécuriser l'installation de PhpMyAdmin. Veuillez noter que les étapes suivantes ne suffisent pas à elles seules à protéger phpMyAdmin à 100 %. Cependant, ils ralentiront au moins toute tentative d'un auteur de pénétrer dans votre tableau de bord phpmyadmin.

Désactiver la connexion racine MySQL au tableau de bord phpmyadmin

Autoriser l'utilisateur root mysql à accéder au tableau de bord phpMyAdmin n'est pas sûr, en particulier lors de la gestion de bases de données sur le réseau. C'est pourquoi nous avons créé un utilisateur dédié dans la section précédente. Puisque nous avons déjà un utilisateur dédié, nous pouvons désactiver en toute sécurité la connexion mysql root pour accéder au tableau de bord phpmyadmin afin de minimiser les attaques.

Généralement, phpmyadmin est installé sous /usr/share/phpmyadmin/ répertoire et ses fichiers de configuration sont stockés dans /etc/phpmyadmin répertoire.

Modifier le fichier de configuration phpmyadmin :

$ sudo nano /etc/phpmyadmin/config.inc.php

Ajoutez/modifiez les paramètres suivants :

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

Enregistrez et fermez le fichier.

Redémarrez le serveur Web Nginx à l'aide de la commande :

$ sudo systemctl restart nginx

Essayez maintenant de vous connecter à phpmyadmin en tant qu'utilisateur root. Vous obtiendrez le message Accès refusé message d'erreur :

Modifier l'URL de l'interface Web de phpmyadmin

C'est la tactique la plus courante suivie par les bots pour accéder à phpmyadmin. Vous pouvez empêcher cela en changeant l'URL en quelque chose de difficile à deviner. La modification de l'URL phpmyadmin évitera aux bots ou aux scripts automatisés d'effectuer des analyses d'URL et des attaques par force brute.

Rappelez-vous que nous avons créé un lien symbolique appelé "phpmyadmin" sous le répertoire racine de Nginx ?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

Ici, phpmyadmin est le lien symbolique qui pointe vers le répertoire /usr/share/phpmyadmin.

Nous allons changer le nom du lien symbolique en utilisant la commande :

$ sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

Assurez-vous que le nom contient des caractères aléatoires et qu'il est très difficile à deviner.

À partir de maintenant, chaque fois que quelqu'un essaiera d'accéder à la page phpmyadmin en naviguant vers l'URL http://IP-Address/phpmyadmin, il recevra le message d'erreur suivant :

Parce que nous avons changé l'URL. La nouvelle URL de phpmyadmin est http://IP-Address/ostechnix.

Protéger la page de connexion phpMyAdmin par mot de passe

Nous pouvons ajouter une couche de sécurité supplémentaire en limitant l'accès à la page de connexion phpmyadmin avec la méthode d'authentification HTTP de base. Ce qui signifie - nous activons la protection par mot de passe pour la page de connexion phpmyadmin, de sorte que les utilisateurs devront entrer un nom d'utilisateur/mot de passe supplémentaire avant d'accéder à la page de connexion réelle de phpMyAdmin.

Tout d'abord, nous devons générer un fichier de mot de passe en utilisant htpasswd utilitaire. L'utilitaire htpasswd fait partie des apache2-utils emballer. Alors installons-le à l'aide de la commande :

$ sudo apt install apache2-utils

Maintenant, créez un fichier de mot de passe chiffré avec la commande :

$ sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

Remplacez "ostechnix" par un nom d'utilisateur de votre choix. Entrez un mot de passe fort deux fois pour générer le fichier de mots de passe.

Pour afficher le contenu du fichier nouvellement généré, utilisez la commande "cat" comme ci-dessous :

$ cat /etc/nginx/.htpasswd

Vous verrez une sortie comme ci-dessous :

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

Ensuite, nous devons mentionner le chemin du fichier de mot de passe ci-dessus dans notre fichier de configuration par défaut Nginx. Si vous avez suivi notre tutoriel d'installation LEMP joint ci-dessus, la configuration par défaut de Nginx devrait être /etc/nginx/sites-available/default .

Modifiez le fichier de configuration Nginx par défaut :

$ sudo nano /etc/nginx/sites-available/default

Ajoutez les lignes suivantes, sous "location" bloquer :

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

Rappelez-vous que nous avons changé l'URL de phpMyAdmin (http://IP-Address/ostechnix) à l'étape précédente ? C'est pourquoi j'ai mentionné le nom du bloc comme "ostechnix" dans le bloc ci-dessus. Remplacez-le par le vôtre. Enregistrez et fermez le fichier.

Vérifiez le fichier de configuration Nginx pour toute erreur de syntaxe à l'aide de la commande :

$ sudo nginx -t

Exemple de résultat :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si vous ne voyez aucune erreur, redémarrez le service nginx pour que les modifications prennent effet.

$ sudo systemctl restart nginx

Essayez maintenant d'accéder à votre URL phpMyAdmin depuis votre navigateur. Vous serez invité à saisir un nom d'utilisateur et un mot de passe :

Entrez le nom d'utilisateur et le mot de passe corrects qui seront créés précédemment à l'aide de l'utilitaire "htpasword". Vous allez maintenant être redirigé vers la page de connexion réelle de phpMyAdmin, où vous pouvez entrer l'utilisateur de la base de données et son mot de passe pour vous connecter au tableau de bord Web de phpMyAdmin.


Ubuntu
  1. Comment installer Nginx avec PHP et MySQL (pile LEMP) sur Ubuntu 20.04 LTS

  2. Installer WordPress avec LEMP Stack sur Ubuntu 20.04

  3. Installez phpMyAdmin sur Ubuntu 14.10

  4. Comment installer la pile LEMP sur Ubuntu 16.04

  5. Installez phpMyAdmin avec LAMP Stack sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Apache sur Ubuntu 22.04 LTS

Comment installer le dernier phpMyAdmin avec LEMP sur Ubuntu 20.04

Comment installer phpMyAdmin sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS

Comment installer la pile LEMP avec PhpMyAdmin dans Ubuntu 20.04