• /etc/fail2ban/filter.d/ppp.conf
    [Definition]
    failregex = CTRL: Client <HOST> control connection finished
    ignoreregex =
  • /etc/fail2ban/jail.local
    [ppp]
    enabled  = true
    port     = 1723
    protocol = tcp
    filter   = ppp
    logpath  = /var/log/ppp.log
    bantime=6
    findtime=30
    maxretry=4

No es la solución más efectiva, porque de esta manera si un cliente hace login/logoff 6 veces correctamente en menos de 30 segundos (algo tampoco muy normal), será baneado; pero es que con la información que da el log del pptpd no encontré otra solución.

NOTA: para que funcione, el log del pptpd debe ser bastante completo. Hay que poner la variable «debug»en el archivo de config del pptpd

BONUS – mandando correos sin sendmail

Si queremos que fail2ban mande correos y no tenemos sendmail instalado ni lo queremos instalar, podemos optar por usar el programa swaks (apt-get install swaks), que sirve precisamente para eso, para mandar correos desde el equipo local sin tener corriendo un mta como sendmail.

Para ello, una vez instalado swaks, creamos los siguientes archivos para que fail2ban haga uso de ellos:

[root@server]# cat /etc/fail2ban/action.d/swaks-whois-lines.conf

[Definition]
actionstart = 
actionstop = 
actioncheck = 
actionban = printf %%b "Subject: [Fail2Ban] <name>: banned <ip>
            From: Fail2Ban <<sender>>
            To: <dest>\n
            Hi,\n
            The IP <ip> has just been banned by Fail2Ban after
            <failures> attempts against <name>.\n\n
            Here are more information about <ip>:\n
            `/usr/bin/whois <ip>`\n\n
            Lines containing IP:<ip> in <logpath>\n
            `/bin/grep '\<<ip>\>' <logpath>`\n\n
            Regards,\n
            Fail2Ban" | swaks --to <dest> --server emailserver -d -
actionunban = printf %%b "Subject: [Fail2Ban] <name>: unbanned <ip>
             From: Fail2Ban <<sender>>
             To: <dest>\n
             Hi,\n
             The IP <ip> has just been unbanned by Fail2Ban\n\n
             Here are more information about <ip>:\n
             `/usr/bin/whois <ip>`\n\n
             Lines containing IP:<ip> in <logpath>\n
             `/bin/grep '\<<ip>\>' <logpath>`\n\n
             Regards,\n
             Fail2Ban" | swaks --to <dest> --server emailserver -d -

[Init]
name = default
dest = root
sender = fail2ban
logpath = /dev/null

Cambiar el valor de –server por el correspondiente

[root@server]# cat /etc/fail2ban/action.d/swaks-whois-lines.conf |egrep -v '^#'

[Definition]
actionstart = 
actionstop = 
actioncheck = 
actionban = printf %%b "Subject: [Fail2Ban] <name>: banned <ip>
            From: Fail2Ban <<sender>>
            To: <dest>\n
            Hi,\n
            The IP <ip> has just been banned by Fail2Ban after
            <failures> attempts against <name>.\n\n
            Here are more information about <ip>:\n
            `/usr/bin/whois <ip>`\n\n
            Lines containing IP:<ip> in <logpath>\n
            `/bin/grep '\<<ip>\>' <logpath>`\n\n
            Regards,\n
            Fail2Ban" | swaks --to <dest> --server emailserver -d -
actionunban = printf %%b "Subject: [Fail2Ban] <name>: unbanned <ip>
             From: Fail2Ban <<sender>>
             To: <dest>\n
             Hi,\n
             The IP <ip> has just been unbanned by Fail2Ban\n\n
             Here are more information about <ip>:\n
             `/usr/bin/whois <ip>`\n\n
             Lines containing IP:<ip> in <logpath>\n
             `/bin/grep '\<<ip>\>' <logpath>`\n\n
             Regards,\n
             Fail2Ban" | swaks --to <dest> --server emailserver -d -

[Init]
name = default
dest = root
sender = fail2ban
logpath = /dev/null

Cambiar el valor de ‘mta’, ‘action’ y ‘destemail’:

[root@server /]# egrep "^mta" /etc/fail2ban/jail.conf
mta = swaks
[root@server /]# egrep "^action =" /etc/fail2ban/jail.conf 
action = %(action_mwl)s
[root@server /]# egrep "^destemail =" /etc/fail2ban/jail.conf 
destemail = email@address.com

Reiniciamos el demonio y listo

Fail2ban + pptpd
Etiquetado en:    

Deja una respuesta

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