Как настроить fail2ban? Понятная инструкция для новичков

0 352
+3

Каждый сервер, который вы арендуете или пускаете в сеть, нужно обезопасить, чтобы было сложнее подобрать пароль. Боты - они везде, и их много. И боты 24/7 пытаются подобрать пароль к вашему серверу. 


В этой статье я покажу настройку программы fail2ban, которая позволит блокировать таких ботов на определенное время.


Установка и настройка fail2ban

1. Первым делом, конечно же, обновляем систему:

apt update
apt upgrade -y

2. После обновления устанавливаем Fail2ban:

apt install fail2ban -y

3. Сейчас нам нужно создать файл jail.local в пути /etc/fail2ban/:

nano /etc/fail2ban/jail.local

4. В созданный файл вставляем следующее:

[sshd]
enabled   = true
maxretry  = 6
findtime  = 1h
bantime   = 1d
ignoreip  = 127.0.0.1/8 23.34.45.56

5. Корректируем поля под ваши нужны. Описание каждого поля:

  • enabled = true - Это значит, что фильтр включен;
  • maxretry = 6 - Это количество попыток ввода неверного пароля, после которого сработает блокировка;
  • findtime = 1h - Промежуток времени, в течение которого должны быть выполнены неудачные попытки ввести пароль, чтобы бан сработал.
  • Bantime = 1d - Время, на которое блокируется адрес.
  • ignoreip = 127.0.0.1 - Это адреса, для которых защита будет отключена. Если у вас имеются постоянные адреса - введите их сюда. Вводить нужно без запятых через пробел, как в примере.

6. Сохраняем внесенные изменения. Нажимаем Ctrl O, затем Enter, и затем Ctrl X - для выхода.

7. После сохранения настроек перезапустите fail2ban командой:

systemctl restart fail2ban

В данном примере настроено так, что если в течение часа с одного адреса будет введен неверно пароль 6 раз, то адрес заблокируется на 1 день.


Боты умеют подстраиваться под стандартные настройки защиты. И в связи с этим лучше указывать меньше попыток ввода, меньше времени на ввод и больше количество дней для блокировки.

Вводить время можно как в секундах, так и по часам/минутам/дням. 


Работа с fail2ban

Настройку мы провели. А как понять, что он уже кого-то забанил?

Для проверки списка фильтров нужно ввести команду:

fail2ban-client status

У нас имеется один фильтр - sshd:

 

Мы можем просмотреть состояние фильтра sshd. Для этого в конце команды добавляем название фильтра:

fail2ban-client status sshd

Получим следующее:

Все эти адреса забанены. Это боты, которые пытались подобрать пароль от ssh.

Если вы хотите разблокировать определенный адрес, то воспользуйтесь командой:

fail2ban-client set sshd unbanip 192.168.0.1

Вместо 192.168.0.1 напишите тот IP, который хотите разбанить.


Дополнительная информация

При просмотре списка заблокированных, два пункта - Currently banned и Total banned. В чем отличие?

Комментарии (0)