Gratuit

Prix pour cet article

Offert par

Logo - Keleo

Keleo

Software development company founded by Kevin Papst

If you have any question, visit the developers homepage or use the email for direct contact .
A fail2ban compatible plugin, logging failed authentication requests

A Kimai plugin, which logs an error message for every failed login attempt to a dedicated logfile.

This logfile can be analyzed by fail2ban to block access and prevent authentication attacks.

Fail2Ban configurations

You should know how to use and configure fail2ban, we cannot help with that part! Having said that, here are some possible rules for your fail2ban configuration.

First the Kimai specific filter:

#/etc/fail2ban/filter.d/kimai2.conf
[Definition]
failregex = fail2ban.ERROR: <HOST> \[.*\] \[.*\]$

And the additional jail.local for Kimai:

#/etc/fail2ban/jail.local
[kimai2]
enabled   = true
filter    = kimai2
logpath   = /var/www/kimai2/var/log/fail2ban.log
port      = http,https
bantime   = 600
banaction = iptables-multiport
maxretry  = 3

Now touch the file to make sure it exists:

touch /var/www/kimai2/var/log/fail2ban.log

Credits

Installation

Copier les fichiers

Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:

var/plugins/Fail2BanBundle/

Or you can clone it directly to the var/plugins/ directory of your Kimai installation:

cd kimai/var/plugins/
git clone https://github.com/Keleo/Fail2BanBundle.git Fail2BanBundle

The file structure needs to look like this afterwards:

var/plugins/
├── Fail2BanBundle
│   ├── Fail2BanBundle.php
|   └ ... more files and directories follow here ...

Effacer le cache

After uploading the files, Kimai needs to know about the new plugin. It will be found once the cache was re-built. Call these commands from the Kimai directory:

How to reload Kimai cache

bin/console kimai:reload --env=prod

It is not advised, but in case the above command fails you could try:

rm -r var/cache/prod/*

You might have to set file permissions afterwards:

Adjust file permission

You have to allow PHP (your webserver process) to write to var/ and it subdirectories.

Here is an example for Debian/Ubuntu (to be executed inside the Kimai directory):

chown -R :www-data .
chmod -R g+r .
chmod -R g+rw var/

Test Kimai before executing these commands (they are likely not required in a shared-hosting environment). You probably need to prefix them with sudo and the group might be called different than www-data.

Mises à jour

Updating the plugin works exactly like the installation:

  • Delete the directory var/plugins/Fail2BanBundle/
  • Execute all installation steps again:
    • Copier les fichiers
    • Effacer le cache