Comment installer et sécuriser phpMyAdmin avec Nginx sur un serveur Ubuntu 18.04

introduction

Alors que de nombreux utilisateurs ont besoin des fonctionnalités d’un système de base de données tel que MySQL, l’interaction avec le système uniquement à partir du client en ligne de commande MySQL requiert une bonne connaissance du langage SQL. Il est donc possible que ce ne soit pas l’interface privilégiée pour certains.

phpMyAdmin a été créé pour que les utilisateurs puissent interagir avec MySQL via une interface Web intuitive, fonctionnant avec un environnement de développement PHP. Dans ce guide, nous expliquerons comment installer phpMyAdmin sur un serveur Nginx et comment le configurer pour une sécurité accrue.

[.note] #Note: Il y a des considérations de sécurité importantes lors de l'utilisation d'un logiciel comme phpMyAdmin, car il s'exécute sur le serveur de base de données, il traite les informations d'identification de la base de données et permet à un utilisateur d'exécuter facilement des requêtes SQL arbitraires dans votre base de données. Comme phpMyAdmin est une application PHP largement déployée, elle est fréquemment la cible d'attaques. Nous allons passer en revue certaines mesures de sécurité que vous pouvez prendre dans ce tutoriel afin que vous puissiez prendre des décisions éclairées.
#

Conditions préalables

Avant de commencer à utiliser ce guide, vous devez disposer des éléments suivants:

Etant donné que phpMyAdmin gère l'authentification à l'aide des informations d'identification MySQL, il est vivement conseillé d'installer un certificat SSL / TLS pour permettre le trafic chiffré entre le serveur et le client. Si vous n'avez pas de domaine existant configuré avec un certificat valide, vous pouvez suivre ce guide sursecuring Nginx with Let’s Encrypt on Ubuntu 18.04.

[.warning] #Warning: Si vous n'avez pas de certificat SSL / TLS installé sur le serveur et que vous souhaitez continuer, veuillez envisager d'appliquer l'accès via les tunnels SSH comme expliqué à l'étape 5 de ce guide.
#

Une fois ces conditions préalables remplies, vous pouvez poursuivre avec le reste du guide.

[[step-1 -—- Installing-phpmyadmin]] == Étape 1 - Installation de phpMyAdmin

La première chose à faire est d’installer phpMyAdmin sur le serveur LEMP. Nous allons utiliser les référentiels Ubuntu par défaut pour atteindre cet objectif.

Commençons par mettre à jour l’index des paquets du serveur avec:

sudo apt update

Maintenant, vous pouvez installer phpMyAdmin avec:

sudo apt install phpmyadmin

Pendant le processus d'installation, vous serez invité à choisir le serveur Web (soitApache, soitLighthttp) à configurer. Parce que nous utilisons Nginx comme serveur Web, nous ne devrions pas choisir ici. Appuyez surtab puis surOK pour passer à l'étape suivante.

Ensuite, vous serez invité à utiliserdbconfig-common pour configurer la base de données d'application. SélectionnezYes. Ceci configurera la base de données interne et l'utilisateur administratif pour phpMyAdmin. Il vous sera demandé de définir un nouveau mot de passe pour l'utilisateur MySQL dephpmyadmin. Vous pouvez également laisser ce champ vide et laisser phpMyAdmin créer un mot de passe de manière aléatoire.

L'installation va maintenant se terminer. Pour que le serveur Web Nginx trouve et serve correctement les fichiers phpMyAdmin, nous devons créer un lien symbolique à partir des fichiers d’installation dans le répertoire racine du document de Nginx:

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

Votre installation de phpMyAdmin est maintenant opérationnelle. Pour accéder à l'interface, accédez au nom de domaine ou à l'adresse IP publique de votre serveur, suivi de/phpmyadmin dans votre navigateur Web:

https://server_domain_or_IP/phpmyadmin

phpMyAdmin login screen

Comme mentionné précédemment, phpMyAdmin gère l'authentification à l'aide des informations d'identification MySQL, ce qui signifie que vous devez utiliser le même nom d'utilisateur et le même mot de passe que ceux que vous utiliseriez normalement pour vous connecter à la base de données via la console ou via une API. Si vous avez besoin d'aide pour créer des utilisateurs MySQL, consultez ce guide surHow To Manage an SQL Database.

Note: La connexion à phpMyAdmin en tant qu'utilisateur MySQL deroot est déconseillée car elle représente un risque de sécurité important. Nous verrons comment désactiverroot login dans une étape ultérieure de ce guide.

Votre installation de phpMyAdmin devrait être complètement fonctionnelle à ce stade. Cependant, en installant une interface Web, nous avons exposé notre serveur de base de données MySQL au monde extérieur. En raison de la popularité de phpMyAdmin et des grandes quantités de données auxquelles il peut donner accès, de telles installations sont des cibles courantes des attaques. Dans les sections suivantes de ce guide, nous verrons différentes manières de rendre notre installation phpMyAdmin plus sécurisée.

[[step-2 -—- Changing-phpmyadmin-39-s-default-location]] == Étape 2 - Modification de l'emplacement par défaut de phpMyAdmin

L'un des moyens les plus élémentaires de protéger votre installation de phpMyAdmin est de le rendre plus difficile à trouver. Les robots rechercheront des chemins communs, tels quephpmyadmin,pma,admin,mysql et autres. Changer l'URL de l'interface de/phpmyadmin à quelque chose de non standard rendra beaucoup plus difficile pour les scripts automatisés de trouver votre installation phpMyAdmin et de tenter des attaques par force brute.

Avec notre installation phpMyAdmin, nous avons créé un lien symbolique pointant vers/usr/share/phpmyadmin, où se trouvent les fichiers d'application réels. Pour changer l’URL de l’interface de phpMyAdmin, nous renommerons ce lien symbolique.

Commençons par naviguer dans le répertoire racine du document Nginx et répertorions les fichiers qu’il contient pour avoir une meilleure idée du changement que nous allons effectuer:

cd /var/www/html/
ls -l

Vous recevrez le résultat suivant:

Outputtotal 8
-rw-r--r-- 1 root root 612 Apr  8 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root  21 Apr  8 15:36 phpmyadmin -> /usr/share/phpmyadmin

La sortie montre que nous avons un lien symbolique appeléphpmyadmin dans ce répertoire. Nous pouvons changer ce nom de lien en ce que nous voudrions. Cela changera à son tour l'URL d'accès phpMyAdmin, ce qui peut aider à masquer le point de terminaison des bots codés en dur pour rechercher des noms de points de terminaison courants.

Choisissez un nom qui masque l'objectif du noeud final. Dans ce guide, nous nommerons notre point de terminaison/nothingtosee, mais vousshould choose an alternate name. Pour ce faire, nous renommerons le lien:

sudo mv phpmyadmin nothingtosee
ls -l

Après avoir exécuté les commandes ci-dessus, vous recevrez cette sortie:

Outputtotal 8
-rw-r--r-- 1 root root 612 Apr  8 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root  21 Apr  8 15:36 nothingtosee -> /usr/share/phpmyadmin

Maintenant, si vous allez à l’ancienne URL, vous obtiendrez une erreur 404:

https://server_domain_or_IP/phpmyadmin

phpMyAdmin 404 error

Votre interface phpMyAdmin sera maintenant disponible à la nouvelle URL que nous venons de configurer:

https://server_domain_or_IP/nothingtosee

phpMyAdmin login screen

En masquant l’emplacement réel de phpMyAdmin sur le serveur, vous protégez son interface contre les analyses automatisées et les tentatives manuelles de force brute.

[[step-3 -—- disabling-root-login]] == Étape 3 - Désactivation de la connexion root

Sur MySQL ainsi que dans les systèmes Linux classiques, le compteroot est un compte administratif spécial avec un accès illimité au système. En plus d’être un compte privilégié, il s’agit d’un nom de connexion connu, ce qui en fait une cible évidente des attaques par force brute. Pour minimiser les risques, nous allons configurer phpMyAdmin pour refuser toute tentative de connexion provenant de l'utilisateurroot. De cette façon, même si vous fournissez des informations d'identification valides pour l'utilisateurroot, vous obtiendrez toujours une erreur "Accès refusé" et vous ne serez pas autorisé à vous connecter.

Étant donné que nous avons choisi d'utiliserdbconfig-common pour configurer et stocker les paramètres de phpMyAdmin, la configuration par défaut est actuellement stockée dans la base de données. Nous devrons créer un nouveau fichierconfig.inc.php pour définir nos paramètres personnalisés.

Même si les fichiers PHP pour phpMyAdmin sont situés à l'intérieur de/usr/share/phpmyadmin, l'application utilise des fichiers de configuration situés à/etc/phpmyadmin. Nous allons créer un nouveau fichier de paramètres personnalisés dans/etc/phpmyadmin/conf.d, et le nommerpma_secure.php:

sudo nano /etc/phpmyadmin/conf.d/pma_secure.php

Le fichier de configuration suivant contient les paramètres nécessaires pour désactiver les connexions sans mot de passe (AllowNoPassword défini surfalse) et la connexion racine (AllowRoot défini surfalse):

/etc/phpmyadmin/conf.d/pma_secure.php

Enregistrez le fichier lorsque vous avez terminé l’édition en appuyant surCTRL +X puis sury pour confirmer les modifications et surENTER. Les modifications s'appliqueront automatiquement. Si vous rechargez la page de connexion maintenant et essayez de vous connecter en tant que root, vous obtiendrez une erreurAccess Denied:

access denied

La connexion racine est maintenant interdite sur votre installation de phpMyAdmin. Cette mesure de sécurité empêchera les scripts de force brute d'essayer de deviner le mot de passe de la base de donnéesroot sur votre serveur. De plus, il imposera l’utilisation de comptes MySQL moins privilégiés pour accéder à l’interface Web de phpMyAdmin, ce qui en soi est une pratique de sécurité importante.

[[step-4 -—- creating-an-authentication-gateway]] == Étape 4 - Création d'une passerelle d'authentification

Cacher votre installation de phpMyAdmin à un emplacement inhabituel peut éviter certains robots automatisés analysant le réseau, mais il est inutile contre les attaques ciblées. Pour mieux protéger une application Web à accès restreint, il est généralement plus efficace d’arrêter les attaquants avant même qu’ils n’atteignent l’application. Ainsi, ils ne pourront pas utiliser les exploits génériques ni les attaques par force brute pour deviner les informations d’accès.

Dans le cas spécifique de phpMyAdmin, il est encore plus important de garder l’interface de connexion verrouillée. En restant ouvert au monde, vous offrez une plate-forme de force brute permettant aux attaquants de deviner vos informations d'identification de base de données.

Ajouter une couche supplémentaire d'authentification à votre installation phpMyAdmin vous permet d'accroître la sécurité. Les utilisateurs devront passer par une invite d'authentification HTTP avant de voir l'écran de connexion phpMyAdmin. La plupart des serveurs Web, y compris Nginx, fournissent cette fonctionnalité de manière native.

Pour le configurer, nous devons d’abord créer un fichier de mots de passe pour stocker les informations d’authentification. Nginx exige que les mots de passe soient chiffrés à l'aide de la fonctioncrypt(). La suite OpenSSL, qui devrait déjà être installée sur votre serveur, inclut cette fonctionnalité.

Pour créer un mot de passe crypté, tapez:

openssl passwd

Vous serez invité à entrer et à confirmer le mot de passe que vous souhaitez utiliser. L'utilitaire affichera ensuite une version chiffrée du mot de passe qui ressemblera à ceci:

OutputO5az.RSPzd.HE

Copiez cette valeur, car vous devrez la coller dans le fichier d’authentification que nous allons créer.

Maintenant, créez un fichier d'authentification. Nous appellerons ce fichierpma_pass et le placerons dans le répertoire de configuration de Nginx:

sudo nano /etc/nginx/pma_pass

Dans ce fichier, vous spécifiez le nom d’utilisateur que vous souhaitez utiliser, suivi de deux points (:), suivi de la version chiffrée du mot de passe que vous avez reçu de l’utilitaireopenssl passwd.

Nous allons nommer notre utilisateursammy, mais vous devriez choisir un autre nom d'utilisateur. Le fichier devrait ressembler à ceci:

/etc/nginx/pma_pass

sammy:O5az.RSPzd.HE

Enregistrez et fermez le fichier lorsque vous avez terminé.

Nous sommes maintenant prêts à modifier le fichier de configuration Nginx. Pour ce guide, nous utiliserons le fichier de configuration situé à/etc/nginx/sites-available/example.com. Vous devez utiliser le fichier de configuration Nginx approprié pour l'emplacement Web où phpMyAdmin est actuellement hébergé. Ouvrez ce fichier dans votre éditeur de texte pour commencer:

sudo nano /etc/nginx/sites-available/example.com

Localisez le blocserver et la sectionlocation / qu'il contient. Nous devons créer une sectionnewlocation dans ce bloc pour correspondre au chemin actuel de phpMyAdmin sur le serveur. Dans ce guide, l'emplacement de phpMyAdmin par rapport à la racine Web est/nothingtosee:

/etc/nginx/sites-available/default

server {
    . . .

        location / {
                try_files $uri $uri/ =404;
        }

        location /nothingtosee {
                # Settings for phpMyAdmin will go here
        }

    . . .
}

Dans ce bloc, nous devrons configurer deux directives différentes:auth_basic, qui définit le message qui sera affiché sur l'invite d'authentification, etauth_basic_user_file, pointant vers le fichier que nous venons de créer. Voici à quoi devrait ressembler votre fichier de configuration lorsque vous aurez terminé:

/etc/nginx/sites-available/default

server {
    . . .

        location /nothingtosee {
                auth_basic "Admin Login";
                auth_basic_user_file /etc/nginx/pma_pass;
        }


    . . .
}

Enregistrez et fermez le fichier lorsque vous avez terminé. Pour vérifier si le fichier de configuration est valide, vous pouvez exécuter:

sudo nginx -t

La sortie suivante est attendue:

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

Pour activer le nouveau portail d’authentification, vous devez recharger le serveur Web:

sudo systemctl reload nginx

Maintenant, si vous visitez l'URL phpMyAdmin dans votre navigateur Web, vous devriez être invité à entrer le nom d'utilisateur et le mot de passe que vous avez ajoutés au fichierpma_pass:

https://server_domain_or_IP/nothingtosee

Nginx authentication page

Une fois que vous avez entré vos identifiants, vous serez dirigé vers la page de connexion standard de phpMyAdmin.

Note: Si l’actualisation de la page ne fonctionne pas, vous devrez peut-être vider votre cache ou utiliser une session de navigateur différente si vous avez déjà utilisé phpMyAdmin.

En plus de fournir une couche de sécurité supplémentaire, cette passerelle aidera à garder vos journaux MySQL à l’abri des tentatives d’authentification spammeuses.

[[step-5 -—- setting-up-access-via-encrypted-tunnels-optional]] == Étape 5 - Configuration de l'accès via des tunnels cryptés (en option)

Pour plus de sécurité, il est possible de verrouiller votre installation phpMyAdmin sur des hôtes autorisés uniquement. Vous pouvezwhitelist hôtes autorisés dans votre fichier de configuration Nginx, de sorte que toute demande provenant d'une adresse IP qui ne figure pas dans la liste sera refusée.

Même si cette fonctionnalité seule peut suffire dans certains cas d'utilisation, ce n'est pas toujours la meilleure solution à long terme, principalement en raison du fait que la plupart des gens n'accèdent pas à Internet à partir d'adresses IP statiques. Dès que vous obtenez une nouvelle adresse IP auprès de votre fournisseur Internet, vous ne pourrez plus accéder à l'interface phpMyAdmin tant que vous n'aurez pas mis à jour le fichier de configuration de Nginx avec votre nouvelle adresse IP.

Pour une solution à long terme plus robuste, vous pouvez utiliser le contrôle d'accès basé sur IP pour créer une configuration dans laquelle les utilisateurs n'auront accès à votre interface phpMyAdmin que s'ils accèdent depuis unauthorized IP address oulocalhost via SSH tunneling. Nous verrons comment le configurer dans les sections ci-dessous.

La combinaison du contrôle d'accès basé sur IP avec le tunneling SSH augmente considérablement la sécurité, car elle bloque totalement les accès provenant d'Internet public (à l'exception des IP autorisées), en plus de fournir un canal sécurisé entre l'utilisateur et le serveur grâce à l'utilisation de tunnels chiffrés.

Configuration du contrôle d'accès basé sur IP sur Nginx

Sur Nginx, le contrôle d'accès basé sur IP peut être défini dans le bloclocation correspondant d'un site donné, en utilisant les directivesallow etdeny. Par exemple, si nous voulons n'autoriser que les requêtes provenant d'un hôte donné, nous devons inclure les deux lignes suivantes, dans cet ordre, à l'intérieur du bloclocation correspondant au site que nous souhaitons protéger:

allow hostname_or_IP;
deny all;

Vous pouvez autoriser autant d’hôtes que vous le souhaitez, il vous suffit d’inclure une ligneallow pour chaque hôte / IP autorisé dans le bloclocation correspondant au site que vous protégez. Les directives seront évaluées dans le même ordre que dans la liste, jusqu'à ce qu'une correspondance soit trouvée ou que la demande soit finalement refusée en raison de la directivedeny all.

Nous allons maintenant configurer Nginx pour n’autoriser que les requêtes provenant de localhost ou de votre adresse IP actuelle. Tout d’abord, vous devez connaître l’adresse IP publique actuelle que votre ordinateur local utilise pour se connecter à Internet. Il existe différentes manières d'obtenir ces informations; pour plus de simplicité, nous allons utiliser le service fourni paripinfo.io. Vous pouvez soit ouvrir l'URLhttps://ipinfo.io/ip dans votre navigateur, soit exécuter la commande suivante à partir de voslocal machine:

curl https://ipinfo.io/ip

Vous devriez obtenir une adresse IP simple en sortie, comme ceci:

Output203.0.113.111

C'est votre adresse IP actuelle depublic. Nous allons configurer le bloc d’emplacement de phpMyAdmin pour n’autoriser que les requêtes provenant de cette adresse IP, en plus de localhost. Nous devrons modifier à nouveau le bloc de configuration de phpMyAdmin dans/etc/nginx/sites-available/example.com.

Ouvrez le fichier de configuration Nginx à l’aide de l’éditeur de ligne de commande de votre choix:

sudo nano /etc/nginx/sites-available/example.com

Comme nous avons déjà une règle d'accès dans notre configuration actuelle, nous devons la combiner avec un contrôle d'accès basé sur IP à l'aide de la directivesatisfy all. De cette façon, nous pouvons conserver l'invite d'authentification HTTP actuelle pour une sécurité accrue.

Voici à quoi devrait ressembler votre configuration phpMyAdmin Nginx une fois l’édition terminée:

/etc/nginx/sites-available/example.com

server {
    . . .

    location /nothingtosee {
        satisfy all; #requires both conditions

        allow 203.0.113.111; #allow your IP
        allow 127.0.0.1; #allow localhost via SSH tunnels
        deny all; #deny all other sources

        auth_basic "Admin Login";
        auth_basic_user_file /etc/nginx/pma_pass;
    }

    . . .
}

N'oubliez pas de remplacernothingtosee par le chemin réel où phpMyAdmin peut être trouvé, et l'adresse IP en surbrillance par votre adresse IP publique actuelle.

Enregistrez et fermez le fichier lorsque vous avez terminé. Pour vérifier si le fichier de configuration est valide, vous pouvez exécuter:

sudo nginx -t

La sortie suivante est attendue:

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

Rechargez maintenant le serveur Web pour que les modifications prennent effet:

sudo systemctl reload nginx

Étant donné que votre adresse IP est explicitement répertoriée en tant qu’hôte autorisé, votre accès ne doit pas être perturbé. Toute personne essayant d'accéder à votre installation phpMyAdmin recevra maintenant une erreur 403 (interdite):

https://server_domain_or_IP/nothingtosee

403 error

Dans la section suivante, nous verrons comment utiliser le tunneling SSH pour accéder au serveur Web par le biais de requêtes locales. De cette façon, vous pourrez toujours accéder à l’interface de phpMyAdmin même lorsque votre adresse IP changera.

Accéder à phpMyAdmin via un tunnel crypté

Le tunneling SSH fonctionne comme un moyen de rediriger le trafic réseau via des canaux cryptés. En exécutant une commandessh similaire à celle que vous utiliseriez pour vous connecter à un serveur, vous pouvez créer un «tunnel» sécurisé entre votre machine locale et ce serveur. Tout le trafic entrant sur un port local donné peut désormais être redirigé via le tunnel crypté et utiliser le serveur distant en tant que proxy, avant de recourir à Internet. C'est similaire à ce qui se passe lorsque vous utilisez un VPN (Virtual Private Network), mais le tunnel SSH est beaucoup plus simple à configurer.

Nous allons utiliser le tunneling SSH pour envoyer par proxy nos demandes au serveur Web distant exécutant phpMyAdmin. En créant un tunnel entre votre machine locale et le serveur sur lequel phpMyAdmin est installé, vous pouvez rediriger les requêtes locales vers le serveur Web distant, et ce qui est plus important, le trafic sera chiffré et les requêtes atteindront Nginx comme si elles provenaient delocalhost. Ainsi, quelle que soit l'adresse IP à laquelle vous vous connectez, vous pourrez accéder en toute sécurité à l'interface de phpMyAdmin.

Le trafic entre votre ordinateur local et le serveur Web distant étant chiffré, il s'agit d'une alternative sûre dans les situations où vous ne pouvez pas installer de certificat SSL / TLS sur le serveur Web exécutant phpMyAdmin.

From your local machine, exécutez cette commande chaque fois que vous avez besoin d'accéder à phpMyAdmin:

ssh user@server_domain_or_IP -L 8000:localhost:80 -L 8443:localhost:443 -N

Examinons chaque partie de la commande:

  • user: utilisateur SSH pour se connecter au serveur sur lequel phpMyAdmin est exécuté

  • hostname_or_IP: hôte SSH sur lequel s'exécute phpMyAdmin

  • -L 8000:localhost:80 redirige le trafic HTTP sur le port 8000

  • -L 8443:localhost:443 redirige le trafic HTTPS sur le port 8443

  • -N: n'exécute pas de commandes à distance

[.note] #Note: Cette commande bloquera le terminal jusqu'à ce qu'elle soit interrompue par unCTRL+C, auquel cas elle mettra fin à la connexion SSH et arrêtera la redirection des paquets. Si vous préférez exécuter cette commande en arrière-plan, vous pouvez utiliser l'option SSH-f.
#

Maintenant, allez dans votre navigateur et remplacezserver_domain_or_IP parlocalhost:PORT, oùPORT est soit8000 pour HTTP ou8443 pour HTTPS:

http://localhost:8000/nothingtosee
https://localhost:443/nothingtosee

phpMyAdmin login screen

[.note] #Note: Si vous accédez à phpMyAdmin viahttps, vous pouvez recevoir un message d’alerte mettant en cause la sécurité du certificat SSL. Cela se produit parce que le nom de domaine que vous utilisez (localhost) ne correspond pas à l'adresse enregistrée dans le certificat (domaine où phpMyAdmin est en fait diffusé). Vous pouvez continuer en toute sécurité.
#

Toutes les requêtes surlocalhost:8000 (HTTP) etlocalhost:8443 (HTTPS) sont désormais redirigées via un tunnel sécurisé vers votre application phpMyAdmin distante. Non seulement vous avez renforcé la sécurité en désactivant l'accès public à votre phpMyAdmin, mais vous avez également protégé tout le trafic entre votre ordinateur local et le serveur distant en utilisant un tunnel crypté pour envoyer et recevoir des données.

Si vous souhaitez imposer l'utilisation du tunnel SSH à quiconque souhaite accéder à votre interface phpMyAdmin (vous y compris), vous pouvez le faire en supprimant toutes les autres adresses IP autorisées du fichier de configuration Nginx, en laissant127.0.0.1 comme seulement autorisé l'hôte à accéder à cet emplacement. Étant donné que personne ne sera en mesure de faire des demandes directes à phpMyAdmin, il est prudent de supprimer l'authentification HTTP afin de simplifier votre configuration. Voici à quoi ressemblerait votre fichier de configuration dans un tel scénario:

/etc/nginx/sites-available/example.com

server {
    . . .

    location /nothingtosee {
        allow 127.0.0.1; #allow localhost only
        deny all; #deny all other sources
    }

    . . .
}

Une fois que vous aurez rechargé la configuration de Nginx avecsudo systemctl reload nginx, votre installation phpMyAdmin sera verrouillée et les utilisateurs serontrequired à utiliser les tunnels SSH afin d'accéder à l'interface de phpMyAdmin via des requêtes redirigées.

Conclusion

Dans ce tutoriel, nous avons vu comment installer phpMyAdmin sur Ubuntu 18.04 exécutant Nginx en tant que serveur Web. Nous avons également abordé les méthodes avancées pour sécuriser une installation phpMyAdmin sur Ubuntu, telles que la désactivation de la connexion root, la création d'une couche supplémentaire d'authentification et l'utilisation du tunneling SSH pour accéder à une installation phpMyAdmin via des requêtes locales uniquement.

Après avoir terminé ce didacticiel, vous devriez être capable de gérer vos bases de données MySQL à partir d’une interface Web raisonnablement sécurisée. Cette interface utilisateur expose la plupart des fonctionnalités disponibles via la ligne de commande MySQL. Vous pouvez parcourir les bases de données et les schémas, exécuter des requêtes et créer de nouveaux ensembles de données et structures.