Proteger acceso a phpmyadmin con fail2ban

por | 3 febrero, 2018

Tengo un servidor Linux (Debian) con Apache y phpmyadmin para la gestión de bases de datos. ¿Como puedo hacer para bloquear los intentos fallidos de login en phpmyadmin?. Necesito protegerme de posibles atacantes que utilizan técnicas de fuerza bruta para descubrir mis contraseñas. ¿Cómo puedo banear las IPs de los intrusos durante un tiempo definido por mi, ¿que software necesito para conseguirlo?. ¿Como puedo proteger acceso a phpmyadmin con Fail2ban?.

Proteger acceso a WordPress con Fail2ban

Proteger acceso a phpmyadmin con fail2ban

En esta entrada respondemos a estas preguntas con la mejor solución para proteger phpmyadmin contra ataques de fuerza bruta. Este tutorial de seguridad está destinado a aquellos sysadmins que trabajan con Linux, con un servidor web Apache y gestionan sus bases de datos con phpmyadmin.

Requisitos previos:

  • Sistema Operativo Linux (probado en Debian 8 Jessie)
  • Apache2 (probado en versión 2.4.10)
  • Servidor MYSQL (probado en mariadb-server-10.0)
  • phpMyAdmin (probado en versión 4.2)

 

Configurar phpMyAdmin como Host Virtual en Apache

Lo primero que necesitamos hacer para proteger nuestra instalación de phpMyAdmin es configurarlo como Host Virtual en Apache. De este modo podremos monitorear los accesos fallidos a través de un log, el cual usaremos posteriormente para detectar los ataques y banear las IPs. Crearemos un Host Virtual apuntando a la carpeta “/usr/share/phpmyadmin”. Copiamos toda la configuración para dicho host desde “/etc/apache2/conf-enabled/phpmyadmin.conf”. Ahora agregamos las siguientes líneas en el host virtual. A continuación os muestro una pantalla del Virtual Host con dichas líneas incluidas. He borrado la información del host por motivos obvios. En esta entrada no voy a ir muy al detalle en la creación del VirtualHost, si alguien tiene problemas para realizarlo, existen numerosos tutoriales en la web.

Ejemplo configuración VirtualHost

Nota: En mi caso estoy utilizando un subdominio que he borrado en el ejemplo.

Eliminar configuración antigua de phpmyadmin

Para evitar los accesos a phpMyAdmin con la manera tradicional, osea, “http://dominio/phpmyadmin”, borramos el enlace simbólico que se encuentra en /etc/apache2/conf-enabled/phpmyadmin.conf. Con esto, el acceso a phpMyAdmin se va a limitar al Host Virtual que hemos creado, lo que nos asegura que podremos bloquear todos los intentos fallidos a dicha aplicación.

Creamos el filtro para fail2ban

Creamos fichero “phpmyadmin.conf” en “/etc/fail2ban/filter.d/”, el cual debe contener las siguientes líneas que se encargarán de filtrar el log con los intentos fallidos de login en phpMyAdmin.

Agregamos la siguientes líneas al fichero de configuración (phpmyadmin.conf) y guardamos los cambios.

Creamos el jail para fail2ban

Ahora solo nos falta crear el jail para fail2ban, que va a contener la configuración sobre las condiciones que se tienen que dar para banear una IP. Para ello creamos el archivo “phpmyadmin.conf” en “/etc/fail2ban/jail.d”, que debe contener las líneas a continuación.

Agregamos el siguientes líneas al archivo de configuracióni (jail.conf) y guardamos.

Por último reiniciamos servicio y ya podemos probar si funciona, para ello, simplemente tratamos de loguearnos un par de veces en phpmyadmin.

Entradas relacionadas

Proteger acceso a webmin con fail2ban Tengo un servidor Linux y utilizo webmin para la gestión del mismo. Quiero proteger el acceso a webmin ante ataques de fuerza bruta. ¿Como puedo bloqu...
Proteger acceso a WordPress con Fail2ban Tengo un blog en WordPress alojado en un servidor Linux y quiero protegerlo contra ataques de fuerza bruta. ¿Como puedo bloquear los intentos fallidos...
Envío de avisos Fail2ban con Gmail Si utilizas Fail2ban para bloquear los ataques por fuerza bruta en tu servidor, probablemente estarás interesado en recibir un correo con cada acción ...

Deja un comentario

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

*