Fail2ban для бизнеса: как защитить сервер 1С, почту и сайт от брутфорса
Меня зовут Семёнов Евгений Сергеевич, я директор IT-аутсорсера АйТи Фреш и за 15 лет видел десятки взломов корпоративных серверов. В девяти случаях из десяти злоумышленник не использовал какую-то хитрую уязвимость — он просто перебрал пароль. И в девяти случаях из десяти этого можно было избежать одной бесплатной утилитой, которая называется Fail2ban. Расскажу, как мы её ставим у клиентов и почему она каждый месяц спасает чьи-то деньги.
Почему пароль — это самое слабое место
Когда я приезжаю на аудит к новому клиенту, первое, что я делаю — открываю логи аутентификации сервера 1С, RDP-шлюза или корпоративной почты. И почти всегда вижу одну и ту же картину: тысячи неудачных попыток входа в час. Из Китая, Бразилии, Нигерии, Украины — отовсюду. Боты круглосуточно ходят по интернету, пытаясь подобрать пароли «admin», «1234», «password», «администратор» и ещё 30 миллионов комбинаций из утечек.
Раньше у меня был клиент — небольшая транспортная компания, 18 человек в офисе. Их бухгалтер несколько лет работала с паролем «Любовь1985» (это её имя и год рождения). Однажды утром они пришли — а в 1С висит требование выкупа в биткоинах, файлы базы зашифрованы, бэкап за 6 месяцев тоже — потому что бэкап лежал на той же сетевой шаре, к которой получил доступ взломщик. Восстановление обошлось в 380 000 руб. услуг 1С-программистов и неделю простоя. А Fail2ban закрыл бы этот вход за пять минут настройки.
Подбор паролей — это самая тривиальная и самая массовая атака в интернете. На каждый ваш сервер, торчащий в интернет, идёт от 5 000 до 50 000 попыток подбора в сутки. Если у вас стоит «Иванов1980», его подберут за 12 часов. Если «Q1w2e3r4», за 2 часа. Если «P@ssw0rd2025», за неделю. Fail2ban делает простую вещь: после трёх-пяти неудачных попыток он блокирует IP-адрес атакующего на сутки. Боту приходится менять адрес — а адресов у обычного бота 1-3 штуки. Атака останавливается.
Что такое Fail2ban простыми словами
Если совсем без терминов: Fail2ban — это сторож, который читает журналы сервера и считает, сколько раз с одного IP-адреса не получилось войти. Если порог превышен — он добавляет правило в фаервол, которое блокирует этот IP. Через час, день или неделю — снимает блокировку (или не снимает, если IP попал в чёрный список «рецидивистов»).
Технически Fail2ban работает на любой системе на базе Linux: Ubuntu Server, Debian, CentOS, Astra Linux, Rosa, Альт. Установка — одна команда:
apt install fail2ban
systemctl enable --now fail2ban
После этого он сразу начинает следить за SSH с настройками по умолчанию. Но настройки по умолчанию у Fail2ban в дистрибутивах ленивые — 5 попыток за 10 минут, бан на 10 минут. Для боевого сервера этого мало. Я настраиваю по-другому: 3 попытки за 5 минут, бан на 12 часов. Атакующий теряет смысл долбиться в этот сервер.
Какие сервисы малого бизнеса нужно защитить в первую очередь
Я составил список сервисов, которые в 99% случаев есть у моих корпоративных клиентов в Москве. На каждом из них регулярно идёт брутфорс. Расставлю по приоритету:
| Сервис | Что атакуют | Последствия взлома |
|---|---|---|
| SSH (Linux-серверы) | Пароли пользователей и root | Полный контроль над сервером, шифрование данных |
| RDP-шлюз / RD Gateway | Пароли учётных записей AD | Доступ к терминалу, к файловой шаре, к 1С |
| 1С через веб (публикация на Apache/IIS) | Пароли пользователей 1С | Кража базы данных, фальсификация документов |
| OWA / Exchange / Postfix | Пароли почтовых ящиков | Кража переписки, рассылка спама с вашего домена |
| WordPress / Битрикс / админки сайтов | Пароль администратора | Дефейс сайта, заражение посетителей |
| VPN-шлюзы (OpenVPN, IPSec, L2TP) | Пароли VPN-учёток | Доступ во внутреннюю сеть офиса |
| FTP / SFTP | Пароли учёток | Подмена файлов на сайте, утечка данных |
Из этого списка Fail2ban закрывает 6 пунктов из 7 «из коробки» (RDP — отдельная история, расскажу ниже). Это значит, что одной утилитой и парой часов работы инженера вы закрываете самую массовую атаку на бизнес.
Реальный кейс: как мы настроили Fail2ban для торговой компании
В январе 2026 года ко мне обратилась оптовая компания — продают электротовары, 24 рабочих места, два сервера на Ubuntu (1С через web и почтовик на Postfix), белый IP. До нас они работали с приходящим админом, который Fail2ban им не ставил. За месяц до моего приезда у них взломали аккаунт sales-менеджера: бот подобрал пароль sales2024, зашёл в почту и разослал контрагентам письма с поддельными реквизитами для оплаты. Двое контрагентов перевели деньги на мошенников — суммарно 1.4 млн руб. Возврата не было.
Я приехал, открыл /var/log/auth.log на почтовике — а там 47 000 неудачных попыток за последние сутки. Просто база ботов прошлась по почтовому серверу, и какой-то из паролей оказался слабым. Fail2ban потребовался немедленно.
Что я сделал за один вечер:
- Установил Fail2ban на оба сервера через
apt install fail2ban. - Создал базовый конфиг
/etc/fail2ban/jail.localс белым списком офисных IP и адресов мониторинга. - Включил защиту для SSH, Postfix SMTP-AUTH, Dovecot IMAP, веб-публикации 1С через nginx.
- Настроил «тюрьму»
recidive— для тех, кто после разблокировки приходит снова. Им — бан на месяц. - Подключил Telegram-бот, который уведомляет директора о каждом крупном инциденте (более 100 банов в час).
Результат за первые две недели: 3 700 заблокированных IP-адресов, ноль успешных взломов, нагрузка на почтовик упала на 23% (просто потому что боты перестали ломиться). Стоимость работы — 14 000 руб. на оба сервера. По сравнению с потерянными 1.4 млн руб. — копейки. Сейчас у этого клиента Fail2ban стоит в нашей абонентской поддержке как обязательный пункт.
Базовая настройка, которую я ставлю каждому клиенту
Я не буду перепечатывать сюда официальный мануал — он есть на сайте Fail2ban. Покажу свой рабочий шаблон, который кладу в /etc/fail2ban/jail.local на каждый сервер клиента.
[DEFAULT]
# Бан на 12 часов
bantime = 43200
# Окно наблюдения 10 минут
findtime = 600
# 3 неудачи за окно — бан
maxretry = 3
# Белый список: офис, мониторинг, VPN
ignoreip = 127.0.0.1/8 ::1 95.165.XXX.XXX/32 10.10.0.0/24
# Способ блокировки: nftables (или iptables на старых системах)
banaction = nftables-multiport
[sshd]
enabled = true
mode = aggressive
bantime = 86400
[recidive]
enabled = true
bantime = 2419200 # 4 недели
findtime = 604800 # неделя
maxretry = 3
Это пять минут работы. Дальше я добавляю «тюрьмы» для конкретных сервисов клиента — почты, веб-1С, WordPress. На каждую — отдельный фильтр и свои пороги. Например, для входа в админку Битрикса я ставлю всего 5 попыток за 2 минуты — потому что нормальный администратор пароль не забывает.
Важная мелочь, которую забывают новички: в ignoreip обязательно нужно добавить IP офиса. Иначе однажды бухгалтер три раза введёт неправильный пароль от RDP — и весь офис окажется заблокирован на сутки. Я обычно добавляю статический IP офиса, IP сервера мониторинга Zabbix и подсеть VPN-шлюза.
А что с RDP на Windows-серверах?
Это типичный вопрос моих клиентов: «У нас не Linux, у нас 1С на Windows-сервере с RDP, что делать?» Сам Fail2ban на Windows не работает, но я делаю функциональный аналог через PowerShell. Принцип тот же:
- Скрипт раз в минуту читает Windows Event Log (Security, ID 4625 — неудачный вход).
- Считает, сколько неудач с каждого IP за последние 10 минут.
- Если больше 5 — добавляет блокирующее правило в Windows Firewall.
- Через сутки автоматически снимает блокировку.
- Параллельно отправляет уведомление в Telegram.
Готовое решение, которое я использую — связка из PowerShell-скрипта + scheduled task + цепочка правил Windows Firewall. У меня есть свой шаблон, который я внедряю клиентам за 6 000 руб. на сервер. Это не Fail2ban в чистом виде, но функция та же, и работает оно надёжно — у меня на 14 Windows-серверах клиентов это крутится без сбоев уже три года.
Альтернатива — поставить перед RDP HAProxy или Nginx как reverse proxy и использовать Fail2ban на нём. Это сложнее, но даёт дополнительный слой защиты: атакующие не видят сам RDP-сервер, только прокси.
Главные ошибки, которые я вижу у клиентов
Когда меня вызывают «починить» уже настроенный Fail2ban, я почти всегда вижу одну из пяти типичных ошибок:
- Только SSH защищён, остальное забыли. Самая частая ситуация. Админ ставил Fail2ban один раз, для SSH, и забыл. А почту, веб и FTP оставил голыми.
- Слишком мягкие пороги. 5 попыток за 10 минут — это разрешение на 720 попыток в сутки с одного IP. Современный бот через прокси-сеть подберёт типичный пароль за неделю.
- Нет recidive. Без этой «тюрьмы» Fail2ban банит IP на час, потом разблокирует, и тот же бот возвращается. Цикл бесконечный.
- IP офиса не в whitelist. Бухгалтер забыла пароль — весь офис заблокирован. Звонит злая, кричит на админа. Админ снимает блокировку, через два часа всё повторяется.
- Нет уведомлений. Fail2ban работает молча. Без Telegram или email вы не знаете, что вас ломают, пока не произойдёт что-то серьёзное.
Сколько стоит сделать это правильно
Я не верю в «бесплатные решения, которые любой админ настроит за 5 минут». В теории — да, бесплатно. На практике — нужно знать дистрибутив клиента, версии сервисов, специфику логов, паттерны атак, особенности Cloudflare и SAN-сертификатов, тонкости nftables versus iptables. Без опыта инженер потратит на корректную настройку 8-12 часов и всё равно оставит дыры.
Мои текущие тарифы на внедрение Fail2ban (апрель 2026):
| Объём работы | Что входит | Стоимость |
|---|---|---|
| Один Linux-сервер | SSH + один сервис (web/почта/FTP), Telegram, recidive, обучение | 8 000 ₽ |
| Один Windows-сервер с RDP | PowerShell-скрипт, Firewall-правила, Telegram, документация | 6 000 ₽ |
| Офис из 3-5 серверов | Пакетный деплой через Ansible, единый whitelist, общий мониторинг | от 18 000 ₽ |
| Сложная инсталляция (10+ серверов) | Centralized fail2ban + Wazuh, дашборд в Grafana, SLA | от 45 000 ₽ |
Включено в работу: jail-конфиги под ваши сервисы, фильтры под нестандартные приложения, white-list, recidive, deploy hooks для перезагрузки сервисов, Telegram-уведомления, обучение вашего администратора, документация на русском с примерами разблокировки. Один раз заплатили — и забыли о брутфорсе на годы.
Что Fail2ban не может
Чтобы быть честным — Fail2ban это не панацея. Он закрывает один конкретный класс атак: подбор пароля через известный сервис. От следующих угроз он не защитит:
- Уязвимостей в самом приложении (SQL-инъекции, RCE, XSS) — для этого нужен WAF, например ModSecurity или CrowdSec.
- Внутреннего нарушителя (увольняющийся сотрудник, обиженный сисадмин) — для этого нужен журналируемый VPN, MFA и регулярная ротация ключей.
- DDoS-атак с десятков тысяч IP — Fail2ban захлебнётся, нужен Cloudflare или DDoS-Guard на входе.
- Фишинга — пользователь сам отдаёт пароль на поддельной странице, Fail2ban это не видит.
Поэтому в нашей абонентской поддержке Fail2ban — это базовый элемент защиты, поверх которого мы строим многоуровневую безопасность: фаервол, VPN с двухфакторкой, обучение сотрудников, регулярные пентесты. Но если у вас вообще ничего нет — начинайте с Fail2ban. Это даст 70% защиты от типичных атак за минимальные деньги.
Нужна защита корпоративных серверов от брутфорса?
Я лично выезжаю на аудит безопасности серверов в Москве и в радиусе 50 км от МКАД. За один день настрою Fail2ban на всех ваших Linux-серверах и его аналог на Windows, подключу Telegram-уведомления и обучу вашего администратора. Бесплатный аудит логов — за 1-2 рабочих дня покажу, сколько попыток брутфорса идёт прямо сейчас на ваши сервера.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы клиентов про Fail2ban
- Зачем малому офису Fail2ban, если есть пароль и фаервол?
- Пароль ломается перебором, если он короткий или есть в утечках. Фаервол пропускает легитимные подключения к SSH, RDP-шлюзу, OWA, веб-1С — именно туда и идёт брутфорс. Fail2ban банит IP после 3-5 неудачных попыток и останавливает атаку до того, как пароль будет угадан.
- Сколько стоит внедрение Fail2ban в АйТи Фреш?
- Базовая настройка для одного Linux-сервера с SSH, веб-сервером и Telegram-уведомлениями — 8 000 руб. одноразово. Для офиса с 3-5 серверами с пакетным деплоем через Ansible — от 18 000 руб. Включено: jail-конфиги, фильтры, recidive, мониторинг и обучение администратора клиента.
- А если случайно забанить директора с домашним IP?
- В каждой настройке мы прописываем whitelist (ignoreip) для статических IP офиса, серверов мониторинга и VPN-шлюза. Динамические домашние IP добавляем через VPN — у директора подключение идёт со статического адреса VPN-сервера, и Fail2ban его не трогает.
- Работает ли Fail2ban на Windows-сервере с RDP?
- Сам Fail2ban — Linux-инструмент, но его аналог на Windows реализуется через PowerShell-скрипт + Windows Event Log + Windows Firewall. Мы делаем такие связки для клиентов с RDP-шлюзом или RemoteApp. Принцип тот же: 5 неудач за 10 минут — IP в блок на сутки.
- Что делать, если Fail2ban забанил клиента и тот звонит злой?
- Разблокировка занимает 10 секунд:
fail2ban-client set sshd unbanip 1.2.3.4. Параллельно мы настраиваем Telegram-бот, в котором клиент сам может проверить, забанен ли его IP, и попросить разблокировку — без звонка. На больших инсталляциях это снимает 80% обращений в техподдержку.