phpMyAdmin es una herramienta de software de código abierto que se utiliza para administrar bases de datos MySQL/MariaDB. Proporciona una manera fácil de interactuar con MySQL a través de un navegador web. phpMyAdmin es muy útil para los usuarios que no se sienten cómodos administrando sus datos desde la línea de comandos, por lo que es esencial para cualquier administrador de sistemas proteger phpMyAdmin de diferentes tipos de ataques.
En este tutorial, le mostraremos cómo instalar y asegurar phpMyAdmin en CentOS 8.
Requisitos
- Un nuevo CentOS 8 VPS en la plataforma en la nube de Atlantic.net.
- Una contraseña raíz configurada en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
Paso 2:instale Apache, MariaDB y PHP
Antes de comenzar, instale Apache, MariaDB, PHP y otras extensiones de PHP requeridas con el siguiente comando:
dnf install httpd mariadb-server php php-cli php-json php-mbstring php-pdo php-pecl-zip php-mysqlnd -y
Después de instalar todos los paquetes, puede continuar con el siguiente paso.
Paso 3:establezca la contraseña raíz de MariaDB
Primero, inicie el servicio MariaDB y habilítelo para que se inicie en el momento del arranque con el siguiente comando:
systemctl start mariadb systemctl enable mariadb
A continuación, configure la contraseña raíz de MySQL usando el siguiente script:
mysql_secure_installation
Este script establecerá la contraseña raíz de MySQL, eliminará a los usuarios anónimos, no permitirá el inicio de sesión raíz de forma remota y eliminará la base de datos de prueba y accederá a ella, como se muestra a continuación:
Ingrese la contraseña actual para root (ingrese para ninguno):
Set root password? [Y/n] Y New password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Paso 4:instalar phpMyAdmin
Primero, descargue la última versión de phpMyAdmin al directorio raíz web de Apache usando el siguiente comando:
cd /var/www/html wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip
Una vez descargado, descomprima el archivo descargado con el siguiente comando:
unzip phpMyAdmin-4.9.4-all-languages.zip
A continuación, cambie el nombre del directorio extraído a phpmyadmin como se muestra a continuación:
mv phpMyAdmin-4.9.4-all-languages phpmyadmin
A continuación, cambie la propiedad del directorio phpmyadmin al usuario de apache:
chown -R apache:apache /var/www/html/phpmyadmin
A continuación, cambie el nombre del archivo config.sample.inc.php:
cd /var/www/html/phpmyadmin mv config.sample.inc.php config.inc.php
A continuación, edite el archivo y defina su contraseña segura:
nano config.inc.php
Busque la línea a continuación y actualice con su contraseña segura, como se muestra a continuación:
$cfg['blowfish_secret'] = 'your-secure-password';
Guarde y cierre el archivo. Luego, importe las tablas para phpMyAdmin con el siguiente comando:
mysql < sql/create_tables.sql -u root -p
Una vez que haya terminado, puede continuar con el siguiente paso.
Paso 5:configurar Apache para phpMyAdmin
A continuación, cree un archivo de configuración de host virtual de Apache para phpMyAdmin:
nano /etc/httpd/conf.d/phpmyadmin.conf
Agregue las siguientes líneas:
Alias /phpmyadmin /var/www/html/phpmyadmin <Directory /var/www/html/phpmyadmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /var/www/html/phpmyadmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
Guarde y cierre el archivo. Luego, inicie el servicio Apache y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start httpd systemctl enable httpd
Ahora, abra su navegador web y visite la URL http://your-server-ip/phpmyadmin. Debería ver la interfaz web de phpMyAdmin en la siguiente pantalla:
Inicie sesión con sus credenciales de MySQL creadas anteriormente.
Paso 6:proteger phpMyAdmin
En esta sección, mostraremos diferentes formas de asegurar su interfaz web phpMyAdmin.
Cambiar la ubicación de acceso de phpMyAdmin
Es una buena idea cambiar la URL de acceso de su interfaz phpMyAdmin. Puede cambiarlo editando el archivo phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Busque la siguiente línea:
Alias /phpmyadmin /var/www/html/phpmyadmin
Reemplácelo con la siguiente línea:
Alias /securelocation /var/www/html/phpmyadmin
Guarde y cierre el archivo, luego reinicie el servicio Apache para implementar los cambios:
systemctl restart httpd
Ahora puede acceder a la interfaz de phpMyAdmin usando la URL http://your-server-ip/securelocation.
Permitir phpMyAdmin desde una IP específica
Siempre es una buena idea permitir que phpMyAdmin solo sea accesible desde una dirección IP específica.
Para hacerlo, abra el archivo phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Encuentra las siguientes líneas:
<RequireAny> Require all granted </RequireAny>
Reemplácelo con lo siguiente:
<RequireAny> Require ip your-client-ip-address Require ip ::1 </RequireAny>
Guarde y cierre el archivo, luego reinicie el servicio Apache para implementar los cambios:
systemctl restart httpd
Su interfaz phpMyAdmin ahora solo es accesible desde una dirección IP específica.
Proteger con contraseña la interfaz de phpMyAdmin
También puede agregar una capa adicional de protección con contraseña en phpMyAdmin configurando la autenticación básica.
Primero, cree un archivo de autenticación usando el siguiente comando:
htpasswd -c /etc/httpd/.htpasswd phpadmin
Proporcione una contraseña segura como se muestra a continuación:
New password: Re-type new password: Adding password for user phpadmin
A continuación, cree el archivo .htaccess dentro del directorio phpmyadmin:
nano /var/www/html/phpmyadmin/.htaccess
Agregue las siguientes líneas:
AuthType basic AuthName "Authentication Required" AuthUserFile /etc/httpd/.htpasswd Require valid-user
Guarde y cierre el archivo cuando haya terminado.
Luego, edite el archivo phpmyadmin.conf y configure Apache para usar el archivo .htpasswd.
nano /etc/httpd/conf.d/phpmyadmin.conf
Agregue las siguientes líneas debajo de la línea "AddDefaultCharset UTF-8":
AllowOverride All
Guarde el archivo, luego reinicie el servicio Apache para implementar los cambios:
systemctl restart httpd
Paso 7:Pruebe phpMyAdmin
En este punto, la interfaz de phpMyAdmin está protegida con una capa adicional de protección con contraseña. Para probarlo, abra su navegador web y escriba la URL http://your-server-ip/securelocation. Se le pedirá que proporcione las credenciales de inicio de sesión que creamos anteriormente:
Escriba su nombre de usuario y contraseña y haga clic en Aceptar botón. Será redirigido a la página de inicio de sesión de phpMyAdmin:
Proporcione su nombre de usuario y contraseña de MySQL, luego haga clic en Ir botón. Debería ver su interfaz web phpMyAdmin en la siguiente pantalla:
Conclusión
En la guía anterior, aprendimos cómo instalar y asegurar phpMyAdmin en CentOS 8. Su interfaz de phpMyAdmin ahora está protegida con protección de contraseña adicional. Puede usar este método para asegurar un servidor bajo un plan de hospedaje VPS de Atlantic.Net.
Obtenga más información sobre nuestros servicios de alojamiento VPS y servidores privados virtuales.