08:31, 20-мар-2024
Каждый сервер, который вы арендуете или пускаете в сеть, нужно обезопасить, чтобы было сложнее подобрать пароль. Боты - они везде, и их много. И боты 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. В чем отличие?
Теги:
Похожие новости