Saltar al contenido

Filtro fail2ban personalizado para intentos de fuerza bruta de phpMyadmin

Este dilema se puede abordar de variadas formas, por lo tanto te damos la que para nosotros es la respuesta más completa.

Solución:

Eso está bien, pero ¿por qué no usar la funcionalidad de apache para registrar inicios de sesión fallidos?

Agregue estas líneas a su configuración de Apache (es decir: /etc/apache2/conf.d/phpmyadmin.conf) en la sección correspondiente de VirtualHost:

LogFormat "%h %l %u %t "%r" %>s %b "%Refereri" "%User-Agenti" %userIDn %userStatusn" pma_combined
CustomLog /var/log/apache2/phpmyadmin_access.log pma_combined

Luego crea el filtro fail2ban:

/etc/fail2ban/filter.d/phpmyadmin.conf

[Definition]
denied = mysql-denied|allow-denied|root-denied|empty-denied
failregex = ^ -.*(?:%(denied)s)$
ignoreregex =

Ahora agregue la cárcel a /etc/fail2ban/jail.local

[phpmyadmin]
enabled = true
port = http,https
filter = phpmyadmin
logpath = /var/log/apache2/phpmyadmin_access.log

Reinicie apache y fail2ban:

service  apache2 reload
service fail2ban reload

y ya está, no hay necesidad de scripts php, etc.

  1. Debe cambiar su secuencia de comandos para incluir la marca de tiempo en los archivos de registro. Sin esto, fail2ban no funcionará

  2. usar fail2ban-regex /var/log/phpmyadmin_auth.log /etc/fail2ban/filter.d/phpmyadmin.conf para verificar su expresión regular primero.

  3. Podría iniciar fail2ban con éxito usando su configuración original (antes de jail.local)

    Oct  7 00:42:07 hostname yum: Installed: python-inotify-0.9.1-1.el5.noarch 
    Oct  7 00:42:08 hostname yum: Installed: fail2ban-0.8.4-29.el5.noarch
    Oct  7 00:42:10 hostname yum: Installed: phpMyAdmin-2.11.11.3-2.el5.noarch
    Oct  7 01:01:03 hostname fail2ban.server : INFO   Changed logging target to SYSLOG for Fail2ban v0.8.4
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Creating new jail 'phpmyadmin'
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' uses Gamin
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set maxRetry = 2
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set findtime = 600
    Oct  7 01:01:03 hostname fail2ban.actions: INFO   Set banTime = 600
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Creating new jail 'ssh-iptables'
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'ssh-iptables' uses Gamin
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Added logfile = /var/log/secure
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set maxRetry = 5
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set findtime = 600
    Oct  7 01:01:03 hostname fail2ban.actions: INFO   Set banTime = 600
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' started
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'ssh-iptables' started
    Oct  7 01:10:54 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' stopped
    Oct  7 01:10:55 hostname fail2ban.jail   : INFO   Jail 'ssh-iptables' stopped
    Oct  7 01:10:55 hostname fail2ban.server : INFO   Exiting Fail2ban
    Oct  7 01:10:56 hostname fail2ban.server : INFO   Changed logging target to SYSLOG for Fail2ban v0.8.4
    Oct  7 01:10:56 hostname fail2ban.jail   : INFO   Creating new jail 'phpmyadmin'
    Oct  7 01:10:56 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' uses Gamin
    Oct  7 01:10:56 hostname fail2ban.filter : INFO   Added logfile = /var/log/phpmyadmin_auth.log
    
  4. Una vez que las expresiones regulares estén en su lugar, puede usar la auditoría para ver si fail2ban accede o no a su archivo.

solía auditctl -w /var/log/phpmyadmin_auth.log -p warx -k phpmyadmin_fail2ban

Te mostramos las reseñas y valoraciones de los usuarios

Al final de la web puedes encontrar las interpretaciones de otros gestores de proyectos, tú también tienes el poder mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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