GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale phpMyAdmin con LEMP Stack en Ubuntu 20.04 LTS

Ya sabemos cómo instalar phpMyAdmin con la pila LAMP en Ubuntu 20.04 . Hoy, veamos cómo instalar phpMyAdmin con la pila LEMP en la edición Ubuntu 20.04 LTS. Y luego también discutiremos algunas prácticas de seguridad que ayudarán a proteger phpmyadmin de amenazas comunes. Primero, asegúrese de haber configurado la pila LEMP en Ubuntu 20.04 como se describe en el siguiente enlace.

  • Instalar Nginx, MySQL, PHP (LEMP Stack) en Ubuntu 20.04 LTS

Después de instalar la pila LEMP, instale y asegure phpMyAdmin como se describe en las siguientes secciones.

Instalar phpMyAdmin con LEMP Stack en Ubuntu 20.04 LTS

Ejecute el siguiente comando para instalar phpMyAdmin desde la Terminal:

$ sudo apt install phpmyadmin

En la siguiente ventana, se le pedirá que seleccione el servidor web que debe configurarse automáticamente para ejecutar phpMyAdmin. Como puede ver en la siguiente captura de pantalla, Nginx no está disponible en la lista de servidores web. Apache y lighthttpd solo se enumeran aquí. Entonces no seleccione cualquier servidor web y simplemente déjelo en blanco. Elija Aceptar y presione ENTER para continuar:

PhpMyAdmin requiere una base de datos instalada y configurada antes de que pueda usarse. Puede hacerlo con el comando dbconfig.

Elija para configurar la base de datos para phpmyadmin con dbconfig-common:

Debe proporcionar una contraseña para que phpmyadmin se registre en el servidor de base de datos MySQL. Si no se proporciona la contraseña, se generará una contraseña aleatoria.

Ingrese una contraseña segura y presione ENTER para continuar:

Vuelva a introducir la contraseña:

Al momento de escribir esta guía, cuando traté de configurar la contraseña para phpmyadmin, arroja el siguiente error:

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

Este error se produce porque hemos habilitado la VALIDAR CONTRASEÑA como se describe en la sección titulada "2.2 Cambiar el método de autenticación para el usuario root de MySQL" en la guía de instalación de la pila LEMP adjunta arriba.

Para solucionar este problema, debe deshabilitar temporalmente el componente Validar contraseña y volver a habilitarlo después de configurar la contraseña para phymyadmin. Haga clic en Aceptar para cerrar el mensaje de error anterior y elija "cancelar" para cancelar la instalación de phpmyadmin.

Ahora inicie sesión en el indicador de Mysql ejecutando el siguiente comando:

$ mysql -u root -p

Desde el indicador de mysql, ejecute el siguiente comando para deshabilitar el complemento Validar contraseña:

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

Tenga en cuenta que el comando anterior solo deshabilitará el complemento, pero no lo eliminará. Puedes habilitarlo más tarde. Luego escriba "salir" para salir del indicador de Mysql.

mysql> exit

Ahora intente instalar phpmyadmin nuevamente usando el comando:

$ sudo apt install phpmyadmin

Elija "Sí" y presione ENTER para configurar la base de datos para phpmyadmin con dbconfig-common. Esta vez, la instalación de phpmyadmin funcionará sin problemas.

Una vez que phpmyadmin esté instalado, vuelva a habilitar el complemento Validar contraseña. Para hacerlo, inicie sesión en su indicador Mysql:

$ mysql -u root -p

Desde el indicador de mysql, ejecute el siguiente comando para deshabilitar el complemento Validar contraseña:

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

Escriba exit para salir del indicador de mysql.

mysql> exit

Ahora cree un enlace simbólico para configurar el servidor web Nginx para ejecutar phpmyadmin usando el comando:

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

Este comando creará un enlace simbólico llamado "phpmyadmin" en el directorio raíz de Nginx. Este enlace simbólico en realidad apunta al directorio /usr/share/phpmyadmin, donde se almacenan los archivos reales.

¡Hecho! Hemos instalado correctamente PhpMyAdmin con la pila LEMP.

Acceder al panel de phpMyAdmin

Abra su navegador web y vaya a "http://IP-Address/phpmyadmin" desde la barra de direcciones.

Debería ver la página de inicio de sesión de phpmyadmin. Introduzca el usuario de la base de datos y su contraseña:

Estará satisfecho con el panel de phpMyAdmin.

Desde aquí, puede crear, eliminar y administrar bases de datos.

Cree un usuario dedicado para acceder al panel de phpMyAdmin

Una vez que se instala phpMyAdmin, un usuario de la base de datos llamado 'phpmyadmin' se creará automáticamente con la contraseña administrativa que estableció durante la instalación. Puede iniciar sesión en el panel de phpmyAdmin usando el usuario 'phpmyadmin' o mysql root usuario como se muestra arriba. Sin embargo, se recomienda crear un usuario dedicado para administrar las bases de datos a través de la interfaz web de phpMyAdmin.

Para hacerlo, inicie sesión en mysql shell usando el comando:

$ mysql -u root -p

Ingrese su contraseña raíz mysql. Ahora estará en mysql shell.

Ingrese el siguiente comando para crear un nuevo usuario dedicado para phpmyadmin:

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

Aquí, phpmyadmin es el nuevo usuario para acceder al panel de phpmyadmin. La contraseña para phpmyadminuser es Password123#@! . Reemplace estos valores con los suyos propios.

Luego otorgue los privilegios apropiados al 'phpmyadminuser' usando el comando:

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

Finalmente salga del shell mysql:

mysql> exit

Ahora hemos creado un usuario dedicado para administrar las bases de datos a través de la interfaz web phpmyadmin. Avancemos y accedamos al panel de control de phpmyadmin.

Abra el navegador web y vaya a "http://Dirección IP/phpayadmin. Ingrese el usuario de la base de datos recién creado y su contraseña. ¡Felicitaciones! Ha iniciado sesión con un usuario dedicado al panel web de phpMyAdmin.

phpMyAdmin seguro

Esta sección proporciona algunos consejos para asegurar la instalación de PhpMyAdmin. Tenga en cuenta que los siguientes pasos por sí solos no pueden proteger phpMyAdmin de forma 100 % segura. Sin embargo, al menos ralentizarán cualquier intento de un perpetrador de entrar en su panel de phpmyadmin.

Deshabilitar el inicio de sesión raíz de MySQL en el panel de phpmyadmin

Permitir que el usuario raíz de mysql acceda al panel de phpMyAdmin no es seguro, especialmente cuando se administran bases de datos a través de la red. Es por eso que creamos un usuario dedicado en la sección anterior. Dado que ya tenemos un usuario dedicado, podemos deshabilitar de forma segura el inicio de sesión raíz de mysql para acceder al panel de control de phpmyadmin para minimizar los ataques.

Generalmente, phpmyadmin se instala en /usr/share/phpmyadmin/ El directorio y sus archivos de configuración se almacenan en /etc/phpmyadmin directorio.

Edite el archivo de configuración de phpmyadmin:

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

Agregue/modifique los siguientes parámetros:

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

Guarde y cierre el archivo.

Reinicie el servidor web Nginx usando el comando:

$ sudo systemctl restart nginx

Ahora intente iniciar sesión en phpmyadmin como usuario root. Obtendrá el Acceso denegado mensaje de error:

Cambiar la URL de la interfaz web de phpmyadmin

Esta es la táctica más común seguida por los bots para obtener acceso a phpmyadmin. Puede evitar esto cambiando la URL a algo difícil de adivinar. Cambiar la URL de phpmyadmin evitará que los bots o scripts automatizados realicen análisis de URL y ataques de fuerza bruta.

¿Recuerdas que creamos un enlace simbólico llamado "phpmyadmin" en el directorio raíz de Nginx?

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

Aquí, phpmyadmin es el enlace simbólico que apunta al directorio /usr/share/phpmyadmin.

Vamos a cambiar el nombre del enlace simbólico usando el comando:

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

Asegúrese de que el nombre contenga caracteres aleatorios y sea muy difícil de adivinar.

A partir de ahora, cada vez que alguien intente acceder a la página de phpmyadmin navegando a http://Dirección IP/URL de phpmyadmin, recibirá el siguiente mensaje de error:

Porque cambiamos la URL. La nueva URL de phpmyadmin es http://Dirección-IP/ostechnix.

Proteger con contraseña la página de inicio de sesión de phpMyAdmin

Podemos agregar una capa adicional de seguridad al restringir el acceso a la página de inicio de sesión de phpmyadmin con el método de autenticación HTTP básico. Significado:habilitamos la protección con contraseña para la página de inicio de sesión de phpmyadmin, por lo que los usuarios tendrán que ingresar un nombre de usuario/contraseña adicional antes de acceder a la página de inicio de sesión de phpMyAdmin real.

Primero, necesitamos generar un archivo de contraseña usando htpasswd utilidad. La utilidad htpasswd es parte de apache2-utils paquete. Así que vamos a instalarlo usando el comando:

$ sudo apt install apache2-utils

Ahora, cree un archivo de contraseña cifrada con el comando:

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

Reemplace "ostechnix" con un nombre de usuario de su elección. Introduzca una contraseña segura dos veces para generar el archivo de contraseñas.

Para ver el contenido del archivo recién generado, use el comando "gato" como se muestra a continuación:

$ cat /etc/nginx/.htpasswd

Verá una salida como la siguiente:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

A continuación, debemos mencionar la ruta del archivo de contraseña anterior en nuestro archivo de configuración predeterminado de Nginx. Si siguió nuestro tutorial de instalación de LEMP adjunto anteriormente, la configuración predeterminada de Nginx debería ser /etc/nginx/sites-disponible/default .

Edite el archivo de configuración predeterminado de Nginx:

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

Agregue las siguientes líneas, debajo de "ubicación" bloque:

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

¿Recuerda que hemos cambiado la URL de phpMyAdmin (http://IP-Address/ostechnix) en el paso anterior? Es por eso que mencioné el nombre del bloque como "ostechnix" en el bloque anterior. Reemplázalo por el tuyo. Guarde y cierre el archivo.

Verifique el archivo de configuración de Nginx para ver si hay errores de sintaxis usando el comando:

$ sudo nginx -t

Salida de muestra:

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

Si no ve ningún error, reinicie el servicio nginx para aplicar los cambios.

$ sudo systemctl restart nginx

Ahora intente acceder a su URL de phpMyAdmin desde su navegador. Se le pedirá que ingrese un nombre de usuario y una contraseña:

Ingrese el nombre de usuario y la contraseña correctos que se crearán anteriormente usando la utilidad "htpasword". Ahora será redirigido a la página de inicio de sesión real de phpMyAdmin, donde puede ingresar el usuario de la base de datos y su contraseña para iniciar sesión en el panel web de phpMyAdmin.


Ubuntu
  1. Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en Ubuntu 20.04 LTS

  2. Instale WordPress con LEMP Stack en Ubuntu 20.04

  3. Instale phpMyAdmin en Ubuntu 14.10

  4. Cómo instalar la pila LEMP en Ubuntu 16.04

  5. Instale phpMyAdmin con LAMP Stack en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Apache en Ubuntu 22.04 LTS

Cómo instalar el último phpMyAdmin con LEMP en Ubuntu 20.04

Cómo instalar phpMyAdmin en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 20.04 LTS

Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04