-15%Скидка 15% на разработку сайта или магазина при старте до конца месяца
Безопасность

Rate limiting и Fail2Ban для Битрикс: лимиты запросов и автобан на уровне сервера

Настраиваем ограничение частоты запросов на nginx и автоматический бан по логам через Fail2Ban: брутфорс авторизации, флуд форм и API, сканеры и переборщики банятся на уровне сервера до того, как нагрузят PHP и базу. Белые списки и интеграция с iptables — чтобы свои не пострадали.

nginxlimit_req на уровне сервера
Fail2Banавтобан по логам
1–2 днядо рабочей защиты
iptablesбан до запуска PHP
бан нарушителя свои флуд
Что настраиваем

Состав защиты: лимиты запросов и автобан

Собираем два рубежа обороны: ограничение частоты на nginx и автоматический бан по логам через Fail2Ban — с правилами под структуру URL и логов Битрикса.

Лимиты запросов на nginx

Зоны limit_req и limit_conn под формы, авторизацию, API и каталог с правильными burst и nodelay.

Fail2Ban по логам Битрикса

Фильтры и jail под логи nginx и Битрикса: брутфорс входа, флуд форм, серии 404 и сканеры.

Защита авторизации и админки

Отдельные пороги и баны для формы входа, /bitrix/admin/ и восстановления пароля от перебора.

Защита форм и API

Лимиты на отправку форм, поиск и API-эндпоинты, чтобы флуд и парсинг не нагружали базу.

Белые списки и пороги

Исключения для офиса, обмена с 1С, мониторинга, CDN и платёжных коллбэков, аккуратные пороги.

Интеграция с iptables

Баны применяются на firewall до запуска PHP, с временем бана, эскалацией и журналом срабатываний.

Зачем нужны лимиты и автобан

Где сайт на Битрикс открыт для перебора и флуда

Пока частота запросов ничем не ограничена, любой бот может перебирать пароли, заваливать формы и сканировать сайт — а PHP и база честно обрабатывают каждый запрос. Rate limiting и Fail2Ban отсекают это на уровне сервера, до тяжёлой логики Битрикса.

Боты перебирают пароли на форме входа и в админку, логи распухают от попыток.
Fail2Ban ловит серии неудачных авторизаций по логам и банит источник на iptables на заданное время.
Формы заявок и поиск заваливают флудом, заявки тонут в спаме, база под нагрузкой.
limit_req на nginx ограничивает частоту обращений к формам и поиску, всплески режутся с burst и nodelay.
Сканеры дёргают несуществующие пути и уязвимые URL сотнями запросов в минуту.
Отдельный jail банит источники по 404 и обращениям к подозрительным путям из логов nginx.
Парсеры и переборщики выкачивают каталог и API, нагружая сервер вхолостую.
Лимиты на API и тяжёлые разделы плюс автобан слишком частых клиентов снимают паразитную нагрузку.
Любая защита рискует забанить своих — менеджеров, 1С-обмен, мониторинг, CDN.
Белые списки по IP и сетям и аккуратные пороги: офис, обмен с 1С и мониторинг исключаются из банов.
Как это работает

Путь запроса через лимиты и автобан

Запрос приходит на nginx, проходит проверку частоты и белых списков, легитимный трафик идёт на Битрикс, а нарушитель попадает в логи и банится Fail2Ban на iptables.

Запросклиент или бот nginx limit_reqчастота · burst Битрикссвои проходят Лог nginxнарушитель Fail2Banфильтр · jail iptablesбан Лимит режет флуд, Fail2Ban банит на firewall до запуска PHP
Запрос → nginx limit_req → лог → Fail2Ban → iptables: свои проходят, нарушители банятся.
Подробно об услуге

Rate limiting и Fail2Ban для Битрикс: что это и зачем

Rate limiting и Fail2Ban — это два рубежа автоматической защиты сайта на 1С-Битрикс от перебора, флуда и сканирования на уровне сервера. Rate limiting (ограничение частоты запросов) живёт на nginx и не даёт одному источнику слать слишком много обращений к формам, авторизации, поиску и API. Fail2Ban разбирает логи и автоматически банит на firewall тех, кто ведёт себя как бот: перебирает пароли, заваливает формы, дёргает несуществующие пути. Вместе они снимают паразитную нагрузку до того, как она дойдёт до тяжёлой логики Битрикса, PHP и базы данных.

Смысл такой защиты в том, что она работает раньше приложения. Когда лимит частоты и автобан стоят на nginx и iptables, перебор паролей и флуд форм отсекаются ещё до запуска PHP-обработчика Битрикса. Сервер не тратит ресурс на обработку заведомо вредных запросов, логи не распухают от тысяч попыток входа, а реальные пользователи работают без тормозов. Это дешёвый по ресурсам и при этом очень эффективный слой обороны, который закрывает целый класс автоматизированных атак.

Что именно ограничивает rate limiting

На nginx мы описываем зоны ограничения частоты через директивы limit_req и количество одновременных соединений через limit_conn. Для каждой чувствительной точки задаётся свой порог: форма входа и админка защищаются жёстче, обычный каталог — мягче, API и поиск — отдельно. Чтобы не резать легитимные всплески, используем параметры burst и nodelay: короткая серия запросов от реального пользователя проходит, а равномерный поток от бота упирается в лимит и получает отказ. Пороги подбираются по реальным логам сайта, а не по абстрактным цифрам из чужих конфигов.

Главные точки, которые закрывает ограничение частоты:

  • форма авторизации и админка Битрикса — от перебора паролей и подбора логинов;
  • формы заявок, обратной связи и регистрации — от спама и флуда;
  • поиск и фильтры каталога — от тяжёлых запросов, которые нагружают базу;
  • API и эндпоинты интеграций — от парсинга и выкачивания данных;
  • восстановление пароля и подтверждения — от автоматического перебора.

Как работает автобан через Fail2Ban

Fail2Ban постоянно читает логи nginx и Битрикса и применяет к ним фильтры — регулярные выражения, которые опознают вредное поведение. Когда один IP за заданный промежуток времени превышает порог по неудачным авторизациям, сериям ошибок 404 или обращениям к подозрительным путям, срабатывает jail: источник банится на firewall (iptables) на заданное время. При повторных нарушениях время бана растёт. Под Битрикс мы пишем отдельные правила для разных сценариев: брутфорс входа, флуд форм, сканирование несуществующих и уязвимых путей, агрессивный парсинг.

Важная часть настройки — белые списки. Офис, сети обмена с 1С, системы мониторинга, CDN и платёжные коллбэки вносятся в ignoreip и не банятся ни при каких условиях. Это снимает главный риск любой автоматической защиты — заблокировать своих. Баны применяются на уровне iptables, то есть запрос отбрасывается до запуска PHP, и сервер не тратит ресурс даже на отказ.

Кому нужна эта защита

Настройка rate limiting и Fail2Ban нужна практически любому сайту на Битрикс, у которого есть форма входа в админку и публичные формы, но особенно она важна там, где уже идут атаки. Если в логах видны постоянные попытки перебора паролей, формы заваливают спамом, сканеры дёргают уязвимые пути, а сервер периодически уходит в нагрузку без видимой причины — это прямые признаки того, что лимиты и автобан настроить пора. Чем выше трафик и чем заметнее проект, тем больше автоматического вредного трафика он притягивает.

Особенно ощутим эффект для интернет-магазинов и B2B-порталов с ценным каталогом и API: там паразитный трафик от парсеров и переборщиков может составлять заметную долю всех запросов. Ограничение частоты и автобан возвращают этот ресурс реальным пользователям и снижают риск, что под прикрытием флуда пройдёт более серьёзная атака.

Как мы ведём настройку

Работу начинаем с разбора логов и трафика: смотрим, какие атаки реально идут на ваш сайт, где брутфорс, где флуд, где сканеры, и каким выглядит нормальный поток запросов. На основе этого проектируем зоны лимитов, пороги, время банов и белые списки. Затем настраиваем nginx и Fail2Ban, связываем баны с iptables и журналом, после чего обязательно проверяем поведение под нагрузкой и ловим ложные срабатывания. Несколько дней после запуска наблюдаем за банами и калибруем пороги, чтобы защита била точно по нарушителям и не задевала своих.

Результат настройки rate limiting и Fail2Ban — это автоматический рубеж обороны, который работает без вашего участия: перебор, флуд и сканирование банятся на уровне сервера, нагрузка от ботов падает, логи становятся чище, а реальные пользователи и интеграции работают как прежде. Все конфиги, журнал банов и инструкция по разбану остаются у вас, поэтому защита прозрачна и обратима.

Сравнение

Кто настроит rate limiting и Fail2Ban

Критерий Своими силамиФрилансерСтудия B2Bsite
Учёт специфики Битрикс Готовый конфиг из интернета без учёта URL БитриксаНастроит limit_req, но редко знает специфику БитриксаКонфиг под структуру URL и логов вашего Битрикса
Защита своих от банов Высокий риск забанить своих и сломать обмен с 1СБелые списки часто забывают — банят CDN и платежиБелые списки для офиса, 1С, мониторинга и CDN
Покрытие типов атак Фильтры не покрывают реальные логи и атакиФильтры под брутфорс есть, под сканеры и API — нетJail под брутфорс, флуд, 404 и сканеры из ваших логов
Проверка и тесты Нет проверки под нагрузкой и нагрузочного тестаПроверка поверхностная, пороги наугадПроверка ложных банов и поведения под нагрузкой
Сопровождение Некому разбирать ложные баны после запускаПропал — некому донастроить порогиСопровождение: правим пороги по реальной картине
Как работаем

Этапы настройки rate limiting и Fail2Ban

01

Разбор логов и трафика

Смотрим логи nginx и Битрикса: где брутфорс, флуд форм, серии 404 и сканеры, какой нормальный трафик.

02

Проектирование правил

Определяем зоны лимитов, пороги и время банов, составляем белые списки для офиса, 1С и мониторинга.

03

Настройка nginx и Fail2Ban

Прописываем limit_req и limit_conn, фильтры и jail, связываем баны с iptables и журналом.

04

Проверка и калибровка

Тестируем под нагрузкой, ловим ложные баны, подгоняем пороги, чтобы свои не страдали.

05

Запуск и наблюдение

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

06

Передача и сопровождение

Отдаём конфиги, инструкцию по разбану и порогам, по желанию берём правила на сопровождение.

Сроки

Сколько занимает настройка

1 день Разбор логов, трафика и текущих узких мест
1
1–2 дня Настройка лимитов nginx и правил Fail2Ban
2
1 день Проверка под нагрузкой и калибровка порогов
3
3–5 дней Наблюдение за банами и точечная донастройка
4
Расчёт выгоды

Сколько ресурса сервера съедает паразитный трафик

Прикиньте, какую долю нагрузки создают боты, перебор и флуд — и сколько ресурса вернёт rate limiting с автобаном. Эти запросы обрабатывает PHP и база вхолостую.

Запросов в сутки отсекается от PHP 0 ₽

Оценка по формуле: запросы в сутки × доля паразитного трафика × доля отсечения. Это ориентир разгрузки сервера, а не точный замер.

Тарифы

Сколько стоит настройка rate limiting и Fail2Ban

Стоимость зависит от числа разделов под защиту, объёма логов и сложности белых списков. Ниже — ориентиры; точную смету присылаем после разбора логов, бесплатно.

Базовая защита
от 18 000 ₽
Срок: 1–2 дня

Лимиты на формы и авторизацию плюс Fail2Ban от брутфорса.

  • limit_req на формы и вход
  • Fail2Ban от брутфорса авторизации
  • Базовый белый список
  • Интеграция с iptables
Популярный выбор
Полная защита
от 38 000 ₽
Срок: 2–4 дня

Лимиты и автобан под формы, API, сканеры и флуд с калибровкой.

  • Зоны лимитов на формы, API и каталог
  • Jail от брутфорса, флуда, 404 и сканеров
  • Белые списки для 1С, мониторинга и CDN
  • Проверка под нагрузкой и калибровка
  • Журнал банов и инструкция по разбану
Защита и сопровождение
от 9 000 ₽/мес
Срок: ежемесячно

Полная настройка плюс ведение правил и реакция на новые атаки.

  • Всё из «Полная защита»
  • Разбор банов и ложных срабатываний
  • Правка порогов под новые атаки
  • Новые jail под новые угрозы
  • Отчёт по срабатываниям
Базовая защита от 18 000 ₽
Срок: 1–2 дня

Лимиты на формы и авторизацию плюс Fail2Ban от брутфорса.

  • limit_req на формы и вход
  • Fail2Ban от брутфорса авторизации
  • Базовый белый список
  • Интеграция с iptables
Популярный Полная защита от 38 000 ₽
Срок: 2–4 дня

Лимиты и автобан под формы, API, сканеры и флуд с калибровкой.

  • Зоны лимитов на формы, API и каталог
  • Jail от брутфорса, флуда, 404 и сканеров
  • Белые списки для 1С, мониторинга и CDN
  • Проверка под нагрузкой и калибровка
  • Журнал банов и инструкция по разбану
Защита и сопровождение от 9 000 ₽/мес
Срок: ежемесячно

Полная настройка плюс ведение правил и реакция на новые атаки.

  • Всё из «Полная защита»
  • Разбор банов и ложных срабатываний
  • Правка порогов под новые атаки
  • Новые jail под новые угрозы
  • Отчёт по срабатываниям

Дополнительные опции

Интеграция бана с внешним firewall или CDN от 12 000 ₽
Настройка геоблокировки и списков по странам от 8 000 ₽
Подключение уведомлений о банах в мессенджер от 6 000 ₽
Умный расчёт

Подберём правила лимитов и банов под ваш сайт

Ответьте на несколько вопросов о сайте, нагрузке и атаках — предложим состав защиты и пришлём ориентир по срокам и цене.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы защиты от перебора и флуда

Интернет-магазин

Автобан брутфорса админки и флуда форм

Настроили Fail2Ban на серии неудачных входов и limit_req на формы — перебор перестал доходить до PHP.

−92%Попыток входа до PHP
до 80Банов в сутки
2 дняСрок
B2B-портал

Лимиты на API и защита обмена с 1С

Ограничили частоту обращений к API и поиску, обмен с 1С и офис вынесли в белые списки — ложных банов нет.

−70%Нагрузка от парсинга
0Ложных банов
3 дняСрок
Корпоративный сайт

Бан сканеров по сериям 404

Отдельный jail банит источники по обращениям к несуществующим и уязвимым путям из логов nginx.

×5/недСканеров забанено
чищеЛоги
1 деньСрок
Отзывы клиентов

Что говорят после настройки защиты

«Перебор паролей в админку шёл сутками и забивал логи. После настройки Fail2Ban атаки банятся автоматически, до сайта почти ничего не доходит. Офис и обмен с 1С не пострадали — внесли в белый список.»

Дмитрий IT-директор, интернет-магазин

«Формы заявок заваливали спамом и флудом, база лежала под нагрузкой. Поставили лимиты на nginx, всплески режутся аккуратно, реальные клиенты ничего не заметили. Заявки перестали тонуть в мусоре.»

Елена Руководитель маркетинга

«Сделали лимиты на API и забанили парсеров, которые выкачивали каталог. Нагрузка на сервер заметно упала, и при этом ничего из своего не заблокировали. Понравилось, что пороги калибровали по нашим логам.»

Артём Технический директор B2B-портала
Почему мы

На что можно рассчитывать по договору

Правила под ваш Битрикс

Лимиты и фильтры строим по реальной структуре URL и логов сайта, а не по шаблону из интернета.

Свои не пострадают

Белые списки для офиса, обмена с 1С, мониторинга и CDN и аккуратные пороги против ложных банов.

Проверка под нагрузкой

Тестируем поведение лимитов и банов, ловим ложные срабатывания до того, как они заденут клиентов.

Прозрачно и обратимо

Отдаём конфиги, журнал банов и инструкцию по разбану — защита под вашим контролем.

База знаний

Частые вопросы о лимитах и автобане — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов по защите Битрикса. Каждый ответ — позиция нашей команды.

Лимиты

Боюсь, что limit_req порежет реальных пользователей в час пик

Наш ответ

Пороги мы подбираем по вашим логам, а не наугад, и используем burst с nodelay: короткие всплески легитимного трафика проходят, а равномерный флуд режется. Перед запуском проверяем поведение под нагрузкой, поэтому реальные клиенты лимита не замечают.

Автобан

Как сделать, чтобы Fail2Ban не забанил наш офис или 1С

Наш ответ

Офис, сети обмена с 1С, мониторинг, CDN и платёжные коллбэки вносим в белые списки ignoreip, и эти источники не банятся в принципе. Дополнительно держим аккуратные пороги и время бана, чтобы случайная серия запросов не приводила к блокировке своих.

Брутфорс

Перебор паролей в админку идёт сутками и забивает логи

Наш ответ

Настраиваем фильтр Fail2Ban на серии неудачных авторизаций в логах Битрикса и nginx и баним источник на iptables на заданное время с эскалацией при повторах. Перебор перестаёт доходить до PHP, а логи становятся чище.

Сканеры

Боты дёргают несуществующие и уязвимые пути сотнями запросов

Наш ответ

Делаем отдельный jail, который банит источники по сериям 404 и обращениям к подозрительным путям из логов nginx. Сканеры и переборщики уязвимостей отсекаются автоматически, не нагружая сайт и не засоряя логи.

Экспертный взгляд

Rate limiting и Fail2Ban или одна большая защита

Когда сайт на Битрикс начинает страдать от ботов, перебора и флуда, возникает соблазн решить всё одним инструментом: поставить готовый WAF, подключить облачную защиту или включить «режим под атакой» и забыть. На практике серебряной пули нет: разные слои защиты закрывают разные задачи и работают лучше всего вместе. Rate limiting и Fail2Ban — это базовый, дешёвый по ресурсам и очень эффективный рубеж, который должен стоять почти на любом боевом сайте, независимо от того, есть ли над ним облачная защита. Ниже разбираем, как он устроен, какие проблемы решает и где его границы.

Почему ограничение частоты работает там, где не справляется приложение

Любая защита внутри Битрикса — капча, проверка токенов, лимиты в коде — срабатывает уже после того, как запрос дошёл до PHP, поднял сессию, подключился к базе и запустил тяжёлую логику. При флуде это значит, что сервер честно тратит ресурс на обработку каждого вредного запроса, пусть даже потом он его отклонит. Rate limiting на nginx переворачивает картину: лимит частоты проверяется до запуска PHP, и лишний запрос получает отказ почти бесплатно. Именно поэтому ограничение частоты так хорошо держит флуд форм, перебор и агрессивный парсинг — оно отсекает нагрузку на самом дешёвом для сервера этапе.

Fail2Ban идёт ещё дальше и опускает защиту на уровень firewall. Когда источник опознан как нарушитель по логам, его IP банится на iptables, и следующие запросы отбрасываются ядром, не доходя даже до nginx. Это предельно дёшево по ресурсам и предельно эффективно против тех, кто долбит сайт сериями однотипных запросов: перебирает пароли, сканирует пути, выкачивает каталог. Связка ограничения частоты на nginx и автобана на iptables закрывает большую часть автоматизированного вредного трафика, который обычно и создаёт фоновую нагрузку.

Какие атаки закрывает связка, а какие нет

Честно очертим границы. Rate limiting и Fail2Ban отлично работают против перебора паролей, флуда форм и поиска, серийного сканирования путей и парсинга — всего, что исходит от ограниченного числа источников и выражается в аномальной частоте запросов. Они заметно снижают фоновую нагрузку и делают логи читаемыми. Но они не заменяют полноценную защиту от распределённого DDoS с тысяч адресов, не разбирают содержимое запросов на предмет SQL-инъекций и XSS и не фильтруют сложные прикладные атаки. Для распределённых атак и фильтрации по содержимому нужен отдельный слой, и если он вам важен, мы отдельно настраиваем WAF на ModSecurity или Cloudflare, который дополняет лимиты и автобан, а не отменяет их.

Поэтому правильный подход — слоёная оборона. Rate limiting и Fail2Ban стоят первым рубежом и снимают массовый автоматический мусор дёшево и без вашего участия. Над ними при необходимости встаёт WAF и облачная защита для распределённых атак и фильтрации по содержимому. А внутри Битрикса работает прикладная безопасность: капчи, токены, разграничение прав. Каждый слой делает свою работу, и вместе они дают результат, которого ни один из них в одиночку не даёт.

Главный риск автобана — забанить своих

У любой автоматической защиты есть оборотная сторона: чем агрессивнее пороги, тем выше шанс случайно заблокировать легитимный трафик. Менеджер, который быстро кликает по админке, обмен с 1С, который шлёт пачку запросов, мониторинг, который опрашивает сайт каждую минуту, CDN, который ходит с одного адреса за всех, платёжный шлюз, который шлёт коллбэки, — всё это может выглядеть как аномалия и попасть под бан. Поэтому белые списки и калибровка порогов для нас не формальность, а центральная часть работы. Офис, сети 1С, мониторинг, CDN и платёжные коллбэки вносятся в исключения, а пороги подбираются по реальным логам, чтобы нормальная активность не срабатывала как атака.

Чтобы исключить сюрпризы, мы обязательно проверяем поведение защиты под нагрузкой до боевого запуска и несколько дней наблюдаем за банами после. Если в журнал попадает легитимный источник, мы сразу это видим и правим — добавляем в белый список или поднимаем порог. Такой подход даёт защиту, которая бьёт точно по нарушителям и не мешает работе. Эта же аккуратность критична, когда лимиты соседствуют с другими мерами против ботов: ограничение частоты хорошо сочетается с защитой от бот-трафика и парсинга, но пороги обоих слоёв нужно согласовать, чтобы они не конфликтовали.

Почему важна специфика Битрикса

Готовый конфиг limit_req и стандартный jail из интернета часто бесполезны на Битрикс, потому что не учитывают структуру его URL и формат логов. Адреса админки, AJAX-эндпоинтов, обмена с 1С, личного кабинета и API в Битрикс устроены определённым образом, и лимиты нужно вешать именно на них, не задевая служебные запросы. Логи Битрикса и nginx тоже надо уметь читать: фильтр Fail2Ban должен опознавать именно неудачную авторизацию или серию 404, а не любую строку. Без этого защита либо не ловит атаки, либо ловит лишнее. Поэтому мы строим правила под конкретный сайт, а не накатываем универсальный шаблон.

Отдельно учитываем интеграции. Обмен с 1С, выгрузки, платёжные и логистические сервисы шлют запросы пачками и с предсказуемых адресов — их нужно знать заранее и вынести из-под лимитов и банов. Если у вас сложная интеграционная обвязка, мы согласуем правила так, чтобы внешние системы работали без сбоев, а защита при этом не превращалась в решето. Это особенно важно для проектов, где параллельно идёт поддержка nginx, Apache, PHP и MySQL: лимиты и автобан должны жить в одном контуре с общей настройкой веб-сервера и не конфликтовать с ней.

Как мы ведём настройку по шагам

Первый шаг — разбор логов и трафика. Мы смотрим, какие атаки реально идут: где брутфорс, где флуд форм, где серии 404 от сканеров, откуда парсинг, и как выглядит нормальная нагрузка в будни и в пик. Без этого пороги ставить нельзя — они получатся либо слишком мягкими, либо опасными для своих. Второй шаг — проектирование: определяем зоны лимитов и их пороги, время банов и эскалацию, составляем белые списки. Третий — настройка nginx и Fail2Ban: прописываем limit_req и limit_conn, пишем фильтры и jail под ваши логи, связываем баны с iptables и журналом срабатываний.

Четвёртый шаг — проверка и калибровка. Мы тестируем поведение лимитов под нагрузкой, специально провоцируем срабатывания, ищем ложные баны и подгоняем пороги. Пятый — запуск в бой и наблюдение: несколько дней следим за тем, кого и за что банит система, и точечно правим. Шестой — передача: отдаём конфиги, журнал банов и понятную инструкцию по разбану и изменению порогов, чтобы вы или ваш админ могли управлять защитой сами. По желанию берём правила на сопровождение и обновляем их под новые атаки.

Чем настроенная защита выгоднее альтернатив

У сайта, который устал от ботов и перебора, обычно три пути. Первый — терпеть и периодически банить вручную: это съедает время админа и не масштабируется, потому что атаки идут круглосуточно. Второй — переложить всё на дорогую облачную защиту: она нужна против распределённого DDoS, но для рутинного перебора и флуда это стрельба из пушки по воробьям, к тому же она не отменяет необходимости фильтровать трафик на своём сервере. Третий — настроить rate limiting и Fail2Ban: дёшево по ресурсам, работает автоматически, закрывает самый массовый класс атак и отлично сочетается с остальными слоями.

Собственная настройка лимитов и автобана остаётся под вашим контролем: конфиги у вас, пороги вы можете менять, баны прозрачны и обратимы. Вы не платите помесячно за каждый отбитый запрос и не зависите от чужой инфраструктуры в базовых вещах. Когда трафик и число атак растут, именно этот рубеж оказывается и самым дешёвым в эксплуатации, и самым гибким — его легко донастроить под новые угрозы, не перестраивая всю оборону.

Возражения, которые мы слышим чаще всего

«У нас и так стоит облачная защита, зачем ещё лимиты на сервере». Облачная защита и rate limiting закрывают разные задачи: первая отбивает распределённые атаки на подлёте, второй режет флуд и перебор уже на вашем сервере и банит конкретных нарушителей. Часть вредного трафика всегда доходит до сервера в обход облака, и хорошо, когда его там встречает лимит и автобан. Слои не конкурируют, а усиливают друг друга.

«Боюсь, что защита забанит реальных клиентов или сломает интеграции». Это главный риск, и мы относимся к нему серьёзно: белые списки для офиса, 1С, мониторинга, CDN и платежей, пороги по реальным логам, проверка под нагрузкой и наблюдение после запуска. На практике при аккуратной настройке ложные баны исключены, а если источник всё же попал в журнал по ошибке, мы сразу это видим и правим.

«Это разовая настройка или её надо вести». Базовая защита от брутфорса и флуда работает и без сопровождения. Но атаки эволюционируют: появляются новые сканеры, меняются цели перебора, растёт парсинг. Поэтому для нагруженных и заметных проектов мы предлагаем сопровождение, в рамках которого разбираем баны, правим пороги и добавляем новые jail под новые угрозы. Решение за вами — защита остаётся вашей в любом случае.

Сценарии, под которые мы настраиваем защиту

Атаки и нагрузка на разных сайтах выглядят по-разному, поэтому правила мы собираем под конкретную картину, а не по единому шаблону. Для интернет-магазина с ценным каталогом главная боль — это парсеры и переборщики, которые выкачивают товары и цены, и флуд форм оформления заказа. Здесь на первый план выходят лимиты на каталог, поиск и API и автобан агрессивных выкачивающих источников, при этом обмен с 1С и платёжные коллбэки аккуратно выносятся в белые списки. Для корпоративного сайта типичнее перебор паролей в админку и серийное сканирование уязвимых путей, поэтому ядром становится жёсткий jail на брутфорс входа и отдельное правило на серии 404 от сканеров.

Для B2B-портала с личными кабинетами и API картина сложнее: легитимные интеграции шлют много запросов, и защита не должна им мешать, но при этом нужно отсекать перебор учётных записей и выкачивание данных через API. Тут особенно важна тонкая калибровка порогов и подробные белые списки для всех внешних систем. Для медиа и сайтов с высоким трафиком на первый план выходит защита от флуда, который маскируется под обычных читателей: здесь работают мягкие, но широкие лимиты и автобан только самых явных нарушителей, чтобы не задеть массовую легитимную аудиторию. В каждом из этих случаев набор jail, зоны лимитов и пороги мы подбираем индивидуально по логам.

Что мы проверяем перед боевым запуском

Прежде чем включить защиту в бой, мы прогоняем её через проверочный чек-лист, чтобы исключить сюрпризы. Сначала тестируем поведение лимитов под нагрузкой: имитируем всплески трафика и убеждаемся, что легитимные серии запросов проходят, а равномерный флуд режется. Затем специально провоцируем срабатывания фильтров Fail2Ban и проверяем, что баны накладываются и снимаются корректно, а время бана и эскалация работают как задумано. Отдельно прогоняем сценарии своих систем: пробуем обмен с 1С, выгрузки, обращения мониторинга и платёжные коллбэки — и убеждаемся, что ни один из них не попадает под лимит или бан.

После этого мы вычитываем журнал срабатываний и ищем в нём любые признаки ложных банов, чтобы поймать их до того, как они заденут реальных клиентов. Только когда защита уверенно отделяет нарушителей от своих, мы переводим её в боевой режим и продолжаем наблюдение ещё несколько дней. Такой порядок даёт спокойный запуск без простоев и без жалоб на заблокированный доступ, а вы получаете рубеж обороны, которому можно доверять с первого дня.

С чего начать

Начните с разбора логов. Пришлите нам логи nginx и Битрикса или дайте доступ к серверу — мы покажем, какие атаки реально идут на ваш сайт, какую долю трафика создают боты, перебор и флуд, и что из этого можно отсечь лимитами и автобаном. По итогам разбора предложим состав защиты под вашу нагрузку и интеграции и пришлём смету в течение рабочего дня. Аудит логов бесплатный, и даже если вы решите настраивать защиту своими силами, вы получите ясную картину угроз и приоритетов. Обсудим ваш проект — и превратим хаотичный поток ботов в управляемую и автоматически отбиваемую нагрузку.

Вопросы и ответы

Частые вопросы о rate limiting и Fail2Ban

Что такое rate limiting простыми словами? +

Это ограничение частоты запросов: правило, которое не даёт одному источнику слать слишком много обращений к сайту за короткое время. На nginx оно описывается директивой limit_req. Реальный пользователь укладывается в лимит и ничего не замечает, а бот, который шлёт запросы пачками, упирается в порог и получает отказ. Так флуд и перебор режутся раньше, чем доходят до тяжёлой логики Битрикса.

Что такое Fail2Ban и как он работает? +

Fail2Ban — это служба, которая читает логи сервера и автоматически банит источники, ведущие себя как боты. Она применяет к логам фильтры — шаблоны, опознающие вредное поведение, например серии неудачных входов или обращений к несуществующим путям. Когда один IP превышает порог, Fail2Ban банит его на firewall (iptables) на заданное время. Всё происходит автоматически, без участия администратора.

Чем rate limiting отличается от Fail2Ban? +

Rate limiting на nginx ограничивает частоту запросов в моменте: лишний запрос сразу получает отказ, но источник не блокируется надолго. Fail2Ban анализирует поведение во времени и банит источник целиком на firewall, если он раз за разом нарушает. Лимит режет всплеск здесь и сейчас, автобан убирает злостного нарушителя надолго. Вместе они дополняют друг друга и дают полноценную защиту.

Что такое jail в Fail2Ban? +

Jail (джейл) — это связка из фильтра, лога и правила бана для конкретного типа атаки. Например, один jail ловит перебор паролей в логах Битрикса, другой — серии ошибок 404 от сканеров в логах nginx. У каждого jail свой порог срабатывания и своё время бана. Под Битрикс мы настраиваем несколько jail под разные сценарии: брутфорс, флуд форм, сканирование путей, парсинг.

Что такое burst и nodelay в limit_req? +

Это параметры, которые делают ограничение частоты дружелюбным к реальным пользователям. Burst разрешает короткий всплеск запросов сверх среднего лимита — например, когда страница быстро подгружает несколько ресурсов. Nodelay говорит обрабатывать этот всплеск сразу, а не растягивать. Вместе они пропускают легитимные серии запросов и режут только равномерный поток от ботов. Пороги мы подбираем по вашим логам.

Как лимиты защищают формы и поиск? +

На формы заявок, обратной связи, регистрации и на поиск мы вешаем отдельные зоны ограничения частоты. Это не даёт ботам заваливать их спамом и флудом, а тяжёлым запросам поиска — нагружать базу. Реальный пользователь отправляет форму или ищет товар в обычном темпе и лимита не замечает, а автоматический поток режется. Заявки перестают тонуть в мусоре, а база работает спокойнее.

Не порежет ли лимит реальных пользователей в час пик? +

Нет, если пороги подобраны правильно. Мы ставим их по вашим реальным логам, а не наугад, и используем burst с nodelay: короткие всплески легитимного трафика проходят, а равномерный флуд режется. Перед запуском проверяем поведение под нагрузкой и несколько дней наблюдаем за работой. При аккуратной настройке реальные клиенты лимита не замечают.

Можно ли ограничить частоту обращений к API? +

Да, и это частый сценарий. На API-эндпоинты вешается отдельная зона лимита, чтобы парсеры и переборщики не выкачивали данные и не нагружали сервер. При этом легитимные интеграции, например обмен с 1С, выносятся в белые списки и под лимит не попадают. Так API остаётся доступным для своих систем и защищённым от выкачивания посторонними.

Защищают ли лимиты тяжёлые разделы каталога? +

Да. Фильтры, сортировки и большие выборки каталога создают нагрузку на базу, и боты этим пользуются, перебирая комбинации параметров. Мы ставим лимиты на тяжёлые разделы и эндпоинты, чтобы один источник не мог в цикле дёргать дорогие запросы. Реальный покупатель работает с каталогом свободно, а агрессивный перебор параметров упирается в порог.

Что происходит с запросом, который превысил лимит? +

Nginx отвечает на него кодом ошибки (обычно 429 или 503) почти без затрат ресурса — PHP при этом не запускается. Если источник продолжает нарушать и попадает под правило Fail2Ban, его IP банится на firewall, и следующие запросы отбрасываются ещё раньше, на уровне iptables. Так нагрузка от нарушителя падает до нуля, а сервер не тратит ресурс даже на отказ.

Как Fail2Ban банит за перебор паролей? +

Мы настраиваем фильтр на строки неудачной авторизации в логах Битрикса и nginx. Когда один IP за заданный промежуток превышает порог по числу неудачных входов, jail банит его на iptables на заданное время, а при повторах время бана растёт. Перебор перестаёт доходить до PHP, логи очищаются от тысяч попыток, а форма входа и админка остаются доступными для реальных пользователей.

Как банятся сканеры и переборщики путей? +

Для них настраивается отдельный jail, который ловит серии ошибок 404 и обращения к подозрительным и уязвимым путям из логов nginx. Когда источник дёргает несуществующие адреса пачками, он быстро превышает порог и банится. Так автоматическое сканирование уязвимостей отсекается до того, как нагрузит сайт, а логи перестают засоряться мусорными запросами.

Защищает ли это от флуда форм и спама? +

Да, на двух уровнях. Лимит частоты на nginx режет флуд в моменте: один источник не может слать формы пачками. А Fail2Ban банит тех, кто упорно флудит, на уровне firewall. Вместе с серверной защитой это заметно снижает спам, но для самих форм мы рекомендуем держать и прикладные меры — капчу и проверку токенов внутри Битрикса как дополнительный слой.

Помогает ли связка против DDoS? +

Против простого флуда с ограниченного числа источников — да, лимиты и автобан хорошо его держат. Но полноценный распределённый DDoS с тысяч адресов одними серверными мерами не отбить: тут нужен отдельный слой облачной защиты или WAF. Мы честно очерчиваем границы и при необходимости настраиваем эти слои дополнительно, чтобы лимиты и автобан работали в связке с защитой от распределённых атак.

Что такое эскалация времени бана? +

Это когда при повторных нарушениях время блокировки увеличивается. Первый раз источник банится, скажем, на час, при следующем нарушении — на сутки, дальше — на неделю. Так упорные нарушители уходят надолго, а случайно сработавший источник блокируется лишь ненадолго. Параметры эскалации мы подбираем под характер атак на ваш сайт.

Как сделать, чтобы не забанить свой офис или 1С? +

Офис, сети обмена с 1С, системы мониторинга, CDN и платёжные коллбэки мы вносим в белые списки (ignoreip), и эти источники не банятся ни при каких условиях. Дополнительно держим аккуратные пороги, чтобы случайная серия запросов не приводила к блокировке своих. Перед запуском проверяем поведение под нагрузкой, поэтому ложные баны при правильной настройке исключены.

Что делать, если по ошибке забанило нужный источник? +

Мы отдаём понятную инструкцию по разбану: команда, которая снимает блокировку с конкретного IP, и способ добавить его в белый список, чтобы он не банился впредь. После запуска несколько дней наблюдаем за журналом банов, поэтому ложное срабатывание обычно замечаем и правим раньше, чем оно успевает помешать. Доступ к разбану остаётся у вас.

Не сломает ли защита обмен с 1С и интеграции? +

Нет, если интеграции учтены заранее. Обмен с 1С, выгрузки, платёжные и логистические сервисы шлют запросы пачками с предсказуемых адресов — мы выясняем эти адреса до настройки и выносим их из-под лимитов и банов. Если у вас сложная интеграционная обвязка, согласуем правила так, чтобы внешние системы работали без сбоев, а защита оставалась эффективной.

Можно ли настроить геоблокировку? +

Да, по запросу настраиваем блокировку или ограничение трафика по странам и сетям. Это помогает, когда заметная доля атак идёт из регионов, где у вас нет клиентов. Геоблокировку мы используем аккуратно и в дополнение к лимитам и автобану, а не вместо них, чтобы не отрезать легитимных пользователей и поисковых роботов.

Где хранятся настройки и баны, и могу ли я ими управлять? +

Все конфиги nginx и Fail2Ban, фильтры, jail и белые списки находятся на вашем сервере и принадлежат вам. Журнал банов и инструкция по управлению остаются у вас, поэтому вы или ваш администратор можете в любой момент посмотреть, кого и за что забанило, снять бан или поменять пороги. Защита полностью прозрачна и обратима.

Сколько стоит настройка rate limiting и Fail2Ban? +

Базовая защита — лимиты на формы и вход плюс автобан от брутфорса — обычно начинается от 18 000 рублей. Полная настройка с лимитами на формы, API и каталог, jail от брутфорса, флуда, сканеров и калибровкой — от 38 000. Цена зависит от числа разделов под защиту, объёма логов и сложности белых списков. Точную смету присылаем после разбора логов.

За какой срок реально настроить защиту? +

Базовую защиту от брутфорса и флуда настраиваем за 1–2 дня, полную с калибровкой под нагрузкой — за 2–4 дня. Дополнительно несколько дней наблюдаем за банами и точечно правим пороги. Точный срок зависит от объёма логов и числа разделов и интеграций, и мы фиксируем его в смете до старта.

Нужен ли доступ к серверу для настройки? +

Да, для настройки нужен доступ к серверу с правами на конфигурацию nginx и установку Fail2Ban, а также доступ к логам. Если прямого доступа дать нельзя, работаем вместе с вашим администратором: мы готовим конфиги и правила, он их применяет. Для предварительного разбора достаточно прислать логи nginx и Битрикса.

Нужно ли вести защиту после настройки? +

Базовая защита от брутфорса и флуда работает и без сопровождения. Но атаки эволюционируют: появляются новые сканеры, меняются цели перебора, растёт парсинг. Для нагруженных и заметных проектов мы предлагаем сопровождение, в рамках которого разбираем баны, правим пороги и добавляем новые jail под новые угрозы. Решение за вами — защита остаётся вашей в любом случае.

Что мы получаем по итогу работы? +

Настроенные на вашем сервере лимиты nginx и правила Fail2Ban под структуру вашего Битрикса, белые списки для своих систем, журнал банов и понятную инструкцию по разбану и изменению порогов. Защита работает автоматически и остаётся под вашим контролем: развивать и менять её сможете вы сами, ваш администратор или наша команда на сопровождении.

Эффект после настройки

Что меняется в цифрах

−90%
попыток перебора паролей доходит до PHP
до 100
банов в сутки в пиковые атаки автоматически
×3
запас по нагрузке на формах и поиске
0
ручных банов — всё на автомате по логам

Ориентиры по проектам нашей команды. Точные пороги и эффект подберём после разбора ваших логов на аудите.

Начать проект

Настроим лимиты и автобан под ваш сайт?

Пришлите логи или дайте доступ к серверу — покажем, какие атаки идут, и предложим состав защиты с ориентиром по срокам и цене.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета