Como securizar phpmyadmin

Es costumbre en un servidor web, ya sea un VPS, o bien un hosting compartido (shared hosting), instalar phpMyAdmin para gestionar las bases de datos, MySQL o MariaDB, incluso viene de serie instalado. Aunque si solo es para dar de alta el usuario y la base para cierto CMS como puede ser WordPress, es una tontería instalarlo, en este artículo tienes como dar de alta un nuevo usuario con su correspondiente base de datos, desde la línea de comandos. Al margen de que decidas instalarlo o no, lo que es una autentica locura es dejar la puerta abierta al panel de control phpMyAdmin, de forma que cualquier intruso intente ataques de fuerza bruta contra la url de tu dominio, escribiendo la ruta donde escucha por defecto esta aplicación:

Más locura todavía dejar abierto phpMyAdmin sin cifrado, y acceder vía HTTP en lugar de HTTPS:

El que avisa no es traidor, no intentes acceder a cualquiera de nuestros dominios/phpmyadmin o tu IP será baneada, dado que lo que describimos en este artículo es sólo una de las protecciones que tenemos implementadas, si te pasas de listo intentando acceder 5 veces a la url por defecto de phpMyAdmin serás baneado!

A lo que vamos. Normalmente al instalar la pila LAMP, entre ellos el panel phpmyadmin, en la configuración de Apache se crea un enlace a la configuración del citado panel, dos directorios más arriba. Os mostramos un entorno por defecto:


cd /etc/apache2/conf.d

/etc/apache2/conf.d# ls -ltr

...

lrwxrwxrwx 1 root root   28 oct 30 10:56 phpmyadmin.conf -> ../../phpmyadmin/apache.conf

...

Si editas o muestras el enlace/fichero anterior veras que en una de sus primeras líneas reza lo siguiente:


Alias /phpmyadmin /usr/share/phpmyadmin

URL por defecto al panel phpMyAdmin

URL por defecto al panel phpMyAdmin, conocida por toda la comunidad!

Lo primero que hay que hacer, es borrar este enlace y sobreescribir la configuración de apache2.


/etc/apache2/conf.d# ls -ltr

...

lrwxrwxrwx 1 root root 28 oct 30 10:56 phpmyadmin.conf -> ../../phpmyadmin/apache.conf

...

/etc/apache2/conf.d# rm phpmyadmin.conf

Una vez borrado, editamos el sitio por defecto para SSL, que si no tienes activo, deberías activar. En su defecto el default normal, y añadimos un alias parecido pero solamente conocido por el sysadmin:


cd /etc/apache2/sites-available

/etc/apache2/sites-available# ls -l
...
-rw-r--r-- 1 root root 2415 jul 29 20:38 default
-rw-r--r-- 1 root root 16572 ago 7 2014 default-ssl

...

/etc/apache2/sites-available# nano default-ssl

A nivel VirtualHost, añadimos el mencionado alias:


...
Alias /panelwtf "/usr/share/phpmyadmin/"
...
</VirtualHost>

Para que los cambios tengan efecto, recargamos la configuración de apache2:


service apache2 reload

A partir de ahora accedemos a phpMyAdmin desde esta otra url:

O preferiblemente:

coding-699318_640

Esperamos sea de vuestro agrado y utilidad, nos vemos!

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.