Mejorando la seguridad de la instalación de phpMyAdmin en Ubuntu Server
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