Cómo instalar phpMyAdmin en Ubuntu 22.04

phpMyAdmin es una herramienta gratuita y de código abierto para gestionar y administrar servidores MySQL. Se puede utilizar para gestionar incluso varios servidores MySQL en diferentes ubicaciones. phpMyAdmin es una aplicación basada en la web y escrita en PHP, y puede ejecutarse bajo la pila LAMP (Linux, Apache2, MariaDB/MySQL, PHP) o LEMP (Linux, Nginx, MariaDB/MySQL, PHP-FPM). el phpMyAdmin es una aplicación muy potente y se ha convertido en una aplicación muy utilizada para gestionar servidores MySQL, proporciona una amplia documentación y wikis.

phpMyAdmin te permite gestionar los datos de MySQL desde un navegador web, puedes gestionar bases de datos, tablas, columnas, índices, relaciones, usuarios, permisos, etc. desde una única interfaz de usuario en tu navegador web. phpMyAdmin también te permite importar y exportar datos al servidor MySQL. Puedes importar datos CSV y SQL a tu MySQL, y también exportar tus datos a múltiples formatos como CSV, SQL, XML, Latex, XML, PDF y texto y hoja de cálculo OpenDocument.

En este tutorial, te mostraremos cómo instalar y configurar el phpMyAdmin en el último servidor Ubuntu 22.04. Este tutorial también cubre algunas configuraciones adicionales para asegurar la instalación de phpMyAdmin.

Requisitos previos

  • Una máquina Ubuntu 22.04 – puedes utilizar la versión de servidor o de escritorio de Ubuntu.
  • Un usuario no root con privilegios de administrador root.
  • Una pila LAMP instalada en la máquina. Este ejemplo utiliza la instalación básica de LAMP Stack (Linux, Apache2, MariaDB y PHP).

Instalación de phpMyAdmin

En la última versión de Ubuntu 22.04, el paquete phpMyAdmin está disponible en el repositorio oficial de Ubuntu Universe. Así que antes de instalar el phpMyAdmin, asegúrate de que el repositorio Universo de Ubuntu está activado en tu sistema.

En el estado actual, el Ubuntu proporciona el phpMyAdmin v5.x, que es la última versión estable de phpMyAdmin.

Antes de empezar a instalar los paquetes, ejecuta el siguiente comando para actualizar y refrescar tus repositorios de Ubuntu.

sudo apt update

Asegúrate de que el repositorio Ubuntu APT Universe está activado en tu sistema.

Ahora comprueba el paquete phpmyadmin con el siguiente comando.

sudo apt info phpmyadmin

Como puedes ver en la siguiente captura de pantalla, el repositorio APT de Ubuntu proporciona el phpMyAdmin v5.x, y está disponible en el repositorio Universo de Ubuntu.

comprobar el paquete phpmyadmin

A continuación, puedes instalar el paquete phpMyAdmin con el siguiente comando.

sudo apt install phpmyadmin

Introduce Y para confirmar la instalación y pulsa ENTER para comenzar. Ahora la instalación de phpMyAdmin está en proceso.

instalar phpmyadmin

Durante la instalación de phpMyAdmin, se te pedirán las siguientes configuraciones:

Elige el servidor web para el phpMyAdmin. En este ejemplo, el servidor web es apache2, y luego selecciona Aceptar.

apache2 como servidor web phpmyadmin

Ahora selecciona para empezar a configurar el phpMyAdmin con el dbconfig-common. Esto hará que se configuren automáticamente todas las bases de datos de phpMyAdmin.

setup dbconfig-common

Para la contraseña de la base de datos phpMyAdmin, puedes dejarla en blanco o introducir tu propia contraseña y luego seleccionar OK. Si lo dejas en blanco, el dbconfig-common generará automáticamente la contraseña para tu phpMyAdmin.

configurar phpmyadmin con dbconfig-comon

Por último, abre tu navegador web y visita la dirección IP del servidor con la ruta URL /phpmyadmin (por ejemplo: http://192.168.10.15/phpmyadmin). Y ahora obtendrás la página de inicio de sesión de phpMyAdmin.

Introduce tu usuario y contraseña del servidor MariaDB y haz clic en Ir para iniciar la sesión.

inicio de sesión phpmyadmin

Una vez que hayas iniciado la sesión, verás el panel de control de phpMyAdmin que aparece a continuación. Como puedes ver, phpMyAdmin 5. x está instalado en la máquina Ubuntu 22.04 con Apache2, MariaDB 10.x y PHP 8.1.

Panel de control de phpmyadmin

Asegurar la instalación de phpMyAdmin

Después de haber instalado phpMyAdmin. a continuación, aprenderás a asegurar la instalación de phpMyAdmin.

A continuación aprenderás tres métodos para asegurar la instalación de phpMyAdmin en tu sistema Ubuntu:

  • Cambiar la URL de la ruta de la instalación de phpMyAdmin: La instalación por defecto de phpMyAdmin está disponible en la ruta URL /phpmyadmin, que es fácil de adivinar para los atacantes. Puedes cambiar la ruta por defecto por tu ruta URL personalizada.
  • Autenticación adicional mediante la autenticación básica de Apache2: En este escenario, se mostrará a los usuarios la autenticación básica de Apache2 antes de mostrar la página de inicio de sesión de phpMyAdmin. Esto añadirá una autenticación adicional, por lo que sólo se mostrará la página de inicio de sesión de phpMyAdmin a los usuarios que estén en la lista de autenticación básica de Apache2 y podrán iniciar sesión en phpMyAdmin.
  • Bloquear el intento de inicio de sesión en phpMyAdmin con Fail2ban Jail: Necesitarás el fail2ban instalado y configurado en tu máquina Ubuntu. Esto bloqueará la dirección IP de los intentos de inicio de sesión maliciosos en el phpMyAdmin. Además, puedes configurar el máximo de intentos de inicio de sesión en la cárcel Fail2ban.

Ahora, vamos a empezar a asegurar el phpMyAdmin utilizando tres métodos diferentes.

Cambiar la ruta URL de la instalación de phpMyAdmin

La instalación por defecto de phpMyAdmin viene con una configuración adicional para el servidor web apache2, la configuración es el archivo /etc/phpmyadmin/apache.conf. Para cambiar la ruta de instalación por defecto de phpMyAdmin, tendrás que editar la configuración /etc/phpmyadmin/apache2. conf y reiniciar el servicio Apache2.

Edita el archivo de configuración /etc/phpmyadmin/apache.conf utilizando el editor nano.

sudo nano /etc/phpmyadmin/apache.conf

Cambia la opción«Alias /phpmyadmin» por tu nueva ruta de ULR. En el siguiente ejemplo, el phpMyAdmin estará disponible en la ruta URL /padm.

Alias /padm /usr/share/phpmyadmin

Guarda y cierra el archivo cuando hayas terminado.

A continuación, comprueba y verifica la configuración de Apache2 mediante el siguiente comando. Si la configuración es correcta, obtendrás un mensaje de salida como«Sintaxis correcta«.

sudo apchectl configtest

Ahora reinicia el servicio Apache2 para aplicar los nuevos cambios en el archivo /etc/phpmyadmin/apache.conf.

sudo systemctl restart apache2

Vuelve a tu navegador web y visita el phpMyAdmin con la nueva ruta URL /padm (por ejemplo, http://192.168.10.15/padm). Obtendrás el panel de phpMyAdmin en la siguiente captura de pantalla.

cambiar url phpmyadmin

Ahora has cambiado con éxito la instalación de la ruta URL por defecto de phpMyAdmin a la nueva ruta URL /padm.

Asegurar phpMyAdmin con Apache2 Basic Auth

La autentificación básica de Apache2 es un método de autentificación proporcionado por el módulo de Apache mod_basic_auth. Para configurar la autenticidad básica de Apache2, tendrás que generar el archivo de contraseña y configurar el archivo .htaccess en el directorio raíz del documento phpMyAdmin.

Ahora ejecuta el siguiente comando para generar un nuevo archivo de autentificación básica de Apache2 /etc/phpmyadmin/.htpasswd con el nuevo usuario llamado padm. Si no tienes el comando htpasswd, tendrás que instalar el paquete apache2-utils en tu sistema.

sudo htpasswd -c /etc/phpmyadmin/.htpasswd padm

Ahora introduce la contraseña del usuario padm de Apache2 basic auth y repite la contraseña. Esto generará un nuevo archivo de contraseñas /etc/phpmyadmin/.htpasswd.

generar archivo de contraseña apache basic auth

A continuación, edita la configuración /etc/phpmyadmin/apache.conf con el editor nano.

sudo nano /etc/phpmyadmin/apache.conf

Añade la configuración dentro de«<Directorio /usr/share/phpmyadmin>» como se indica a continuación.

<Directory /usr/share/phpmyadmin>
...
...
AllowOverride All

Guarda y cierra el archivo cuando hayas terminado.

A continuación, ejecuta el siguiente comando para habilitar el módulo mod_rewrite de Apache2.

sudo a2enmod rewrite

Crea un nuevo archivo /usr/share/phpmyadmin/.htaccess utilizando el editor nano.

sudo nano /usr/share/phpmyadmin/.htaccess

Añade la siguiente configuración al archivo.

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

Guarda y cierra el archivo cuando hayas terminado.

Ahora reinicia el servicio Apache2 para aplicar los nuevos cambios.

sudo systemctl restart apache2

Por último, vuelve a tu navegador web y actualiza la URL de phpMyAdmin (por ejemplo, http://192.168.10.15/padm). Ahora se te pedirá la autenticación básica de Apache2.

Introduce el usuario padm con tu contraseña y haz clic en Iniciar sesión. Si tu usuario y contraseña coinciden con el archivo de configuración /etc/phpmyadmin/.htpasswd, podrás acceder al panel de control de phpMyAdmin, de lo contrario, recibirás un mensaje de error como«421 no autorizado«.

apache basic auth phpmyadmin

Ahora has asegurado el phpMyAdmin con la autenticación básica de Apache2. Se recomienda utilizar este método con certificados SSL en tu servidor web Apache2.

Bloquear el intento de inicio de sesión de phpMyAdmin con Fail2ban Jail

En este escenario, necesitarás que Fail2ban esté instalado y configurado en tu máquina ubuntu. Utilizando la jaula Fail2ban, limitarás el fallo de autenticación contra el phpMyAdmin y limitarás el ataque de fuerza bruta. El Fail2ban bloqueará cualquier intento de inicio de sesión malicioso detectado en el phpMyAdmin.

El Failban funciona comprobando el archivo de registro de la aplicación, por lo que tendrás que habilitar el archivo de registro para phpMyAdmin.

Edita la configuración de phpMyAdmin /etc/phpmyadmin/config.inc.php utilizando el editor nano.

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

Añade la siguiente configuración al final de la línea. Esto registrará toda la autenticación de phpMyAdmin en el archivo Syslog /var/log/auth.log.

...
...
...
$cfg['AuthLog'] = 'syslog';

Guarda y cierra el archivo cuando hayas terminado.

A continuación, edita la configuración de la jaula Fail2ban /etc/fail2ban/jail. local utilizando el editor nano.

sudo nano /etc/fail2ban/jail.local

Busca la jaula llamada«phpmyadmin-syslog» y añade la opción«enabled = true» para habilitar la jaula.

[phpmyadmin-syslog]
enabled = true
port    = http,https
logpath = %(syslog_authpriv)s
backend = %(syslog_backend)s

Guarda y cierra el archivo cuando hayas terminado.

Ahora reinicia el servicio Fail2ban utilizando el siguiente comando para aplicar la nueva configuración de la jaula.

sudo systemctl restart fail2ban

Para verificar la jaula«phpmyadmin-syslog«, ejecuta los siguientes comandos fail2ban-client.

Comprobación de la lista de jaulas Fail2ban habilitadas.

sudo fail2ban-client status

Comprobando los detalles de la jaula Fail2ban phpmyadmin-syslog.

sudo fail2ban-client status phpmyadmin-syslog

A continuación puedes ver el estado detallado de la jaula phpmyadmin-syslog. En la siguiente captura de pantalla, puedes ver que una dirección IP «192.168.10.1» está bloqueada por Fail2ban.

comprobando la cárcel phpmyadmin

Si compruebas el archivo de registro /var/log/auth.log utilizando el siguiente comando.

cat /var/log/auth.log

Verás los registros de la autenticación de phpMyAdmin a continuación. Puedes ver que la dirección IP«192.168.10.1» se detecta como un inicio de sesión malicioso debido al uso de un usuario y una contraseña incorrectos.

comprobar el registro phpmyadmin syslog

Llegados a este punto, has asegurado el phpMyAdmin usando varios métodos diferentes, otra consideración es usar SSL en cada host virtual de tu servidor. Esto hace que tu phpMyAdmin sea aún más seguro porque el SSL cifrará las conexiones entre tu navegador web y el servidor.

Conclusión

¡Enhorabuena! Ahora has aprendido a instalar y configurar el phpMyAdmin en el último Ubuntu 22.04. Además, has aprendido varios métodos para asegurar la instalación de phpMyAdmin, incluyendo el cambio de la URL de la ruta por defecto, la adición de la autenticación mediante Apache2 basic auth y el bloqueo de los intentos de inicio de sesión maliciosos mediante Fail2ban Jail.

También te podría gustar...