ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Настройка + активирование Monit Brute Force Protection с Fail2ban

Настройка + активирование Monit Brute Force Protection с Fail2ban

Monit является отличным инструментом для WordPress, который будет контролировать ваши основные услуги, такие как nginx, MariaDB (MySQL), php5-fpm, Varnish, Redis, memcached и в основном все работает на вашем VPS или выделенном сервере. Monit позволяет вести белый список, так что только определенным IP – адресам или динамическим адресам разрешен доступ к веб – интерфейсу Monit. Если вы хотите получить доступ к Monit с других компьютеров и не хотите, чтобы эти IP – адреса были в белом списке, вы можете использовать fail2ban чтобы блокировать попытки грубой силы атаки пользователей.

Настройка + активирование Monit Brute Force Protection с Fail2ban

Если вы хотите иметь возможность получить информацию о доступе с любого компьютера, то вы можете проверить ваш журнал Monit (/var/log/monit.log)

cat /var/log/monit.log

Неудачные попытки входа будут выглядеть следующим образом

Warning: Client '192.168.55.2' supplied unknown user 'destroyer' accessing monit httpd
Warning: Client '192.168.55.2' supplied wrong password for user 'andreyex' accessing monit httpd

Обновите свои репозитории и установите fail2ban

sudo apt-get update
sudo apt-get install fail2ban -y

Создание Monit Fail2ban Filter

Создание фильтра Monit

sudo nano /etc/fail2ban/filter.d/monit-auth.conf

Monit и регулярное выражение fail2ban отрабатывают, когда совпадают оба неудачных попыток входа: неправильные пароли и неизвестные пользователи.

[Definition]
failregex = Warning\: Client '<HOST>' supplied.* accessing monit httpd

Теперь вам нужно воспроизвести несколько неудачных попыток входа для файла журнала Monit. Введите правильное имя пользователя, но неверный пароль и ошибочное имя пользователя и правильный пароль.

Вы можете проверить фильтр регулярных выражений Fail2ban, созданный с помощью этой команды

fail2ban-regex /var/log/monit.log /etc/fail2ban/filter.d/monit-auth.conf

Вы получите хороший маленький отчет

Запуск теста
=============

Use failregex file : /etc/fail2ban/filter.d/monit-auth.conf
Use log file : /var/log/monit.log

Результаты
=======

Failregex: 19 total
|- #) [# of hits] regular expression
| 1) [19] Warning\: Client '<HOST>' supplied.* accessing monit httpd
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
| [74] WEEKDAY MONTH Day Hour:Minute:Second
`-

Lines: 74 lines, 0 ignored, 19 matched, 55 missed

Создание Fail2ban Jail для Monit

Создайте папку jail Fail2ban в случае, если она не существует

sudo mkdir -p /etc/fail2ban/jail.d

Создайте конфигурацию Fail2ban jail для Monit.

sudo nano /etc/fail2ban/jail.d/monit-auth.conf

Вставьте этот фильтр Monit Fail2ban jail, который отслеживает файл журнала Monit и запрещает пользователям на порту 2812, если есть 3 неудачных попыток входа в систему. Пользователям включается запрет в течение 60 секунд, которые Вы можете увеличить.

[monit-auth]
enabled = true
filter = monit-auth
port = 2812
logpath = /var/log/monit*.log
bantime = 60
maxretry = 3

 

Теперь вы можете перезапустить fail2ban

sudo service fail2ban restart

Теперь защита Monit от перебора настроена и включена с помощью fail2ban.

Проверка текущего статуса Fail2ban защиты MONIT Brute Force

Вы можете просмотреть текущие IP-адреса, запрещенные Fail2ban с помощью этой команды

sudo fail2ban-client status monit-auth

Вы получите такой вывод

Status for the jail: monit-auth
|- filter
|  |- File list:        /var/log/monit.log
|  |- Currently failed: 0
|  `- Total failed:     3
`- action
   |- Currently banned: 1
   |  `- IP list:       192.168.60.1
   `- Total banned:     1

 

Exit mobile version