One place for hosting & domains

      phpMyAdmin

      Comment installer et sécuriser Secure phpMyAdmin sur Ubuntu 20.04


      Une version antérieure de ce tutoriel a été écrite par Brennan Bearnes.

      Introduction

      Si de nombreux utilisateurs ont besoin des fonctionnalités d’un système de gestion de base de données comme MySQL, ils peuvent ne pas se sentir à l’aise pour interagir avec le système uniquement à partir de l’invite MySQL.

      phpMyAdmin a été créé pour que les utilisateurs puissent interagir avec MySQL via une interface web. Dans ce guide, nous allons voir comment installer et sécuriser phpMyAdmin afin que vous puissiez l’utiliser en toute sécurité pour gérer vos bases de données sur un système Ubuntu 20.04.

      Conditions préalables

      Afin de compléter ce guide, il vous faudra :

      De plus, il y a des considérations de sécurité importantes lors de l’utilisation de logiciels comme phpMyAdmin, puisque celui-ci :

      • communique directement avec votre installation MySQL
      • gère l’authentification à l’aide des identifiants MySQL
      • exécute et renvoie des résultats pour des requêtes SQL arbitraires

      Pour ces raisons, et parce qu’il s’agit d’une application PHP largement déployée qui est fréquemment la cible d’attaques, vous ne devriez jamais exécuter phpMyAdmin sur des systèmes distants via une simple connexion HTTP.

      Si vous n’avez pas de domaine existant configuré avec un certificat SSL/TLS, vous pouvez suivre ce guide sur la sécurisation d’Apache avec Let’s Encrypt sur Ubuntu 20.04. Pour cela, vous devrez enregistrer un nom de domaine, créer des enregistrements DNS pour votre serveur et mettre en place un hôte virtuel Apache. 

      Étape 1 — Installer Django

      Vous pouvez utiliser APT pour installer phpMyAdmin à partir des dépôts Ubuntu par défaut.

      En tant qu’utilisateur non root sudo, mettez à jour l’index des paquets de votre serveur :

      Ensuite, vous pouvez installer le paquet phpmyadmin. Parallèlement à ce paquet, la documentation officielle recommande également d’installer quelques extensions PHP sur votre serveur afin d’activer certaines fonctionnalités et d’améliorer les performances.

      Si vous avez suivi le tutoriel préalable sur la pile LAMP, plusieurs de ces modules auront été installés en même temps que le paquet php.   Toutefois, il est recommandé d’installer également ces paquets :

      • php-mbstring : Un module pour gérer les chaînes non ASCII et convertir les chaînes en différents encodages
      • php-zip : Cette extension permet de télécharger des fichiers .zip vers phpMyAdmin
      • php-gd : Permet de prendre en charge la bibliothèque graphique GD
      • php-json : Fournit à PHP un support pour la sérialisation JSON
      • php-curl : Permet à PHP d’interagir avec différents types de serveurs utilisant différents protocoles

      Exécutez la commande suivante pour installer ces paquets sur votre système. Veuillez noter, cependant, que le processus d’installation nécessite que vous fassiez certains choix pour configurer correctement phpMyAdmin. Nous allons bientôt passer en revue ces options :

      • sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

      Voici les options que vous devez choisir lorsque vous y êtes invité afin de configurer correctement votre installation :

      • Pour la sélection du serveur, choisissez apache2

        Warning: Lorsque l’invite apparaît, « apache2 » est mis en évidence, mais n’est pas sélectionné. Si vous ne tapez pas sur SPACE pour sélectionner Apache, l’installateur ne déplacera* pas *les fichiers nécessaires pendant l’installation. Appuyez sur SPACE, TAB, puis ENTER pour sélectionner Apache.
      • Sélectionnez Yes quand il est demandé s’il faut utiliser dbconfig-common pour créer la base de données
      • Il vous sera ensuite demandé de choisir et de confirmer un mot de passe d’application MySQL pour phpMyAdmin

      Note : En supposant que vous ayez installé MySQL en suivant l’étape 2 du tutoriel préalable sur la pile LAMP, vous avez peut-être décidé d’activer le plugin Validate Password plugin. A partir de ce moment, l’activation de ce composant déclenchera une erreur lorsque vous tenterez de définir un mot de passe pour l’utilisateur phpmyadmin :

      Erreur de validation du mot de passe phpMyAdmin

      Pour résoudre ce problème, sélectionnez l’option d’annulation pour arrêter le processus d’installation. Ensuite, ouvrez votre prompt MySQL :

      Ou, si vous avez activé l’authentification par mot de passe pour l’utilisateur MySQL root, exécutez cette commande et entrez ensuite votre mot de passe lorsque vous y êtes invité :

      À l’invite, exécutez la commande suivante pour désactiver le composant Validate Password. Notez que cela ne le désinstallera pas réellement, mais empêchera simplement le composant d’être lancé sur votre serveur MySQL :

      • UNINSTALL COMPONENT "file://component_validate_password";

      Ensuite, vous pouvez fermer le client MySQL :

      Essayez ensuite d’installer le paquet phpmyadmin et il fonctionnera comme prévu :

      • sudo apt install phpmyadmin

      Une fois que phpMyAdmin est installé, vous pouvez ouvrir l’invite MySQL une nouvelle fois avec sudo mysql ou mysql -u root -p et ensuite exécuter la commande suivante pour réactiver le composant Validate Password : 

      • INSTALL COMPONENT "file://component_validate_password";

      Le processus d’installation ajoute le fichier de configuration Apache de phpMyAdmin dans le répertoire /etc/apache2/conf-enabled/, où il est lu automatiquement. Pour finir de configurer Apache et PHP afin qu’ils fonctionnent avec phpMyAdmin, la seule tâche qui reste à accomplir dans cette section du tutoriel est d’activer explicitement l’extension PHP mbstring, ce que vous pouvez faire en tapant :

      Ensuite, redémarrez Apache pour que vos modifications soient reconnues :

      • sudo systemctl restart apache2

      phpMyAdmin est maintenant installé et configuré pour fonctionner avec Apache. Toutefois, avant de pouvoir vous connecter et de commencer à interagir avec vos bases de données MySQL, vous devrez vous assurer que vos utilisateurs MySQL disposent des privilèges requis pour interagir avec le programme.

      Étape 2 – Ajustement de l’authentification et des privilèges des utilisateurs

      Lorsque vous avez installé phpMyAdmin sur votre serveur, il a automatiquement créé un utilisateur de base de données appelé phpmyadmin qui effectue certains processus sous-jacents pour le programme. Plutôt que de vous connecter en tant qu’utilisateur avec le mot de passe administratif que vous avez défini lors de l’installation, il est recommandé de vous connecter soit en tant que root user MySQL, soit en tant qu’dedicated user à la gestion des bases de données via l’interface phpMyAdmin.

      Configuration du mot de passe d’accès au compte root MySQL

      Dans les systèmes Ubuntu fonctionnant sous MySQL 5.7 (et versions ultérieures), l’utilisateur MySQL root est configuré pour s’authentifier en utilisant le plugin auth_socket par défaut plutôt qu’avec un mot de passe. Cela permet une plus grande sécurité et facilité d’utilisation dans de nombreux cas, mais cela peut également compliquer les choses lorsque vous devez autoriser un programme externe – comme phpMyAdmin – pour accéder à l’utilisateur.

      Afin de vous connecter à phpMyAdmin en tant qu’utilisateur MySQL root, vous devrez changer sa méthode d’authentification de auth_socket à une méthode qui utilise un mot de passe, si vous ne l’avez pas déjà fait. Pour ce faire, ouvrez l’invite MySQL depuis votre terminal :

      Ensuite, vérifiez la méthode d’authentification utilisée par chacun de vos comptes utilisateurs MySQL à l’aide de la commande suivante :

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

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Dans cet exemple, vous pouvez voir que l’utilisateur root s’authentifie effectivement en utilisant le plugin auth_socket. Pour configurer le compte root afin qu’il s’authentifie avec un mot de passe, exécutez la commande ALTER USER suivante.   Assurez-vous de changer password par un mot de passe fort de votre choix :

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Remarque : L’instruction ALTER USER précédente définit l’utilisateur MySQL root pour s’authentifier avec le plugin caching_sha2_password. Selon la documentation officielle de MySQL, caching_sha2_password est le plugin d’authentification préféré de MySQL, car il fournit un cryptage de mot de passe plus sûr que l’ancien, mais encore largement utilisé, mysql_native_password.

      Cependant, certaines versions de PHP ne fonctionnent pas de manière fiable avec caching_sha2_password. PHP a signalé que ce problème a été corrigé à partir de PHP 7.4, mais si vous rencontrez une erreur en essayant de vous connecter à phpMyAdmin plus tard, vous pourriez vouloir définir root pour vous authentifier avec mysql_native_password à la place :

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

      Ensuite, vérifiez à nouveau les méthodes d’authentification employées par chacun de vos utilisateurs pour confirmer que le root ne s’authentifie plus à l’aide du plugin auth_socket :

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

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Vous pouvez voir à partir de cette sortie que le root user s’authentifiera à l’aide d’un mot de passe. Vous pouvez maintenant vous connecter à l’interface phpMyAdmin en tant que root user avec le mot de passe que vous lui avez attribué ici.

      Configuration de l’accès par mot de passe pour un utilisateur MySQL dédié

      Alternativement, certains peuvent trouver qu’il est plus adapté à leur travail de se connecter à phpMyAdmin avec un dedicated user. Pour ce faire, ouvrez à nouveau le shell MySQL :

      Si vous avez activé l’authentification par mot de passe pour votre root user, comme décrit dans la section précédente, vous devrez exécuter la commande suivante et saisir votre mot de passe lorsque vous y serez invité afin de vous connecter :

      De là, créez un nouvel utilisateur et attribuez-lui un mot de passe fort :

      • CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Note : Encore une fois, selon la version de PHP que vous avez installée, vous voudrez peut-être configurer votre nouvel utilisateur pour qu’il s’authentifie avec le mot de passe mysql_native_password au lieu du mot de passe caching_sha2_password :

      • ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

      Ensuite, accordez à votre nouvel utilisateur les privilèges appropriés. Par exemple, vous pourriez accorder les privilèges d’utilisateur à toutes les tables de la base de données, ainsi que le pouvoir d’ajouter, de modifier et de supprimer des privilèges d’utilisateur, avec cette commande :

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

      Ensuite, quittez le shell MySQL :

      Vous pouvez maintenant accéder à l’interface web en visitant le nom de domaine ou l’adresse IP publique de votre serveur suivi de /phpmyadmin :

      https://your_domain_or_IP/phpmyadmin
      

      Écran de connexion à phpMyAdmin

      Connectez-vous à l’interface, soit commeroot ou avec le nouveau nom d’utilisateur et le nouveau mot de passe que vous venez de configurer. 

      Lorsque vous vous connecterez, vous verrez l’interface utilisateur, qui ressemblera à ceci :

      Interface utilisateur de phpMyAdmin

      Maintenant que vous êtes capable de vous connecter et d’interagir avec phpMyAdmin, il ne vous reste plus qu’à renforcer la sécurité de votre système pour le protéger des attaques.

      Étape 3 – Sécuriser votre instance phpMyAdmin

      En raison de son ubiquité, phpMyAdmin est une cible populaire pour les attaquants, et vous devriez faire très attention à empêcher tout accès non autorisé. Une façon de procéder consiste à placer une passerelle devant l’ensemble de l’application en utilisant les fonctionnalités d’authentification et d’autorisation .htaccess intégrées à Apache.

      Pour ce faire, vous devez d’abord activer l’utilisation des fichiers .htaccess en modifiant le fichier de configuration Apache de votre installation de phpMyAdmin.

      Utilisez votre éditeur de texte favori pour modifier le fichier phpmyadmin.conf qui a été placé dans votre répertoire de configuration Apache. Ici, nous utiliserons nano :

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

      Ajoutez une directive AllowOverride All dans la section <Directory /usr/share/phpmyadmin> du fichier de configuration, comme ceci :

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

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

      Lorsque vous avez ajouté cette ligne, enregistrez et fermez le fichier. Si vous avez utilisé nano pour éditer le fichier, faites-le en appuyant sur CTRL + X, Y, puis ENTER

      Pour mettre en œuvre les modifications que vous avez apportées, redémarrez Apache :

      • sudo systemctl restart apache2

      Maintenant que vous avez autorisé l’utilisation de fichiers .htaccess pour votre application, vous devez en créer un pour mettre en place une certaine sécurité. 

      Pour que cela soit possible, le fichier doit être créé dans le répertoire de l’application. Vous pouvez créer le fichier nécessaire et l’ouvrir dans votre éditeur de texte avec les privilèges root en tapant :

      • sudo nano /usr/share/phpmyadmin/.htaccess

      Dans ce fichier, entrez les informations suivantes :

      /usr/share/phpmyadmin/.htaccess

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

      Voici ce que signifie chacune de ces lignes :

      • AuthType Basic : Cette ligne précise le type d’authentification que vous mettez en œuvre. Ce type mettra en œuvre l’authentification par mot de passe à l’aide d’un fichier de mots de passe.
      • AuthName : Définit le message pour la boîte de dialogue d’authentification. Vous devez conserver ce générique afin que les utilisateurs non autorisés n’obtiennent aucune information sur ce qui est protégé.
      • AuthUserFile : permet de définir l’emplacement du fichier de mots de passe qui sera utilisé pour l’authentification. Cela doit se faire en dehors des répertoires qui sont desservis. Nous allons créer ce dossier prochainement.
      • Require valid-user : Ceci spécifie que seuls les utilisateurs authentifiés doivent avoir accès à cette ressource. C’est ce qui empêche en fait les utilisateurs non autorisés d’entrer.

      Lorsque vous avez terminé, enregistrez et fermez le fichier.

      L’emplacement que vous avez choisi pour votre fichier de mots de passe était /etc/phpmyadmin/.htpasswd. Vous pouvez maintenant créer ce fichier et le transmettre à un utilisateur initial avec l’utilitaire htpasswd :

      • sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

      Vous serez invité à sélectionner et à confirmer un mot de passe pour l’utilisateur que vous créez. Ensuite, le fichier est créé avec le mot de passe haché que vous avez entré.

      Si vous voulez entrer un utilisateur supplémentaire, vous devez le faire sans le drapeau -c, comme ceci :

      • sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

      Maintenant, lorsque vous accédez à votre sous-répertoire phpMyAdmin, il vous sera demandé le nom de compte et le mot de passe supplémentaires que vous venez de configurer :

      https://domain_name_or_IP/phpmyadmin
      

      Mot de passe apache de phpMyAdmin

      Après avoir entré l’authentification Apache, vous serez dirigé vers la page d’authentification phpMyAdmin habituelle pour entrer vos identifiants MySQL. En ajoutant un ensemble supplémentaire d’identifiants non-MySQL, vous apportez à votre base de données une couche de sécurité supplémentaire. Ceci est souhaitable, puisque phpMyAdmin a été vulnérable aux menaces de sécurité par le passé.

      Conclusion

      Vous devriez maintenant avoir configuré phpMyAdmin et être prêt à l’utiliser sur votre serveur Ubuntu 20.04. Cette interface vous permet de créer des bases de données, des utilisateurs et des tableaux, ainsi que d’effectuer les opérations habituelles comme la suppression et la modification de structures et de données.



      Source link

      Cómo instalar y proteger phpMyAdmin en Ubuntu 20.04


      Brennan Bearnes escribió una versión anterior de este tutorial.

      Introducción

      Aunque muchos usuarios necesitan la funcionalidad de un sistema de gestión de bases de datos como MySQL, es posible que no se sientan cómodos interactuando con el sistema únicamente desde la consola de MySQL.

      phpMyAdmin se creó con el propósito de que los usuarios puedan interactuar con MySQL a través de una interfaz web. En esta guía, abordaremos la forma de instalar y proteger phpMyAdmin de modo que pueda utilizarlo de forma segura para gestionar sus bases de datos en un sistema Ubuntu 20.04.

      Requisitos previos

      Para completar esta guía, necesitará lo siguiente:

      Adicionalmente, existen importantes consideraciones de seguridad al utilizar software como phpMyAdmin, ya que:

      • Se comunica directamente con su instalación de MySQL.
      • Maneja la autenticación utilizando credenciales de MySQL.
      • Se ejecuta y muestra resultados para consultas SQL arbitrarias.

      Por estas razones, y porque se trata de una aplicación PHP ampliamente implementada que con frecuencia recibe ataques, nunca debe ejecutar phpMyAdmin en sistemas remotos a través de una conexión HTTP simple.

      Si no tiene un dominio existente configurado con un certificado SSL/TLS, puede seguir esta guía para proteger Apache con Let’s Encrypt en Ubuntu 20.04. Deberá registrar un nombre de dominio, crear registros DNS para su servidor y configurar un host virtual en Apache.

      Paso 1: Instalación de phpMyAdmin

      Puede utilizar APT para instalar phpMyAdmin desde los repositorios predeterminados de Ubuntu.

      Como non-root user, actualice el índice de paquetes de su servidor:

      Después de esto, puede instalar el paquete phpmyadmin. Junto con este paquete, en la documentación oficial también se le recomienda instalar algunas extensiones PHP en su servidor para habilitar ciertas funcionalidades y mejorar el rendimiento.

      Si siguió el tutorial de pila LAMP de los requisitos previos, varios de estos módulos se habrán instalado junto con el paquete php. Sin embargo, se recomienda también instalar estos paquetes:

      • php-mbstring: módulo para administrar cadenas no-ASCII y convertir cadenas a diferentes codificaciones.
      • php-zip: esta extensión admite la carga de archivos .zip a phpMyAdmin.
      • php-gd: habilita la obtención de ayuda de la biblioteca GD Graphics.
      • php-json: proporciona PHP con compatibilidad para serialización JSON.
      • php-curl: permite que PHP interactúe con diferentes tipos de servidores utilizando diferentes protocolos.

      Ejecute el siguiente comando para instalar estos paquetes en su sistema. Tenga en cuenta que el proceso de instalación requiere que tome algunas decisiones para configurar phpMyAdmin correctamente. En breve, veremos estas opciones:

      • sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

      Estas son las opciones que debe elegir cuando se le solicite para configurar correctamente su instalación:

      • Para la selección del servidor, elija apache2

        Advertencia: Cuando la línea de comandos aparece, “apache2” está resaltado, pero no está seleccionado. Si no pulsa SPACE para seleccionar Apache, el instalador no moverá los archivos necesarios durante la instalación. Pulse ESPACIO, TAB y luego ENTER para seleccionar Apache.
      • Cuando se le pregunte si utiliza dbconfig-common para configurar la base de datos, seleccione Yes.
      • Luego, se le solicitará elegir y confirmar una contraseña para la aplicación de MySQL para phpMyAdmin.

      Nota: Suponiendo que instaló MySQL conforme al paso 2 del tutorial de la pila LAMP de los requisitos previos, es posible que haya decidido habilitar el complemento Validate Password. En el momento en que se redactó este documento, habilitar este componente generará un error cuando intente establecer una contraseña para el usuario phpmyadmin:

      Error de validación de contraseña phpMyAdmin

      Para resolver esto, seleccione la opción abort a fin de detener el proceso de instalación. Luego, abra su línea de comandos de MySQL:

      O bien, si habilitó la autenticación de contraseña para el root user de MySQL, ejecute este comando y luego ingrese su contraseña cuando se le solicite:

      Desde la línea de comandos, ejecute el siguiente comando para deshabilitar el componente Validate Password. Tenga en cuenta que con esto en realidad no se desinstalará, sino solo se evitará que el componente sea cargado en su servidor MySQL:

      • UNINSTALL COMPONENT "file://component_validate_password";

      Después de esto, puede cerrar el cliente MySQL:

      Luego, vuelva a instalar el paquete phpmyadmin, que funcionará según lo previsto:

      • sudo apt install phpmyadmin

      Una vez que phpMyAdmin esté instalado, puede abrir la línea de comandos de MySQL una vez más con sudo mysql o mysql -u root -p y luego ejecutar el siguiente comando para volver a habilitar el componente “Validate Password”:

      • INSTALL COMPONENT "file://component_validate_password";

      El proceso de instalación añade el archivo de configuración de phpMyAdmin de Apache al directorio /etc/apache2/conhable/, donde se lee de forma automática. Para terminar de configurar Apache y PHP a fin de que funcionen con phpMyAdmin, la única tarea que queda a continuación en esta sección del tutorial es habilitar explícitamente la extensión PHP mbstring. Esto se puede hacer escribiendo lo siguiente:

      A continuación, reinicie Apache para que sus cambios surtan efecto:

      • sudo systemctl restart apache2

      phpMyAdmin ahora está instalado y configurado para funcionar con Apache. Sin embargo, pra poder iniciar sesión y comenzar a interactuar con sus bases de datos de MySQL, deberá asegurarse de que sus usuarios de MySQL tengan los privilegios necesarios para interactuar con el programa.

      Paso 2: Ajuste de la autenticación y los privilegios de usuario

      Cuando instaló phpMyAdmin en su servidor, automáticamente creó un usuario de base de datos llamado phpmyadmin que realiza ciertos procesos subyacentes para el programa. En vez de registrarse como este usuario con la contraseña administrativa que estableció durante la instalación, se le recomienda iniciar sesión como root user de MySQL o como usuario dedicado a administrar las bases de datos a través de la interfaz de phpMyAdmin.

      Configuración del acceso con contraseña para la cuenta root de MySQL

      En los sistemas Ubuntu con MySQL 5.7 (y versiones posteriores), el usuario root de MySQL se configura para la autenticación usando el complemento auth_socket de manera predeterminada en lugar de una contraseña. En muchos casos, esto proporciona mayor seguridad y utilidad, pero también puede generar complicaciones cuando sea necesario permitir que un programa externo (como phpMyAdmin) acceda al usuario.

      Si aún no lo ha hecho, deberá cambiar el método de autenticación de auth_socket a uno que haga uso de una contraseña, para poder acceder a phpMyAdmin como su root user de MySQL. Para hacer esto, abra la consola de MySQL desde su terminal:

      A continuación, compruebe con el siguiente comando el método de autenticación utilizado por una de sus cuentas de usuario de MySQL:

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

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      En este ejemplo, puede ver que, en efecto, el usuario root se autentica utilizando el complemento de auth_socket. Para configurar la cuenta de root de modo que la autenticación se realice con una contraseña, ejecute el siguiente comando ALTER USER. Asegúrese de cambiar password por una contraseña segura que elija:

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Nota: La instrucción ALTER USER previa establece el root user de MySQL para la autenticación con el complemento caching_sha2_password. Según la documentación oficial de MySQL, caching_sha2_password es el complemento de autenticación preferido por MySQL, ya que proporciona un cifrado de contraseña más seguro que el anterior, aunque aún usado ampliamente, mysql_native_password.

      Sin embargo, algunas versiones de PHP no funcionan de forma confiable con caching_sha2_password. PHP notificó que este problema se corregió a partir de PHP 7.4, pero si encuentra un error cuando intente iniciar sesión en phpMyAdmin más adelante, es conveniente que en vez de esto establezca root para autenticar con mysql_native_password.

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

      Luego, compruebe nuevamente los métodos de autenticación empleados por cada uno de sus usuarios para confirmar que root ya no se autentique usando el complemento auth_socket:

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

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      En este resultado, podrá ver que el root user se auntenticará usando una contraseña. Ahora podrá iniciar sesión en la interfaz phpMyAdmin como usuario root con la contraseña que estableció aquí.

      Configuración del acceso con contraseña para un usuario dedicado de MySQL

      Por otra parte, para el flujo de trabajo de algunos puede resultar más conveniente la conexión a phpMyAdmin con un usuario dedicado. Para hacer esto, abra una vez más el shell de MySQL:

      Si tiene habilitada la autenticación de contraseña para su root user, como se describe en la sección anterior, deberá ejecutar el siguiente comando e ingresar su contraseña cuando se le solicite para establecer conexión:

      A partir de ahí, cree un usuario nuevo y asigne una contraseña segura:

      • CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Nota: De nuevo, dependiendo de la versión de PHP que instaló, es conveniente establecer su nuevo usuario para la autenticación con mysql_native_password en lugar de caching_sha2_password:

      • ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

      Luego, conceda a su nuevo usuario los privilegios apropiados. Por ejemplo, con el siguiente comando podría conceder privilegios de usuario a todas las tablas dentro de la base de datos, así como la facultad de añadir, cambiar y eliminar privilegios de usuario:

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

      A continuación, cierre el shell de MySQL:

      Ahora puede acceder a la interfaz web visitando el nombre de dominio o la dirección IP pública de su servidor, con “/phpmyadmin” agregado:

      https://your_domain_or_IP/phpmyadmin
      

      Pantalla de inicio de sesión de phpMyAdmin

      Inicie sesión en la interfaz como root o con el nombre de usuario y la contraseña que configuró.

      Cuando inicie sesión, verá la interfaz de usuario. Tendrá el siguiente aspecto:

      Interfaz de usuario de phpMyAdmin

      Ahora que puede establecer conexión e interactuar con phpMyAdmin, solo falta fortalecer la seguridad de sus sistemas para protegerlos de atacantes.

      Paso 3: Protección de la instancia de phpMyAdmin

      Debido a su presencia universal, phpMyAdmin es un objetivo popular para atacantes. Debe tomar medidas adicionales para evitar el acceso no autorizado. Una opción para hacer esto es disponer una puerta de enlace delante de toda la aplicación utilizando las funciones de autenticación y autorización de .htaccess integradas de Apache.

      Para hacerlo, primero debe habilitar el uso de anulaciones del archivo .htaccess editando su archivo de configuración de Apache.

      Utilice su editor de texto preferido para editar el archivo phpmyadmin.conf que se dispuso en su directorio de configuración de Apache. En este caso, utilizaremos nano:

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

      Agregue una directiva AllowOverride All dentro de la sección <Directory /usr/share/phpmyadmin>​​​ del archivo de configuración, como se muestra:

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

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

      Una vez que agregue esta línea, guarde y cierre el archivo. Si utilizó nano para editar el archivo, hágalo presionando CTRL + X, Y y luego ENTER.

      Para implementar los cambios que realizó, reinicie Apache:

      • sudo systemctl restart apache2

      Ahora que habilitó el uso de .htaccess para su aplicación, deberá crear uno para implementar seguridad.

      Para que pueda hacerlo de forma correcta, el archivo debe crearse dentro del directorio de la aplicación. Puede crear el archivo necesario y abrirlo en su editor de texto con privilegios root escribiendo lo siguiente:

      • sudo nano /usr/share/phpmyadmin/.htaccess

      Dentro de este archivo, ingrese la siguiente información:

      /usr/share/phpmyadmin/.htaccess

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

      A continuación, se muestra lo que significa cada una de estas líneas:

      • AuthType Basic: en esta línea se especifica el tipo de autenticación que implementará. Con este tipo se implementará la autenticación de contraseña utilizando un archivo de contraseña.
      • AuthName: establece el mensaje para el cuadro de diálogo de autenticación. Debe procurar que esto sea genérico para que los usuarios no autorizados no obtengan información sobre lo que se protege.
      • AuthUserFile: establece la ubicación del archivo de contraseña que se utilizará para la autenticación. Esto debe quedar fuera de los directorios que se presentan. Crearemos este archivo pronto.
      • Require valid-user: especifica que solo los usuarios autenticados deberán tener acceso al recurso. Esto es lo que realmente impide el ingreso de los usuarios no autorizados.

      Cuando termine, guarde y cierre el archivo.

      La ubicación que seleccionó para su archivo de contraseña fue /etc/phpmyadmin/.htpasswd. Ahora puede crear este archivo y pasarle un usuario inicial con la utilidad htpasswd:

      • sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

      Para el usuario que creará, se le solicitará seleccionar y confirmar una contraseña. Después, el archivo se creará con la contraseña con hash que ingresó.

      Si desea ingresar un usuario adicional, debe hacerlo sin el indicador -c, como se muestra:

      • sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

      Ahora, cuando acceda a su subdirectorio phpMyAdmin, se le solicitarán el nombre de cuenta y la contraseña adicionales que acaba de configurar:

      https://domain_name_or_IP/phpmyadmin
      

      Contraseña phpMyAdmin de Apache

      Después de ingresar la autenticación de Apache, accederá a la página de autenticación normal de phpMyAdmin para ingresar sus credenciales de MySQL. Al añadir un conjunto adicional de credenciales que no son las de MySQL, proporciona a su base de datos una capa de seguridad adicional. Esto es conveniente, ya que phpMyAdmin ha sido vulnerable a amenazas de seguridad en el pasado.

      Conclusión

      De esta manera, phpMyAdmin debería estar ya configurado y listo para usar en su servidor Ubuntu 20.04. Utilizando esta interfaz, puede crear fácilmente bases de datos, usuarios y tablas, y realizar operaciones habituales, como las de eliminar y modificar estructuras y datos.



      Source link

      Como instalar e proteger o phpMyAdmin no Ubuntu 20.04


      Existe uma versão anterior deste tutorial, escrita por Brennan Bearnes.

      Introdução

      Embora muitos usuários precisam da funcionalidade de um sistema de gerenciamento de banco de dados como o MySQL, talvez não se sintam à vontade para interagir com o sistema unicamente a partir do prompt do MySQL.

      O phpMyAdmin foi criado para que os usuários possam interagir com o MySQL através de uma interface Web. Neste guia, discutiremos como instalar e proteger o phpMyAdmin para que você possa usá-lo com segurança para gerenciar seus bancos de dados em um sistema Ubuntu 20.04.

      Pré-requisitos

      Para completar este guia será necessário:

      Além disso, existem algumas considerações de segurança importantes ao se utilizar um software como o phpMyAdmin, uma vez que ele:

      • Comunica-se diretamente com sua instalação do MySQL.
      • Trata da autenticação usando credenciais para o MySQL.
      • Executa e retorna resultados para consultas SQL arbitrárias.

      Por isso e também por ser um aplicativo PHP amplamente utilizado – sendo alvo frequente de ataque, nunca execute o phpMyAdmin em sistemas remotos em uma conexão HTTP simples.

      Caso você não tenha um domínio existente configurado com um certificado SSL/TLS, siga este guia sobre como proteger o Apache com o Let’s Encrypt no Ubuntu 20.04. Isso irá exigir que você registre um nome de domínio, crie registros DNS para seu servidor e configure um host Virtual Apache.

      Passo 1 — Instalando o phpMyAdmin

      Você pode usar o APT para instalar o phpMyAdmin a partir dos repositórios padrão do Ubuntu.

      Usando seu non-root sudo user, atualize o índice de pacotes do seu servidor:

      Em seguida, você pode instalar o pacote phpmyadmin. Com esse pacote, a documentação oficial também recomenda que você instale algumas extensões PHP em seu servidor para habilitar certas funcionalidades e melhorar o desempenho.

      Se você seguiu o tutorial de pré-requisito da pilha LAMP, vários desses módulos foram instalados com o pacote php. No entanto, é recomendável que você também instale estes pacotes:

      • php-mbstring: um módulo para gerenciar strings não-ASCII e converter strings para diferentes codificações
      • php-zip: esta extensão possui suporte de upload de arquivos .zip para o phpMyAdmin
      • php-gd: habilita o suporte para a biblioteca gráfica do GD
      • php-json: fornece o PHP com suporte para a serialização JSON
      • php-curl: permite que o PHP interaja com diferentes tipos de servidores usando protocolos diferentes

      Execute o seguinte comando para instalar esses pacotes em seu sistema. No entanto, note que o processo de instalação exige que você faça algumas escolhas para configurar o phpMyAdmin corretamente. Analisaremos essas opções em instantes:

      • sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

      Estas são as opções que você deve escolher quando solicitado para configurar sua instalação corretamente:

      • Na seleção do servidor, escolha apache2
        Aviso: quando o prompt aparecer, o “apache2” estará destacado, mas não estará selecionado. Se você apertar a tecla SPACE para selecionar o Apache, o instalador não irá mover os arquivos necessários durante a instalação. Aperte as teclas SPACE, TAB e, então, ENTER para selecionar o Apache.
      • Selecione Yes quando indagado quanto a se usará o dbconfig-common para configurar o banco de dados
      • Será solicitado que escolha e confirme a senha do aplicativo MySQL para o phpMyAdmin

      Nota: assumindo que você instalou o MySQL seguindo o Passo 2 do tutorial de pré-requisito da pilha LAMP, você pode ter decidido habilitar o plug-in de validação de senha. Assim como este artigo, habilitar este componente acionará um erro caso você tente definir uma senha para o usuário phpmyadmin:

      erro de validação de senha do phpMyAdmin

      Para resolver isso, selecione a opção anular para interromper o processo de instalação. Em seguida, abra seu prompt do MySQL:

      Caso tenha habilitado a autenticação por senha para o usuário root do MySQL, execute este comando e, em seguida, digite sua senha quando solicitada:

      A partir do prompt, execute o seguinte comando para desabilitar o componente de validação de senha. Observe que isso não desinstalará o componente, apenas impedirá que ele seja carregado em seu servidor MySQL:

      • UNINSTALL COMPONENT "file://component_validate_password";

      Em seguida, feche o cliente do MySQL:

      Em seguida, tente instalar o pacote phpmyadmin novamente. Ele funcionará como esperado:

      • sudo apt install phpmyadmin

      Assim que o phpMyAdmin for instalado, você pode abrir o prompt do MySQL novamente com o sudo mysql ou o mysql -u root -p e, em seguida, executar o seguinte comando para habilitar novamente o componente de validação de senha:

      • INSTALL COMPONENT "file://component_validate_password";

      O processo de instalação adiciona o arquivo de configuração do Apache phpMyAdmin no diretório /etc/apache2/conf-enabled/, onde ele é lido automaticamente. A única tarefa deste tutorial que falta para terminar a configuração do Apache e do PGP para funcionarem com o phpMyAdmin, é de habilitar a extensão PHP mbstring. Isso pode ser feito digitando:

      Depois disso, reinicie o Apache para as suas alterações serem reconhecidas:

      • sudo systemctl restart apache2

      O phpMyAdmin está instalado e configurado para funcionar com o Apache. Entretanto, antes de fazer login e começar a interagir com seus bancos de dados do MySQL, será necessário garantir que seus usuários do MySQL tenham os privilégios necessários para interagir com o programa.

      Passo 2 — Ajustando a autenticação e os privilégios do usuário

      Quando você instalou o phpMyAdmin no seu servidor, ele criou automaticamente um usuário de banco de dados chamado phpmyadmin que executa certos processos subjacentes para o programa. Em vez de fazer login como esse usuário com a senha administrativa definida durante a instalação, é recomendável que você faça log in como usuário root do MySQL ou como um usuário dedicado para gerenciar os bancos de dados através da interface phpMyAdmin.

      Configurando a senha de acesso para a conta de raiz do MySQL

      Nos sistemas Ubuntu que executam o MySQL 5.7 (e as versões posteriores), por padrão, o usuário root do MySQL é configurado para autenticar usando o plug-in auth_socket e não com uma senha. Isso permite maior segurança e usabilidade em muitos casos, mas também pode complicar as coisas quando for necessário permitir que um programa externo — como o phpMyAdmin — acesse o usuário.

      Para fazer login no phpMyAdmin como seu usuário root do MySQL, será necessário mudar seu método de autenticação de auth_socket para um método que utilize senha, se ainda não tiver feito isso. Para fazer isso, abra o prompt do MySQL do seu terminal:

      Em seguida, verifique quais os métodos de autenticação cada conta de usuário do seu MySQL utilizam com o seguinte comando:

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

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Neste exemplo, é possível ver que o usuário root autenticou usando o plug-in auth_socket. Para configurar a conta root para autenticar com uma senha, execute o comando ALTER USER. Certifique-se de alterar a password para uma senha forte da sua escolha:

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Nota: a instrução anterior, ALTER USER, configura o usuário root do MySQL para autenticar-se com o plug-in caching_sha2_password. De acordo com a documentação oficial do MySQL, o caching_sha2_password é o plug-in de autenticação preferencial do MySQL, pois ele fornece uma criptografia de senha mais segura do que o mysql_native_password, que é o plug-in mais antigo (mas ainda assim bastante utilizado).

      No entanto, algumas versões do PHP não funcionam de maneira confiável com o caching_sha2_password. O PHP informou que esse problema foi corrigido na versão do PHP 7.4, mas caso você ache um erro ao tentar fazer login no phpMyAdmin, como opção, defina o root para autenticar-se com o mysql_native_password:

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

      Em seguida, verifique os métodos de autenticação utilizados pelos seus usuários para confirmar que o root já não é autenticado usando o plug-in auth_socket:

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

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Através dessa saída é possível ver que o usuário root passará a autenticar usando uma senha. Agora, é possível fazer login na interface phpMyAdmin como seu usuário root com a senha que você definiu para ele aqui.

      Configurando a senha de acesso para um usuário do MySQL dedicado

      Como alternativa, alguns podem achar que é melhor eles se conectarem ao phpMyAdmin com um usuário dedicado. Para fazer isso, abra a shell do MySQL novamente:

      Se você tiver a autenticação por senha habilitada para o root user, como descrito na seção anterior, você precisará executar o seguinte comando e digitar sua senha quando solicitada para poder se conectar:

      A partir daí, crie um novo usuário e dê a ele uma senha forte:

      • CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Nota: novamente, dependendo da versão do PHP que você instalou, aconselhamos definir seu novo usuário para autenticar-se com o mysql_native_password em vez do caching_sha2_password:

      • ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

      Então, conceda ao seu novo usuário os privilégios apropriados. Por exemplo, é possível conceder os privilégios de usuário para todas as tabelas dentro do banco de dados, além do poder de adicionar, alterar e remover os privilégios de usuário, com este comando:

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

      Despois disso, saia do shell do MySQL:

      Agora, é possível acessar a interface Web, acessando o nome de domínio ou endereço IP público do seu servidor seguido por /phpmyadmin:

      https://your_domain_or_IP/phpmyadmin
      

      phpMyAdmin login screen

      Faça login na interface como usuário root ou com o novo nome de usuário e senha que você acabou de configurar.

      Quando fazer login, verá a interface de usuário que se parecerá com isso:

      phpMyAdmin user interface

      Agora que você consegue se conectar e interagir com o phpMyAdmin, tudo o que resta a se fazer é fortalecer a segurança do seu sistema para protegê-lo de ataques.

      Passo 3 — Protegendo sua instância phpMyAdmin

      Devido a sua onipresença, o phpMyAdmin é alvo conhecido de ataque. Você deverá tomar cuidado extra para evitar o acesso não autorizado. Uma maneira de fazer isso é colocar um gateway na frente do aplicativo inteiro utilizando a autenticação integrada .htaccess e as funcionalidades da autorização.

      Para fazer isso, você deve primeiro habilitar o uso da substituição do arquivo .htaccess através da edição do arquivo de configuração Apache da sua instalação do phpMyAdmin.

      Use seu editor de texto preferido para editar o arquivo phpmyadmin.conf que foi colocado no diretório de configuração do Apache. Aqui, usaremos o nano:

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

      Adicione uma diretriz de AllowOverride All na seção <Directory /usr/share/phpmyadmin> do arquivo de configuração, desta forma:

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

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

      Quando tiver adicionado essa linha, salve e feche o arquivo. Se você utilizou o nano para editor o arquivo, faça isso pressionando CTRL + X, Y e, depois, ENTER.

      Para implementar as alterações feitas, reinicie o Apache:

      • sudo systemctl restart apache2

      Agora que o arquivo .htaccess foi habilitado para uso em seu aplicativo, será necessário criar um arquivo que realmente implemente alguma segurança.

      Para que isso seja bem-sucedido, o arquivo deve ser criado dentro do diretório do aplicativo. Crie o arquivo necessário e o abra no seu editor de texto com privilégios raiz, digitando:

      • sudo nano /usr/share/phpmyadmin/.htaccess

      Dentro desse arquivo, digite as seguintes informações:

      /usr/share/phpmyadmin/.htaccess

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

      Eis o que cada uma dessas linhas significa:

      • AuthType Basic: esta linha especifica o tipo de autenticação que você está implementando. Esse tipo irá implementar a autenticação por senha, utilizando um arquivo de senha.
      • AuthName: define a mensagem da caixa de diálogo da autenticação. Você deve manter essas definições com texto vago, no intuito de evitar que usuários não autorizados tenham acesso às informações sobre o que estiver sendo protegido.
      • AuthUserFile: define o local do arquivo de senha que será usado para autenticação. Esse arquivo deve permanecer fora dos diretórios que estão sendo atendidos. Criaremos esse arquivo em breve.
      • Require valid-user: especifica que apenas os usuários autenticados devem receber acesso a este recurso. Isto é o que realmente impede os usuários não autorizados de entrarem.

      Quando você terminar, salve e feche o arquivo.

      O local que você selecionou para seu arquivo de senha foi /etc/phpmyadmin/.htpasswd. Agora, é possível criar este arquivo e encaminhá-lo para um usuário inicial com o utilitário htpasswd:

      • sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

      Será solicitado que selecione e confirme uma senha para o usuário que está criando. Depois disso, o arquivo é criado com a senha verificada que você digitou.

      Se quiser inserir um usuário adicional, será necessário fazer isso sem o sinalizador -c, desta maneira:

      • sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

      Agora, quando acessar seu subdiretório do phpMyAdmin será solicitado o nome e senha da conta adicional que você acabou de configurar:

      https://domain_name_or_IP/phpmyadmin
      

      phpMyAdmin apache password

      Após digitar a autenticação do Apache, você será levado para a página de autenticação regular do phpMyAdmin para digitar suas credenciais do MySQL. Ao adicionar um conjunto extra de credenciais não-MySQL, você está fornecendo uma camada adicional de segurança ao seu banco de dados. Isso é o que queremos, pois, o phpMyAdmin ficou vulnerável a ameaças de segurança anteriormente.

      Conclusão

      Agora, você deve ter o phpMyAdmin configurado e pronto para uso no seu servidor Ubuntu 20.04. Ao utilizar esta interface, você conseguirá criar bancos de dados, usuários, tabelas e realizar operações usuais como excluir e modificar estruturas e dados.



      Source link