дата публикации 07.04.2018
Настройка fail2ban для redmine
Дружим между собой fail2ban и redmine для защиты от брутфорса.
Исходные данные: Сервер centos 7, redmine установлен в папку /opt/redmine-3.4.4
Установка:
Устанавливаем на сервер epel репозиторий, обновляемся и устанавливаем fail2ban:
# yum install epel-release
# yum update
# yum install fail2ban fail2ban-systemd
Настройка:
Создаем файл конфигурации для redmine:
# touch /etc/fail2ban/filter.d/redmine.conf
# nano /etc/fail2ban/filter.d/redmine.conf
[Definition]
failregex = Failed [-/\w]+ for .* from
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
Создаем файл jail.local и добавляем в него строки:
# touch /etc/fail2ban/jail.local
# nano /etc/fail2ban/jail.local
[redmine]
enabled = true
filter = redmine
port = 88
action = iptables[name=redmine, port=88, protocol=tcp]
backend = polling
logpath = /opt/redmine-3.4.4/log/production.log
maxretry = 3
findtime = 600
bantime = 86400
logencoding = utf-8
Чтоб fail2ban смог прочитать дату и время в логе, нужно поменять формат лога. Добавим в файл environment.rb строки
# nano /opt/redmine-3.4.4/config/environment.rb
class Logger
def format_message(severity, timestamp, progname, msg)
"#{timestamp} (#{$$}) #{msg}\n"
end
end
Перезагрузим nginx, в моем случае это
# /opt/nginx/sbin/nginx -s reload
Стартуем fail2ban и не забываем добавить в автозагрузку:
# systemctl start fail2ban
# systemctl enable fail2ban
Полезные команды:
Для проверки правильности работы конфигурационного файла, можно выполнить команду
# fail2ban-regex /opt/redmine-3.4.4/log/production.log /etc/fail2ban/filter.d/redmine.conf