phpMyAdmin es una aplicación gratuita basada en PHP de código abierto diseñada para simplificar la administración de servidores MySQL y MariaDB a través de una interfaz basada en web.
phpMyAdmin le permite administrar bases de datos MySQL, cuentas de usuario y privilegios, ejecutar sentencias SQL, importar y exportar datos en una amplia variedad de formatos de datos y mucho más.
Este tutorial describe los pasos necesarios para instalar y proteger phpMyAdmin en Debian 9 con el servidor web Apache.
Requisitos previos #
Asegúrese de cumplir con los siguientes requisitos antes de continuar con este tutorial:
- Tenga LAMP (Linux, Apache, MySQL y PHP) instalado en su servidor Debian.
- Iniciar sesión como usuario con privilegios sudo.
Aunque es opcional, se recomienda acceder a su instalación de phpMyAdmin a través de HTTPS. Si su dominio aún no está protegido por un SSL, puede seguir esta guía y asegurar su Apache con Let's Encrypt en Debian 9.
Instalando phpMyAdmin #
Realice los siguientes pasos para instalar phpMyAdmin en Debian 9:
-
Actualice el índice de paquetes y actualice los paquetes del sistema a las últimas versiones:
sudo apt update && sudo apt upgrade
-
Instale el paquete phpMyAdmin desde los repositorios predeterminados de Debian escribiendo:
sudo apt install phpmyadmin
El instalador le pedirá que elija el servidor web que debe configurarse automáticamente para ejecutar phpMyAdmin, elija apache presionando
Space
y luegoEnter
.A continuación, se le preguntará si desea utilizar
dbconfig-common
para configurar la base de datos, seleccioneYes
y pulsaEnter
.Ingrese una contraseña para que phpMyAdmin se registre en la base de datos, seleccione
OK
y presionaEnter
.Confirme la contraseña, seleccione
OK
y presionaEnter
. -
Una vez finalizado el proceso de instalación, reinicie Apache para que los cambios surtan efecto:
sudo systemctl restart apache2
Creación del número de usuario administrativo de MySQL
En los sistemas Debian que ejecutan MariaDB 10.1 (y versiones posteriores), el usuario raíz está configurado para usar el auth_socket
método de autenticación por defecto.
El auth_socket
El complemento autentica a los usuarios que se conectan desde el host local a través del archivo de socket de Unix. Esto significa que no puede autenticarse como raíz proporcionando una contraseña.
En lugar de cambiar el método de autenticación para el usuario raíz de MySQL, crearemos un nuevo usuario administrativo de MySQL. Este usuario tendrá los mismos privilegios que el usuario raíz y se configurará para usar mysql_native_password
método de autenticación.
Usaremos este usuario para iniciar sesión en el panel de phpMyAdmin y realizar tareas administrativas en nuestro servidor MySQL o MariaDB.
Comience por iniciar sesión en el servidor MySQL como usuario root:
sudo mysql
Desde el shell de MySQL, ejecute los siguientes comandos que crearán un nuevo usuario administrativo y otorgarán los permisos apropiados:
Nombramos al usuario administrativoCREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';
GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
padmin
. Puede usar cualquier nombre que desee, solo asegúrese de establecer una contraseña segura. Accediendo a phpMyAdmin #
Para acceder a la interfaz de phpMyAdmin, abra su navegador favorito y escriba el nombre de dominio de su servidor o la dirección IP pública seguida de /phpmyadmin
:
https://your_domain_or_ip_address/phpmyadmin
Ingrese las credenciales de inicio de sesión del usuario administrativo que creó anteriormente y haga clic en Go
.
Una vez que inicie sesión, verá el panel de control de phpMyAdmin, que se verá así:
Asegurando phpMyAdmin #
Para agregar una capa adicional de seguridad, protegeremos con contraseña el directorio phpMyAdmin configurando una autenticación básica.
Primero crearemos un archivo de contraseñas con los usuarios usando htpasswd
herramienta que viene con el paquete Apache. Guardaremos el .htpasswd
archivo en /etc/phpmyadmin
directorio:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin
En este ejemplo estamos creando un usuario llamado padmin
. Puede elegir cualquier nombre de usuario, no tiene que ser el mismo que el usuario administrativo de MySQL.
El comando anterior le pedirá que ingrese y confirme la contraseña del usuario.
New password:
Re-type new password:
Adding password for user padmin
Si desea agregar un usuario adicional, puede usar el mismo comando sin -c
bandera:
sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2
El siguiente paso es configurar Apache para proteger con contraseña el directorio phpMyAdmin y usar .htpasswd
archivo.
Para hacerlo, abra el phpmyadmin.conf
archivo que se creó automáticamente durante la instalación de phpMyAdmin:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Y edite/inserte las siguientes líneas resaltadas en amarillo:
/etc/apache2/conf-disponible/phpmyadmin.conf<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # edit this line
DirectoryIndex index.php
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
<IfModule mod_php5.c>
...
Guarde y cierre el archivo y reinicie Apache para que los cambios surtan efecto:
sudo systemctl restart apache2
Ahora, al acceder a su phpMyAdmin, se le pedirá que ingrese las credenciales de inicio de sesión del usuario que creó anteriormente:
https://your_domain_or_ip_address/phpmyadmin
Después de ingresar la autenticación básica, será llevado a la página de inicio de sesión de phpMyAdmin donde deberá ingresar sus credenciales de inicio de sesión de usuario administrativo de MySQL.
También es una buena idea cambiar el/phpmyadmin
alias a algo más único y seguro.