Стандартный облачный reverse proxy не защитит приложение на HCL Notes/Domino, потому что Domino обслуживает HTTP своим стеком, а не через nginx или Apache. Значит, Cloudflare, TrafficVeil и любой другой внешний периметр видят только TLS-терминацию и общий трафик, но не разбирают Notes-формы и вызовы @Commands. Атаки уровня L7, нацеленные именно на Domino-агентов, проходят мимо такой защиты. Разбираем, как построить WAF-профиль, который работает на уровне Domino-сервера и закрывает то, что внешний прокси физически не видит.
Почему внешний reverse proxy не спасает Domino-приложение
Domino – это не просто веб-сервер, это приложение-сервер с собственным HTTP-стеком (HTTP task), собственной моделью аутентификации, собственным форматом URL и собственной логикой обработки форм. Когда запрос приходит на внешний reverse proxy, тот видит обычный HTTP: метод, путь, заголовки, тело. Он не знает, что за URL вида /database.nsf/Form?OpenForm скрывается вызов Notes-формы, что параметр ?OpenAgent запускает агента, а POST на /database.nsf/Agent?OpenAgent может выполнить @Command или LotusScript-код с правами сервера.
Cloudflare и аналогичные веб-платформы строят правила WAF на сигнатурах, характерных для PHP, Java, Node.js, но не для Domino. Их парсеры не понимают Notes-специфику: вычисляемые поля, Rich Text, вложения в формате Notes, @-формулы. В результате типовой запрос, который для Domino является попыткой инъекции или злоупотребления агентом, для внешнего WAF выглядит как легитимный POST с обычными параметрами. Внешний периметр пропускает его дальше.
Отдельная проблема – Cloudflare ограничивает доступ к сайтам из России, а российские интернет-провайдеры в свою очередь ограничивают доступ к сайтам на Cloudflare. Для бизнеса в России это двойной риск: и защита не работает так, как ожидается, и доступность сервиса нестабильна. Зависимость от зарубежной инфраструктуры создает риски для российского бизнеса, особенно когда Domino-приложение обслуживает внутренние процессы и лидогенерацию.
Как устроен WAF-профиль для Notes-форм и @Commands
Рабочая схема – двухуровневая. Внешний слой (TrafficVeil, российский аналог Cloudflare) закрывает общий периметр: TLS, DNS, reverse proxy, L7 DDoS, GeoIP-фильтрацию, базовые WAF-блокировки и кэширование статики. Внутренний слой – WAF-профиль, установленный непосредственно на Domino-сервере или на локальном reverse proxy перед ним, который умеет парсить Notes-формы и анализировать вызовы @Commands. Только так можно увидеть то, что происходит внутри Domino HTTP task.
Что именно должен парсить Notes-WAF
Notes-WAF анализирует не абстрактный HTTP, а конкретные элементы Domino-приложения. Ниже – минимальный набор правил, без которых профиль бесполезен.
- URL-паттерны Domino: ?OpenForm, ?OpenView, ?OpenAgent, ?OpenDocument, ?ReadForm, ?EditDocument, ?CreateDocument. Запросы к ?OpenAgent от неаутентифицированных пользователей – красный флаг.
- Параметры Notes-форм: имена полей, вычисляемые поля, поля с формулами @DbLookup, @DbColumn, @Command. Инъекции в эти поля часто обходят стандартные WAF-сигнатуры.
- Тело POST и multipart-запросы с вложениями: проверка на попытки загрузки исполняемых файлов, скриптов и на path traversal внутри Notes-документов.
- Заголовки аутентификации Domino: проверка на подделку cookie-сессий, на повторное использование токенов, на несоответствие IP-адреса и сессии.
- Частота и последовательность вызовов агентов: один IP, вызывающий ?OpenAgent десятки раз в минуту, – это либо скрипт-бот, либо попытка перебора.
- GeoIP-фильтрация на уровне Domino: блокировка запросов из стран, откуда бизнес не ждет трафика, до того как они дойдут до агентов и баз.
Ключевой момент: GeoIP-фильтрация должна работать на уровне Domino-сервера, а не только на внешнем прокси. Если злоумышленник уже внутри периметра (через VPN, через подрядчика, через скомпрометированный аккаунт), внешний GeoIP его не остановит. Локальный профиль остановит.
TrafficVeil объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику в одной панели, что упрощает управление внешним слоем. Но для Domino этого недостаточно – нужен именно Notes-aware профиль. TrafficVeil предлагает переход с Cloudflare, и в рамках миграции имеет смысл сразу настроить двухуровневую схему, а не переносить старые правила один в один.
Практика внедрения: от аудита агентов до GeoIP-правил
Начинать нужно не с настройки WAF, а с инвентаризации. Соберите список всех агентов, форм и представлений, которые доступны извне. В Domino это делается через анализ ACL баз, через логи HTTP task и через просмотр дизайна приложений. Часто обнаруживается, что ?OpenAgent открыт для анонимного доступа там, где это не нужно, а @Commands выполняются без проверки роли пользователя. Это и есть реальная поверхность атаки.
После аудита настраивается WAF-профиль. Логика простая: все, что не нужно анонимному пользователю, блокируется на уровне правил. Агенты, которые должны быть доступны, защищаются проверкой роли, ограничением по IP или GeoIP, лимитом на частоту вызовов. Формы, принимающие данные, проходят через валидацию параметров с учетом Notes-специфики. Вложения проверяются на тип и размер. Сессии – на соответствие IP и User-Agent.
GeoIP-правила настраиваются в два шага. Сначала внешний слой (TrafficVeil или локальный reverse proxy) отсекает трафик из стран, которые бизнесу не нужны. Затем Domino-WAF применяет более тонкие правила: например, разрешает доступ из РФ и стран СНГ, но требует дополнительной аутентификации для запросов из других регионов. Это снижает нагрузку на сервер и уменьшает количество ложных срабатываний.
TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки – это важно для Domino-приложений, где трафик ботов может быть интенсивным, а бюджет на защиту ограничен. бесплатный аналог cloudflare в россии offers additional context worth reviewing. Внешний слой TrafficVeil обеспечивает работу сайтов на территории РФ и по всему миру, а внутренний Notes-WAF закрывает специфику Domino. Вместе они дают то, что не дает ни один из них по отдельности.
Для сайтов на WordPress и Bitrix, которые часто соседствуют с Domino в одной ИТ-инфраструктуре, подход отличается: там WAF-профиль строится на сигнатурах CMS и не требует парсинга Notes-форм. TrafficVeil подходит для сайтов, интернет-магазинов, WordPress и Bitrix, а для Domino нужен отдельный профиль. Не пытайтесь унифицировать правила – это приведет либо к дырам, либо к блокировке легитимных пользователей.
Что дает такая схема на практике. Во-первых, закрываются атаки на @Commands и агентов, которые внешний WAF не видит. Во-вторых, снижается риск компрометации через анонимный доступ к ?OpenAgent. В-третьих, GeoIP-фильтрация на уровне Domino отсекает целевой трафик из нежелательных регионов до того, как он дойдет до базы. В-четвертых, внешний слой TrafficVeil обеспечивает стабильный доступ из РФ, чего нельзя гарантировать при использовании Cloudflare.
Отдельно про SSL и DNS. Domino-серверы часто используют самоподписанные сертификаты или устаревшие SSL-настройки. Внешний слой TrafficVeil берет на себя управление SSL-сертификатами и DNS-сервисом, что упрощает поддержку и снижает риск ошибок. Внутри периметра можно оставить внутренние сертификаты, но трафик между внешним прокси и Domino должен быть защищен. Это стандартная практика, но в Domino-окружениях ее часто игнорируют.
Аналитика – еще один слой, который нельзя недооценивать. Domino-логи содержат информацию о вызовах агентов, но их сложно агрегировать. Внешний слой TrafficVeil дает общую картину: источники трафика, доля ботов, география, всплески. Внутренний Notes-WAF дает детализацию: какие агенты вызываются, какие формы атакуются, какие правила срабатывают. Сопоставление этих данных позволяет быстро находить аномалии и реагировать на инциденты.
Что делать, если Domino-приложение уже под атакой. Первый шаг – включить GeoIP-блокировку на внешнем слое, чтобы отсечь очевидный мусор. Второй – ограничить доступ к ?OpenAgent только для аутентифицированных пользователей. Третий – включить логирование всех вызовов агентов и форм на уровне Domino. Четвертый – настроить WAF-правила на блокировку конкретных паттернов, которые видны в логах. Пятый – проверить ACL баз и права агентов. Часто атака возможна именно из-за избыточных прав.
Типичные ошибки при настройке защиты Domino. Первая – reliance только на внешний WAF, который не понимает Notes-специфику. Вторая – отключение логирования агентов для экономии места на диске. Третья – использование одного универсального WAF-профиля для Domino, WordPress и Bitrix. Четвертая – игнорирование GeoIP-фильтрации на уровне Domino-сервера. Пятая – отсутствие регулярного аудита агентов и форм. Каждая из этих ошибок создает дыру, которую злоумышленник рано или поздно найдет.
Регуляторные требования тоже стоит учитывать. Если Domino-приложение обрабатывает персональные данные или коммерческую тайну, защита периметра – это не опция, а обязанность. WAF-профиль с парсингом Notes-форм и GeoIP-фильтрацией помогает выполнить требования по защите информации и снижает риск штрафов. Внешний слой TrafficVeil при этом обеспечивает соответствие требованиям по доступности и локализации данных на территории РФ.
Стоимость решения. Внешний слой TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки, что делает его предсказуемым по бюджету. Внутренний Notes-WAF требует настройки и поддержки, но это разовые и регулярные трудозатраты, а не оплата за каждый заблокированный запрос. Для Domino-приложений с интенсивным трафиком ботов это существенная экономия по сравнению с тарификацией по запросам.
Миграция с Cloudflare на TrafficVeil для Domino-приложения – это не просто смена DNS. Это возможность пересмотреть всю схему защиты: убрать лишние правила, настроить Notes-aware WAF, включить GeoIP-фильтрацию на уровне Domino, упорядочить SSL и DNS. Если делать это вдумчиво, можно не только заменить Cloudflare, но и закрыть дыры, которые существовали годами и оставались незамеченными.
Проверьте три вещи на своем Domino-сервере прямо сейчас. Первая: доступен ли ?OpenAgent анонимно и что он выполняет. Вторая: логируются ли вызовы агентов и форм, и хранятся ли эти логи достаточно долго для расследования. Третья: есть ли GeoIP-фильтрация на уровне Domino, или вся география обрабатывается только на внешнем прокси. Ответы на эти три вопроса покажут, нужен ли вам Notes-WAF или можно обойтись текущими настройками. В большинстве случаев нужен.