====== fail2ban ======
===== install =====
apt install fail2ban
===== filter =====
define new filter
[Definition]
failregex = ^ .+ /auth/token/v2 HTTP/1.[0-9]" 401
ignoreregex =
test filter
fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/giano-login.conf --print-all-matched
===== action =====
[Definition]
actionstart = /usr/local/bin/telegram-send -g --format markdown "`uname -n`: [Fail2Ban] jail è stata avviata"
actionstop = /usr/local/bin/telegram-send -g --format markdown "`uname -n`: [Fail2Ban] jail è stata fermata"
actioncheck =
actionban = /usr/local/bin/telegram-send -g --format markdown "`uname -n`: [Fail2Ban] IP è stato bannato dopo tentativi falliti dalla jail "
actionunban =
[Init]
init = 'Fail2Ban Telegram plugins activated"
===== jail =====
[giano-login]
enabled = true
filter = giano-login
port = http,https
logpath = /var/log/nginx/*access*.log
findtime = 60
bantime = 6000
maxretry = 3
action = %(action_)s
telegram[name=GIANO]
===== test =====
test
fail2ban-client -d
restart service to apply filter and jail
systemctl restart fail2ban
===== status =====
fail2ban-client status giano-login
===== unban =====
fail2ban-client set giano-login unbanip IPADDRESS
===== telegram action =====
pip install telegram-send
create configuration file with token and chat id
[telegram]
chat_id =
token =
test (-g option to use /etc/telegram-send.con)
telegram-send -g "hello, world"