Как подружить tt-rss и fail2ban

Усложняем подбор пароля к учётным записям tt-rss с помощью fail2ban.

Сервис для чтения RSS-лент Tiny Tiny RSS — замечательная штука, во многом лучше всяких Feedly и тем более давно почившего Google Reader. Но есть у него один недостаток: по умолчанию никакой защиты от перебора пароля нет.

К счастью, можно подружить fail2ban и tt-rss. Для этого нужно выполнить всего два шага.

1. В config.php, лежащем в каталоге RSS-ридера, измените место хранения лога с sql на syslog:

define('LOG_DESTINATION', 'syslog');

Тогда все неудачные попытки залогиниться будут фиксироваться в /var/log/syslog примерно в таком виде:

May 27 21:36:45 имя_сервера ool www: [tt-rss] E_USER_WARNING (512) (classes/handler/public.php:505) Failed login attempt for логин from IP

2. Нужно научить fail2ban отлавливать эти сообщения и банить злостных хакеров.

В /etc/fail2ban/fail.local (если нет такого файла, создайте) вставьте:

[tt-rss]
enabled = true
filter = tt-rss
port = http,https
logpath = /var/log/syslog
findtime = 60
bantime = 6000
maxretry = 3

Если на вашем сервере висят какие-то другие службы на портах, отличных от 80 и 443, добавьте их в параметр port, чтобы максимально усложнить жизнь атакующему.