Seguridad en phpMyAdmin: consejos fundamentales

En nuestros dos últimos posts aprendimos a instalar y usar phpMyAdmin. Entre otras tareas, nos enfocamos en las consultas a una base de datos y la administración de usuarios mediante una interfaz web. A continuación hablaremos sobre la seguridad en phpMyAdmin para asegurar el acceso a la interfaz web. En el próximo post explicaremos cómo cifrar el intercambio de datos que realicemos con el servidor.

Seguridad en phpMyAdmin

Tendremos en cuenta los siguientes puntos fundamentales:

Cambiar la URL de acceso a phpMyAdmin

Supongamos, como mostramos en el post anterior, que hemos instalado phpMyAdmin en un equipo con IP 192.168.0.13. Por defecto, la URL de acceso a la interfaz web de la herramienta será 192.168.0.13/phpmyadmin. Cambiar la última parte de la URL a /dbadmin (por ejemplo) es una manera de hacer que personas no autorizadas la encuentren e intenten ingresar.

Para lograr esto, debemos editar /etc/httpd/conf.d/phpMyAdmin.conf (CentOS) o /etc/phpmyadmin/apache.conf (Debian). Luego de ubicar las dos líneas que comienzan con la directiva Alias debemos comentarlas y agregar un nuevo alias. Después de reiniciar Apache deberemos usar la URL 192.168.0.13/dbadmin para acceder a la interfaz, como vemos en la Fig. 1:

Seguridad en phpMyAdmin: utilizar un alias para acceder a la interfaz web
Figura 1 – Seguridad en phpMyAdmin: utilizar un alias para acceder a la interfaz web

Requerir una contraseña previa para acceder a la interfaz web

Si deseamos ir un paso más allá en proteger el acceso de personas no autorizadas, podemos requerir autenticación antes de siquiera presentar la interfaz. Este es un ejemplo de cómo utilizar la autenticación básica con Apache.

Para empezar, incluiremos el siguiente bloque en el archivo principal de configuración de Apache:

<Directory "/usr/share/phpmyadmin">
    AuthType Basic
    AuthName "Acceso a phpMyAdmin"
    AuthBasicProvider file
    AuthUserFile "/etc/httpd/.passwords""
    Require valid-user
</Directory

Luego de haber creado un usuario y contraseña con htpasswd (por ejemplo, usuario / mipasswordsuperpotente) y de haber reiniciado Apache, solamente podremos acceder a la interfaz web si ingresamos dichas credenciales. En la Fig. 2 podemos ver esto en detalle:

Seguridad en phpMyAdmin: proteger el acceso a la interfaz mediante autenticación básica en Apache
Figura 2 – Seguridad en phpMyAdmin: proteger el acceso a la interfaz mediante autenticación básica en Apache

Si bien los puntos que hemos repasado en este post son importantes, en el próximo veremos cómo proteger los datos que intercambiemos con el servidor. ¡No olviden suscribirse al blog para no perderse detalle!