Mejorando la seguridad de la instalación de phpMyAdmin en Ubuntu Server

Publicado por emontes en

En posts previos cubrimos la instalación de Apache y PHP inicialmente y luego de MySQL y phpMyAdmin, y quedó pendiente mejorar la seguridad de la instalación de phpMyAdmin.

Desafortunadamente algunas versiones más antiguas de phpMyAdmin presentan vulnerabilidades de seguridad serias las cuales incluyen permitir que usuarios remotos eventualmente accedan al usuario root en el servidor privado virtual. Es posible prevenir la mayoría de estos ataques a través de un proceso simple que consiste en asegurar el subdirectorio completo con restricciones nativas de usuario/contraseña de Apache la cual evitarán que estos usuarios remotos intenten explotar dichas vulnerabilidades.

Paso 1: Preparando el archivo .htaccess

Para configurar esto es necesario permitir que el archivo .htaccess funcione dentro del directorio phpmyadmin editando la configuración para Apache de phpMyAdmin con el siguiente comando

sudo nano /etc/phpmyadmin/apache.conf

En la sección Directory, agregue la linea «AllowOverride All» bajo «Directory Index», de tal forma que la sección se vea de esta forma

<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
[...]

Paso 2: Configurando el archivo .htaccess

Ahora que ya permitimos la ejecución del archivo .htaccess, podemos crear usuarios locales los cuales serán requeridos incluso para acceder a la página de administración de phpMyAdmin.

Comencemos creando el archivo .htaccess en el directorio de phpMyAdmin

sudo nano /usr/share/phpmyadmin/.htaccess

Luego es necesario establecer las autorizaciones de usuario dentro del archivo .htaccess. Copie y pegue el siguiente texto dentro de dicho archivo

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.phpmyadmin.htpasswd
Require valid-user

Paso 3: Creando el archivo .htpasswd

Ahora crearemos información de usuario válida la cual utilizará el archivo .htaccess, para lo cual primero es necesario crear el archivo .htpasswd usando al comando htpasswd, el cual encriptará la información de usuario/contraseña de tal forma que no será visible tanto por usuarios locales como por usuarios remotos utilizando como ejemplo el siguiente comando reemplazando «username» por el nombre de usuario que nosotros definamos

sudo htpasswd -c /etc/apache2/.phpmyadmin.htpasswd username

Una vez que presionen ENTER el sistema les pedirá que provean y confirmen la contraseña asociada a dicho usuario. Una vez que la pareja de usuario/contraseña hayan sido grabados en el archivo .htpasswd, será necesario reiniciar Apache

sudo service apache2 restart

Accediendo a phpMyAdmin

El acceso a phpMyAdmin ahora será mucho más seguro ya que sólo podrán acceder los usuarios autorizados por .htaccess e individualizados en el archivo .htpasswd. Cuando intenten ingresar a la página de acceso de phpMyAdmin a través de tudireccionip/phpmyadmin verán una imagen como la siguiente.

Simplemente llena los campos con el nombre de usuario y contraseña generados en los pasos previos. Una vez que lo hayas hecho, podrás acceder con el nombre de usuario y contraseña de phpMyAdmin.

Links:


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *