ITENTA DNS Filter

Технологический стек

Перечень технологий: ОС, контейнеризация, хранилища, веб-серверы, СУБД, языки и среды разработки.

ITENTA DNS Filter · on-premise (в инфраструктуре заказчика)

Документ содержит перечень технологий, использованных при создании и применяемых при эксплуатации системы: операционные системы, средства виртуализации и контейнеризации, хранилища, веб- и прокси-серверы, платформы, СУБД, языки и среды разработки.

1. Сводная таблица

Ниже приведён состав технологического стека по категориям. Подробности по каждой категории — в последующих разделах.

КатегорияСостав
Операционные системыLinux x86-64 (серверная часть); Alpine Linux 3.22 внутри контейнеров
ВиртуализацияНе требуется. Работает как на физическом сервере, так и в виртуальной машине любого гипервизора
КонтейнеризацияDocker Engine, Docker Compose v2
Хранилища данныхPostgreSQL, ClickHouse, локальные тома контейнеров, файловый журнал запросов
Облачные платформыНе используются
Веб- и прокси-серверыnginx (web-консоль и страница блокировки)
Платформы и серверы приложенийСобственные службы на Go; отдельный сервер приложений не применяется
СУБДPostgreSQL 16, ClickHouse 24.8
Языки программированияGo, TypeScript, SQL, Shell
Среды и инструменты разработкиGo toolchain, Node.js, Vite, Docker

2. Операционные системы

НазначениеТехнология
Серверная частьLinux x86-64 с установленной средой контейнеризации
Среда исполнения компонентовAlpine Linux 3.22 — базовый образ всех контейнеров продукта
Рабочее место администратораЛюбая ОС с современным веб-браузером; управление выполняется через web-консоль

3. Виртуализация

Система не предъявляет требований к средствам виртуализации и не зависит от конкретного гипервизора. Развёртывание возможно:

на физическом сервере;

в виртуальной машине под управлением любого гипервизора, поддерживающего гостевую ОС Linux x86-64.

Собственные средства виртуализации в состав продукта не входят. Изоляция компонентов обеспечивается контейнеризацией (раздел 4).

4. Контейнеризация

ТехнологияВерсияНазначение
Docker EngineАктуальная поддерживаемаяСреда исполнения компонентов
Docker Composev2, не ниже 2.24Описание и запуск состава служб
Alpine Linux3.22Базовый образ контейнеров продукта

Все компоненты поставляются готовыми образами контейнеров. Состав служб зафиксирован в конфигурации, роль сервера (головной или подчинённый узел) определяется при установке.

5. Хранилища данных

ХранилищеЧто хранит
PostgreSQLКонфигурация системы: политики, категории и база категоризации, зоны, площадки и узлы, учётные записи, лицензии, параметры установки
ClickHouseЖурнал DNS-запросов и агрегаты для аналитики
Тома контейнеровПостоянные данные СУБД и файловый журнал запросов
Файловая система сервераСлужебные секреты установки, TLS-ключи и сертификаты — в каталоге с ограниченным доступом
Резервные копииФайл резервной копии головного сервера, зашифрованный паролем администратора

6. Облачные платформы

Облачные платформы и внешние облачные сервисы не используются. Продукт поставляется в варианте on-premise и работает полностью в инфраструктуре заказчика.

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

7. Веб- и прокси-серверы

КомпонентВерсияНазначение
nginx1.27Отдача web-консоли по HTTPS и страницы блокировки
CoreDNS1.14Приём DNS-запросов, фильтрация, кеширование, публикация DNS-over-TLS и DNS-over-HTTPS
UnboundИз состава Alpine Linux 3.22Рекурсивное разрешение имён и проверка подписей DNSSEC

Обратный прокси-сервер общего назначения в составе продукта не применяется. Публикуемые сетевые интерфейсы ограничены портами DNS, страницы блокировки, web-консоли и интерфейса управления подчинёнными узлами.

8. Платформы и серверы приложений

Отдельный сервер приложений не используется. Все службы продукта — самостоятельные исполняемые файлы, собранные на языке Go, со встроенными сетевыми интерфейсами.

СлужбаНазначение
Служба фильтрацииПлагин фильтрации в составе CoreDNS: применение политик и категорий на пути DNS-запроса
Служба управленияREST-интерфейс web-консоли и защищённый интерфейс управления подчинёнными узлами
Служба категоризацииКомпиляция и выдача снимка правил фильтрации
Служба приёма событийПриём событий фильтрации и запись в аналитическое хранилище, экспорт во внешние системы
Служба синхронизацииПолучение конфигурации с головного сервера (на подчинённых узлах)
Служба управления зонамиПрименение правил маршрутизации зон в рекурсивном резолвере

9. Системы управления базами данных

СУБДВерсияНазначение
PostgreSQL16Основное хранилище конфигурации; источник истины для головного сервера и подчинённых узлов
ClickHouse24.8Аналитическое хранилище журнала запросов; предрасчитанные почасовые агрегаты для отчётов

Обе СУБД поставляются в составе продукта и разворачиваются автоматически. Внешние экземпляры СУБД не требуются.

10. Языки программирования

ЯзыкВерсияГде применяется
Go1.25Все серверные компоненты: фильтрация, управление, категоризация, приём событий, синхронизация
TypeScript5.5Web-консоль администратора
SQLСхемы и запросы к PostgreSQL и ClickHouse
Shell (bash)Сценарии установки, запуска и обслуживания
Python3.12Только подготовка эксплуатационной документации; в состав поставляемого ПО не входит

10.1. Основные библиотеки и компоненты

КомпонентВерсияНазначение
CoreDNS1.14Каркас DNS-сервера, в который встроен плагин фильтрации
miekg/dns1.1Работа с протоколом DNS
pgx5.10Драйвер PostgreSQL
golang-jwt5.3Сеансовые токены web-консоли
Prometheus client1.23Публикация метрик
React18.3Каркас web-консоли
Ant Design5.20Библиотека элементов интерфейса
React Router6.26Маршрутизация в web-консоли

10.2. Криптографические механизмы

МеханизмГде применяется
TLS 1.2 и вышеWeb-консоль, DNS-over-TLS, DNS-over-HTTPS, интерфейс управления подчинёнными узлами
ECDSA P-256Сертификаты интерфейса управления и web-консоли
Ed25519Подпись лицензионных ключей и проверка их подлинности
bcryptХранение паролей учётных записей
Argon2id и XChaCha20-Poly1305Шифрование резервных копий головного сервера
DNSSECПроверка подлинности ответов при рекурсивном разрешении имён

11. Среды и инструменты разработки

ИнструментВерсияНазначение
Go toolchain1.25Сборка и тестирование серверных компонентов
Node.js22Сборка web-консоли
Vite5.4Сборщик web-консоли
Docker и Docker Composev2Сборка образов, локальный стенд, интеграционные тесты
GitСистема контроля версий

Сборка поставляемого пакета выполняется одним сценарием: собираются образы компонентов, к ним добавляются сторонние образы СУБД и веб-сервера, сценарии установки, конфигурация и документация. Полученный архив содержит всё необходимое и не требует доступа в интернет на стороне заказчика.