GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer et sécuriser phpMyAdmin sur CentOS 8

phpMyAdmin est un outil logiciel open source utilisé pour gérer les bases de données MySQL/MariaDB. Il fournit un moyen simple d'interagir avec MySQL via un navigateur Web. phpMyAdmin est très utile pour les utilisateurs qui ne sont pas à l'aise avec l'administration de leurs données depuis la ligne de commande, il est donc essentiel pour tout administrateur système de sécuriser phpMyAdmin contre différents types d'attaques.

Dans ce tutoriel, nous allons vous montrer comment installer et sécuriser phpMyAdmin sur CentOS 8.

Prérequis

  • Un nouveau VPS CentOS 8 sur la plate-forme cloud d'Atlantic.net.
  • Un mot de passe root configuré sur votre serveur.

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant CentOS 8 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur CentOS 8, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

dnf update -y

Étape 2 – Installer Apache, MariaDB et PHP

Avant de commencer, installez Apache, MariaDB, PHP et les autres extensions PHP requises avec la commande suivante :

dnf install httpd mariadb-server php php-cli php-json php-mbstring php-pdo php-pecl-zip php-mysqlnd -y

Après avoir installé tous les packages, vous pouvez passer à l'étape suivante.

Étape 3 - Définir le mot de passe racine MariaDB

Tout d'abord, démarrez le service MariaDB et activez-le au démarrage avec la commande suivante :

systemctl start mariadb
systemctl enable mariadb

Ensuite, définissez le mot de passe root MySQL à l'aide du script suivant :

mysql_secure_installation

Ce script définira le mot de passe root MySQL, supprimera les utilisateurs anonymes, interdira la connexion root à distance et supprimera la base de données de test et l'accès à celle-ci, comme indiqué ci-dessous :

Entrez le mot de passe actuel pour root (entrez pour aucun):

Set root password? [Y/n] Y
New password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Étape 4 - Installer phpMyAdmin

Tout d'abord, téléchargez la dernière version de phpMyAdmin dans le répertoire racine Web d'Apache à l'aide de la commande suivante :

cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip

Une fois téléchargé, décompressez le fichier téléchargé avec la commande suivante :

unzip phpMyAdmin-4.9.4-all-languages.zip

Ensuite, renommez le répertoire extrait en phpmyadmin comme indiqué ci-dessous :

mv phpMyAdmin-4.9.4-all-languages phpmyadmin

Ensuite, changez la propriété du répertoire phpmyadmin en utilisateur apache :

chown -R apache:apache /var/www/html/phpmyadmin

Ensuite, renommez le fichier config.sample.inc.php :

cd /var/www/html/phpmyadmin
mv config.sample.inc.php config.inc.php

Ensuite, éditez le fichier et définissez votre mot de passe sécurisé :

nano config.inc.php

Trouvez la ligne ci-dessous et mettez-la à jour avec votre mot de passe sécurisé, comme indiqué ci-dessous :

$cfg['blowfish_secret'] = 'your-secure-password';

Enregistrez et fermez le fichier. Ensuite, importez les tables pour phpMyAdmin avec la commande suivante :

mysql < sql/create_tables.sql -u root -p

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Étape 5 - Configurer Apache pour phpMyAdmin

Créez ensuite un fichier de configuration d'hôte virtuel Apache pour phpMyAdmin :

nano /etc/httpd/conf.d/phpmyadmin.conf

Ajoutez les lignes suivantes :

Alias /phpmyadmin /var/www/html/phpmyadmin

<Directory /var/www/html/phpmyadmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
      Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /var/www/html/phpmyadmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
     </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>

</Directory>

Enregistrez et fermez le fichier. Ensuite, démarrez le service Apache et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :

systemctl start httpd
systemctl enable httpd

Maintenant, ouvrez votre navigateur Web et visitez l'URL http://your-server-ip/phpmyadmin. Vous devriez voir l'interface Web de phpMyAdmin dans l'écran suivant :

Connectez-vous avec vos informations d'identification MySQL créées précédemment.

Étape 6 - Sécuriser phpMyAdmin

Dans cette section, nous vous montrerons différentes manières de sécuriser votre interface web phpMyAdmin.

Modifier l'emplacement d'accès à phpMyAdmin

C'est une bonne idée de changer l'URL d'accès de votre interface phpMyAdmin. Vous pouvez le changer en éditant le fichier phpmyadmin.conf :

nano /etc/httpd/conf.d/phpmyadmin.conf

Recherchez la ligne suivante :

Alias /phpmyadmin /var/www/html/phpmyadmin

Remplacez-le par la ligne suivante :

Alias /securelocation /var/www/html/phpmyadmin

Enregistrez et fermez le fichier, puis redémarrez le service Apache pour appliquer les modifications :

systemctl restart httpd

Vous pouvez maintenant accéder à l'interface phpMyAdmin en utilisant l'URL http://your-server-ip/securelocation.

Autoriser phpMyAdmin à partir d'une IP spécifique

C'est toujours une bonne idée de n'autoriser l'accès à phpMyAdmin qu'à partir d'une adresse IP spécifique.

Pour cela, ouvrez le fichier phpmyadmin.conf :

nano /etc/httpd/conf.d/phpmyadmin.conf

Recherchez les lignes suivantes :

     <RequireAny>
       Require all granted
     </RequireAny>

Remplacez-le par ce qui suit :

<RequireAny>
    Require ip your-client-ip-address
    Require ip ::1
</RequireAny>

Enregistrez et fermez le fichier, puis redémarrez le service Apache pour appliquer les modifications :

systemctl restart httpd

Votre interface phpMyAdmin n'est désormais accessible qu'à partir d'une adresse IP spécifiée.

Protection par mot de passe de l'interface phpMyAdmin

Vous pouvez également ajouter une couche supplémentaire de protection par mot de passe sur phpMyAdmin en configurant une authentification de base.

Commencez par créer un fichier d'authentification à l'aide de la commande suivante :

htpasswd -c /etc/httpd/.htpasswd phpadmin

Fournissez un mot de passe sécurisé comme indiqué ci-dessous :

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

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

nano /var/www/html/phpmyadmin/.htaccess

Ajoutez les lignes suivantes :

AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, modifiez le fichier phpmyadmin.conf et configurez Apache pour utiliser le fichier .htpasswd.

nano /etc/httpd/conf.d/phpmyadmin.conf

Ajoutez les lignes suivantes sous la ligne "AddDefaultCharset UTF-8":

    AllowOverride All

Enregistrez le fichier, puis redémarrez le service Apache pour appliquer les modifications :

systemctl restart httpd

Étape 7 - Tester phpMyAdmin

À ce stade, l'interface phpMyAdmin est sécurisée avec une couche supplémentaire de protection par mot de passe. Pour le tester, ouvrez votre navigateur Web et tapez l'URL http://your-server-ip/securelocation. Il vous sera demandé de fournir les identifiants de connexion que nous avons créés précédemment :

Tapez votre nom d'utilisateur et votre mot de passe et cliquez sur OK bouton. Vous allez être redirigé vers la page de connexion de phpMyAdmin :

Indiquez votre nom d'utilisateur et votre mot de passe MySQL, puis cliquez sur Go bouton. Vous devriez voir votre interface Web phpMyAdmin dans l'écran suivant :

Conclusion

Dans le guide ci-dessus, nous avons appris comment installer et sécuriser phpMyAdmin sur CentOS 8. Votre interface phpMyAdmin est maintenant sécurisée avec une protection supplémentaire par mot de passe. Vous pouvez utiliser cette méthode pour sécuriser un serveur dans le cadre d'un plan d'hébergement VPS Atlantic.Net.

En savoir plus sur nos services d'hébergement VPS et nos serveurs privés virtuels.


Linux
  1. Comment installer et sécuriser phpMyAdmin sur Debian 9

  2. Comment installer et sécuriser phpMyAdmin sur Ubuntu

  3. Comment installer phpMyAdmin sur CentOS 7

  4. Comment installer phpMyAdmin sur CentOS 8

  5. Comment installer et sécuriser MongoDB 4 dans CentOS 8

Comment installer OrangeHRM sur CentOS 7

Comment installer phpMyAdmin sur CentOS 6

Comment installer phpMyAdmin sur CentOS 8

Comment installer et configurer GlusterFS sur CentOS 7/CentOS 8

Comment installer et sécuriser phpMyAdmin dans Ubuntu 14.04

Comment installer phpMyAdmin sur CentOS 7 ?