Comment installer et sécuriser phpMyAdmin avec Apache sur CentOS 7

phpMyAdmin est un outil open source basé sur PHP pour gérer les serveurs MySQL et MariaDB sur une interface Web.

phpMyAdmin vous permet d’interagir avec les bases de données MySQL, de gérer les comptes et privilèges des utilisateurs, d’exécuter des instructions SQL, d’importer et d’exporter des données dans une variété de formats de données et bien plus encore.

Dans ce tutoriel, nous allons parcourir les étapes nécessaires pour installer et sécuriser phpMyAdmin avec Apache sur CentOS 7.

Conditions préalables #

Assurez-vous d’avoir satisfait aux conditions préalables suivantes avant de poursuivre ce didacticiel:

  • LAMP (Linux, Apache, MySQL et PHP) installé sur votre serveur CentOS.
  • Connecté en tant qu’utilisateur avec des privilèges sudo.

Bien que cela ne soit pas nécessaire, il est conseillé d’accéder à votre installation phpMyAdmin via HTTPS. Si vous ne disposez pas de SSL sur vos sites, suivez les instructions pour sécuriser votre Apache avec Let’s Encrypt sur CentOS 7.

Installation de phpMyAdmin #

Pour installer phpMyAdmin sur un système CentOS 7, procédez comme suit:

  1. phpMyAdmin n’est pas disponible dans les référentiels centros 7. Pour installer phpMyAdmin, nous devons d’abord activer le référentiel EPEL:

    sudo yum install epel-release
  2. Une fois le référentiel EPEL activé, nous pouvons installer phpMyAdmin et toutes ses dépendances avec la commande suivante:

    sudo yum install phpmyadmin

Configuration et sécurisation de phpMyAdmin #

Le fichier de configuration Apache pour phpMyAdmin est créé automatiquement lors de l’installation. Par défaut, toutes les connexions, à l’exception de celles de localhost, sont refusées. Comme nous allons accéder à phpMyAdmin à partir d’emplacements distants, nous devons modifier le fichier de configuration et spécifier les adresses IP autorisées.

Ouvrez le fichier de configuration phpMyAdmin Apache:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

Changez les deux lignes qui lisentRequire ip 127.0.0.1avec l’adresse IP de votre connexion à domicile. Si vous ne connaissez pas votre adresse IP personnelle, ouvrez la recherche Google dans votre navigateur Web et saisissezwhat is my ip.

/etc/httpd/conf.d/phpMyAdmin.conf
# Apache 2.4
<RequireAny>
    Require ip 192.168.42.57
    Require ip ::1
</RequireAny>

Fermez et enregistrez le fichier.

Si vous voulez pouvoir accéder à votre installation phpMyAdmin depuis n’importe quel emplacement, ajoutezRequire all grantedavant leRequire ipligne.

Pour une couche de sécurité supplémentaire, nous protégerons par mot de passe le répertoire phpMyAdmin en configurant une authentification de base.

Commencez par créer un nouveau fichier d’authentification à l’aide duhtpasswdoutil. Nous stockerons le.htpasswddéposer dans/etc/phpMyAdminannuaire:

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

Dans cet exemple, nous créons un utilisateur nomméadmin. Vous pouvez choisir n’importe quel nom d’utilisateur que vous souhaitez.

La commande ci-dessus vous demandera d’entrer et de confirmer le mot de passe de l’utilisateur.

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

Plus tard, si vous devez ajouter des utilisateurs supplémentaires, utilisez la même commande sans le-cdrapeau:

sudo htpasswd /etc/phpMyAdmin/.htpasswd admin2

L’étape suivante consiste à configurer Apache pour protéger par mot de passe le répertoire phpMyAdmin et utiliser le.htpasswdfichier. Pour ce faire, ouvrez lephpMyAdmin.conffichier qui a été créé automatiquement lors de l’installation de phpMyAdmin:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

Et insérez les lignes suivantes surlignées en jaune:

/etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
    AddDefaultCharset UTF-8

    Options  +FollowSymLinks +Multiviews +Indexes
    AllowOverride None
    AuthType basic
    AuthName "Authentication Required"
    AuthUserFile /etc/phpMyAdmin/.htpasswd
    Require valid-user

   <IfModule mod_authz_core.c>
   ...

Enregistrez le fichier et redémarrez le service Apache pour que les modifications prennent effet:

sudo systemctl restart httpd
C’est également une bonne idée de/phpmyadminalias à quelque chose de plus unique et sécurisé.

Lorsque vous accédez à votre phpMyAdmin, vous serez invité à saisir les informations de connexion de l’utilisateur que vous avez créé précédemment:

https://your_domain_or_ip_address/phpmyadmin

Après avoir entré l’authentification de base, vous serez redirigé vers la page de connexion phpMyAdmin où vous devrez saisir vos informations de connexion d’utilisateur administratif MySQL.

Accès à phpMyAdmin #

Pour accéder à l’interface phpMyAdmin, ouvrez votre navigateur préféré et tapez le nom de domaine ou l’adresse IP publique de votre serveur suivi de/phpmyadmin:

https://your_domain_or_ip_address/phpmyadmin

Saisissez les informations de connexion de l’utilisateur administratif que vous avez créées précédemment et cliquez surGo