TGViewer
Пентестер на мотоцикле Пентестер на мотоцикле @hackerbiker · 1.08K subscribers
Post #116 1.89K
🤨 Крыса!

Несколько дней подряд мой сервер обстреливали запросами с разных IP. Узнал я об этом совершенно случайно, когда зашёл через SSH по другой причине и решил посмотреть логи. И тут я просто выпал.

Какой-то упёртый товарищ через веб-страницу долбил админку одного сервиса из трёх букв (название опустим, но суть поняли), пытаясь перебрать логины и пароли. Причём без капли стеснения он это делал с 30 запросами в секунду (108к запросов в час). Продолжалось это без остановки с 28 августа 04:09:44 по 2 сентября 12:33:35, а далее затишье.

Я сразу решил, что так оставлять нельзя. Вечером того же дня поставил Fail2ban, прописал фильтр и подключил его к логам. И, как по заказу, атакующий снова вылез 2-го сентября в 23:07:56. Но на этот раз всё закончилось для него быстро и печально. Даже секунды не прошло, как IPS повязал ему ручонки (см. скриншот). Ну и я подумал, что из этого можно было бы выкатить простой гайд по установке и настройке Fail2ban.

Fail2Ban – программа для защиты серверов от атак методом грубой силы.


Если кому интересно, как настроить Fail2ban в пару кликов под X-UI (как в моём случае), держите гайд.

➡️1) Обновляем пакеты

sudo apt update


➡️2) Устанавливаем Fail2ban

sudo apt install fail2ban -y


➡️3) Проверяем установку — должно выдать версию Fail2ban

fail2ban-client --version


➡️4) Запускаем сервис и смотрим статус

sudo systemctl enable --now fail2ban


sudo systemctl status fail2ban


➡️5) Fail2ban будет смотреть логи и искать неудачные попытки входа по фильтру. Создаем фильтр в "/etc/fail2ban/filter.d/x-ui.conf"

[Definition]
failregex = WARNING - wrong username: ".*", password: ".*", secret: ".*", IP: "<HOST>"
ignoreregex =


Вставляем как есть, ничего менять не надо.

➡️6) Создаём или редактируем "/etc/fail2ban/jail.local"

[x-ui]
enabled = true
filter = x-ui
logpath = /var/log/kern.log
maxretry = 5
findtime = 600
bantime = 3600
action = iptables[name=x-ui, port=PORT, protocol=tcp]
ignoreip = 127.0.0.1/8 YOUR_IP YOUR_VPN_IP


Пояснение:

logpath — файл с логами, куда пишутся предупреждения о неверно введённом логине/пароле.
port=PORT — сетевой порт, к которому будет применяться правило блокировки IP через iptables. Здесь ставьте порт, на котором открывается форма авторизации в личный кабинет X-UI.
maxretry = 5 — после 5+ провальных попыток выдаётся бан.
findtime = 600 — считаем попытки за 10 минут.
bantime = 3600 — бан на 1 час.
ignoreip — добавляем сюда свой IP и VPN, чтобы случайно не заблокироваться.

➡️7) Перезагружаем службу Fail2ban

sudo systemctl restart fail2ban


➡️8) Смотрим статус Fail2ban. Если запущен, значит ошибок нет и всё работает. Радуемся жизни

sudo systemctl status fail2ban


Теперь можно отслеживать статус Fail2ban, в котором в том числе пишется количество блокировок и какие именно IP-адреса были заблокированы:

sudo fail2ban-client status x-ui


Защищайте свои сервера и будьте здоровы! 😉

И не забудьте перевернуть календарь.
  • 🔥 12
  • 👍 9
  • ❤‍🔥 1
More from @hackerbiker
  1. Jul 15, 2026Post #136
  2. Mar 4, 2026🔊 Вскрываем периметр по-крупному Последние пару недель РАД КОП много говорит про гигиену…
  3. Mar 3, 2026Представьте: в углу офиса мирно стоит принтер, печатает отчёты… а в это время через него к…
  4. Feb 26, 2026🤨 Документация из хаоса Инструмент был написан в рамках стажировки Digital Security автор…
  5. Feb 24, 2026Маленькое пополнение в нашей семье☺️ Теперь у меня свой блэчер, бойтесь
  6. Feb 17, 2026😈 Регистрация — оружие массового поражения Недавно на финтех-проекте во время тестировани…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →