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:
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:
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!