EQVPS

Как настроить fail2ban для блокировки brute-force атак

Остановите постоянный подбор паролей на вашем сервере: fail2ban следит за логами и автоматически банит IP, которые слишком много раз не смогли войти. Установите его, включите SSH jail и настройте правила бана — за несколько команд.

Даже если всё остальное закрыто, боты никогда не перестают подбирать пароли на порту 22 — это постоянный фоновый шум и нагрузка. fail2ban следит за вашими логами и автоматически банит любой IP, который слишком много раз не смог войти, так что атакующих отключают после нескольких попыток вместо бесконечного подбора. Это небольшая установка и большое снижение спама в логах.

1. Установите fail2ban

sudo apt update && sudo apt install -y fail2ban

2. Создайте локальный конфиг

Никогда не редактируйте поставляемый jail.conf напрямую — переопределяйте его в jail.local:

sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF'
[DEFAULT]
# don't ban yourself — add your home/office IP
ignoreip = 127.0.0.1/8 ::1
bantime  = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
EOF

Это банит IP на час после 5 неудачных попыток входа за 10 минут. Добавьте свой IP в ignoreip, чтобы опечатка в пароле никогда не заблокировала вас.

3. Запустите и включите автозапуск

sudo systemctl enable --now fail2ban

4. Проверьте SSH jail

sudo fail2ban-client status sshd

Вы увидите, сколько IP забанено прямо сейчас — часто это на удивление большое число уже через несколько минут.

Управление банами

sudo fail2ban-client set sshd unbanip 1.2.3.4   # lift a ban
sudo fail2ban-client status                     # list all jails
sudo systemctl reload fail2ban                  # apply config changes

Честные предостережения

Что дальше

fail2ban — один из слоёв закалённого сервера. Дополните его аутентификацией по SSH-ключу и файрволом UFW, и пройдите полный чеклист безопасности нового VPS, прежде чем что-либо выставлять наружу.

Частые вопросы

Что вообще делает fail2ban?

Он следит за лог-файлами (например, за auth-логом SSH) на предмет повторяющихся неудачных попыток входа с одного IP, и когда IP превышает порог, добавляет временный бан в файрвол. Боты, которые весь день долбят порт 22, блокируются после нескольких попыток вместо бесконечного подбора. Это автоматическая, непрерывная защита.

Нужен ли fail2ban, если я уже использую SSH-ключи?

Они решают разные задачи. SSH-ключи делают подбор практически невозможным; fail2ban останавливает шум и нагрузку от бесконечных попыток и защищает любой другой сервис, который вы открываете наружу (почту, веб-логины). При входе только по ключу риск уже низкий, но fail2ban — дешёвая дополнительная защита, которая заодно снижает спам в логах.

Может ли fail2ban забанить меня по ошибке?

Может, если вы сами несколько раз ошибётесь при вводе своего пароля — вас забанит на время bantime, а затем автоматически разбанит. Чтобы никогда не заблокировать себя, добавьте свой IP в 'ignoreip' в конфиге, и помните: консоль провайдера (у EQVPS она есть) всегда вернёт вам доступ.

Как посмотреть, кто забанен, или снять бан с IP?

Используйте 'sudo fail2ban-client status sshd', чтобы увидеть jail и забаненные IP. Чтобы снять бан: 'sudo fail2ban-client set sshd unbanip 1.2.3.4'. Чтобы добавить доверенный IP навсегда, впишите его в ignoreip и перезагрузите конфиг.

Что такое bantime, findtime и maxretry?

maxretry — сколько неудачных попыток допускается, findtime — окно, в котором они считаются, а bantime — как долго длится бан. Например, 5 неудач за 10 минут запускают бан на 1 час. Увеличьте bantime (или задайте более долгое значение) для более настойчивых атакующих.

Комментарии

Пока нет комментариев. Будьте первым.

Оставить комментарий

Комментарии проходят модерацию перед публикацией.