Segunda capa de seguridad con autenticación básica en phpMyAdmin
La seguridad es una cuestión que nos ocupa y preocupa a todos. Varios son los métodos y procesos para protegernos. Uno de ellos es precisamente el que te muestro en este tip: ¿cómo agregar una segunda capa de seguridad con autenticación básica a phpMyAdmin?
Habilitando la autenticación básica en phpMyAdmin
El proceso que seguiremos a continuación se basa en habilitar la autenticación básica para el directorio donde se encuentra instalado phpMyAdmin. En sistemas Debian y derivados debes agregar las siguientes líneas en el archivo “/etc/apache2/sites-available/000-default.conf”:
1 2 3 4 5 6 |
<Directory /usr/share/phpmyadmin> AuthType Basic AuthName "Acceso Restringido" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> |
Mientras que para CentOS en el archivo “/etc/httpd/conf/httpd.conf” debes agregar:
1 2 3 4 5 6 |
<Directory /usr/share/phpmyadmin> AuthType Basic AuthName "Acceso Restringido" AuthUserFile /etc/httpd/.htpasswd Require valid-user </Directory> |
Generando el usuario y contraseña
Para generar el nombre de usuario y la contraseña de este, debes instalar el paquete apache2-utils en Debian y derivados, mientras que en CentOS el paquete XX. El mismo contiene la herramienta htpasswd que permite alamacenar el nombre de usuario y la contraseña específica de forma encriptada.
Para instalarlo en Debian y derivados:
1 |
$ sudo apt-get install apache2-utils |
Para CentOS:
1 |
$ sudo yum install httpd-utils |
A continuación, genera el usuario y la contraseña para acceder a phpMyAdmin con autenticación básica.
Para Debian y derivados:
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd universod |
Para CentOS:
1 |
$ sudo htpasswd -c /etc/httpd/.htpasswd universod |
Debes especificar la contraseña dos veces. Como medida de seguridad debes cambiar los permisos del archivo generado para que solo los miembros del grupo www-data (Debian y derivados) o Apache (CentOS) puedan leer el archivo.
Para Debian y derivados:
1 2 |
$ sudo chmod 640 /etc/apache2/.htpasswd $ sudo chgrp www-data /etc/apache2/.htpasswd |
Para CentOS:
1 2 |
$ sudo chmod 640 /etc/apache2/.htpasswd $ sudo chgrp apache /etc/httpd/.htpasswd |
Finalmente, reinicia el servicio web. Para Debian y derivados:
1 |
$ sudo systemctl restart apache2 |
Para CentOS:
1 |
$ sudo systemctl restart httpd |
A partir de ahora cada vez que accedas a phpMyAdmin se mostrará un cuadro donde debes especificar el usuario y la contraseña creada anteriormente. Si la autenticación es exitosa podrás iniciar sesión, de lo contrario se mostrará algo como esto:

phpMyAdmin acceso no autorizado
Conclusiones
En este sencillo tip has aprendido a agregar una segunda capa de seguridad a phpMyadmin, con lo que logras eliminar los ataques de fuerza bruta sobre la interfaz web de phpMyAdmin. Si quieres puedes habilitar el soporte para HTTPS en phMyAdmin, con esto lograrás que los datos de inicio de sesión viajen de forma cifrada y segura.
la ruta de estos cambios es diferente actualmente 09/19
para modificar y tome efecto el acceso es en /etc/apache2/conf-abailable/phpmyadmin.conf
Ahi se agrega:
AuthType Basic
AuthName «Acceso Restringido»
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
lo demas es igual