Глава 39. Визуальный редактор политик (VPM)¶
Визуальный редактор политик (VPM) доступен по адресу Configuration > Policy > Visual Policy Manager (маршрут /configuration/policy/vpm). Позволяет создавать и редактировать правила через графический интерфейс без знания синтаксиса CPL.
38.1. Обзор интерфейса¶
Интерфейс VPM состоит из четырёх зон:
1. Вкладки слоёв — горизонтальные вкладки вверху. Каждая вкладка соответствует CPL-секции:
| Вкладка VPM | CPL-секция | Иконка | Описание |
|---|---|---|---|
| Web Access Layer | proxy |
Globe | Правила веб-доступа по URL-категориям и группам пользователей |
| SSL Inspection Layer | ssl_intercept |
Shield | Политики TLS-инспекции |
| Forwarding Layer | forward |
Settings | Правила маршрутизации через upstream-прокси |
| DNS Proxy Layer | dns_proxy |
FileText | DNS-прокси фильтрация |
| Web Content Layer | cache |
Database | Кэширование и анализ контента |
| SSL Access Layer | ssl |
Lock | Allow/deny для HTTPS-трафика |
| Admin Layer | admin |
Users | Административный контроль доступа |
2. Таблица правил — основная область, где каждое правило представлено строкой:
| Колонка | Содержимое | CPL-поля | Примеры |
|---|---|---|---|
| Source | Условия по источнику запроса | client.address, user, group, authenticated, geo.src.country, request.header.* |
10.0.0.0/8, HR_Users (define-ссылка) |
| Destination | Условия по назначению | url.domain, url.path, category, url.extension, geo.dst.country |
facebook.com, Social Media |
| Service | Тип сервиса | http.method, url.scheme |
POST, HTTPS |
| Action | Действие (цветовая индикация) | 17 типов действий | ALLOW (зелёная), DENY (красная) |
| Enable/Disable | Переключатель активности | enabled flag |
Toggle switch |
| Menu | Контекстное меню | -- | Edit, Duplicate, Delete |
Правила, содержащие конструкции, не отображаемые в VPM (вложенные OR-группы, не-VPM поля), помечаются индикатором и доступны только для просмотра.
3. Панель инструментов:
| Кнопка | Описание |
|---|---|
| Upload | Загрузить .cpl файл: содержимое читается, проверяется синтаксис, при успехе правила разбираются в редактор и помечаются как несохранённые изменения |
| Download | Скачать текущую активную политику как .cpl файл |
| Add Rule | Добавить новое правило в текущий подслой |
| Add Sublayer | Добавить подслой с условием-ограничителем (guard) |
| Open CPL Editor | Переход на CPL Editor (без перезагрузки страницы) |
| Reload | Загрузить текущую политику с сервера |
4. Policy Apply Bar (внизу экрана) — общий с CPL Editor компонент: - Индикатор несохранённых изменений - Кнопка Save Policy — сериализация CPL из store, валидация, установка - Кнопка Reload — принудительная загрузка с сервера
38.2. Слои и подслои (sublayers)¶
Правила внутри каждого слоя организованы в подслои (sublayers). Каждый подслой имеет:
- Guard — условие, применяемое ко всем правилам подслоя. Берётся из заголовка CPL-секции:
<Proxy client.address=10.0.0.0/8>. Редактируется через диалог настройки условия - Label — текстовая метка для идентификации (редактируется по клику прямо в строке). Сохраняется в CPL как комментарий
; @sublayer-label: My Nameперед заголовком секции. Метка сохраняется при загрузке и обратном сохранении файла - Сворачивание — переключатель стрелкой. В свёрнутом состоянии отображается только заголовок с меткой и количеством правил
- Rules — список правил внутри подслоя
Два <Proxy> блока в CPL-файле создают два независимых подслоя с собственными условиями-ограничителями (guard) и правилами. При загрузке и обратном сохранении структура файла полностью сохраняется.
Пример CPL с sublayer'ами:
; @sublayer-label: Corporate LAN
<Proxy client.address=10.0.0.0/8>
url.domain=internal.corp allow
allow
</Proxy>
; @sublayer-label: Guest Network
<Proxy client.address=192.168.100.0/24>
category=Malware deny
authenticated=no deny
allow
</Proxy>
Операции с подслоями: - Добавить новый подслой - Удалить подслой по индексу - Установить/изменить условие-ограничитель (guard) - Установить текстовую метку - Переключить активный подслой
38.3. Редактирование правил (RuleEditorDialog)¶
Клик на любую ячейку правила открывает единый диалог редактирования правила с четырьмя вкладками:
Source — условия по источнику запроса:
| Поле | CPL-условие | Описание |
|---|---|---|
| Client IP | client.address |
IP-адрес или CIDR клиента |
| User | user |
Имя пользователя |
| Group | group |
Группа пользователя |
| Authenticated | authenticated |
Статус аутентификации (yes/no) |
| Source Country | geo.src.country |
Геолокация источника |
| Source Region | geo.src.region |
Регион источника |
| Source City | geo.src.city |
Город источника |
| Source ASN | geo.src.asn |
AS-номер источника |
| Source Organization | geo.src.org |
Организация источника |
| Request Header | request.header.* |
Произвольный HTTP-заголовок (поле с автоподстановкой стандартных заголовков) |
Destination — условия по назначению:
| Поле | CPL-условие | Описание |
|---|---|---|
| Domain | url.domain |
Доменное имя |
| Path | url.path |
URL-путь |
| Category | category |
Категория URL |
| Extension | url.extension |
Расширение файла |
| Destination Country | geo.dst.country |
Геолокация назначения |
| Destination Region | geo.dst.region |
Регион назначения |
| Destination City | geo.dst.city |
Город назначения |
| Destination ASN | geo.dst.asn |
AS-номер назначения |
| Destination Organization | geo.dst.org |
Организация назначения |
Service — условия по типу сервиса:
| Поле | CPL-условие | Описание |
|---|---|---|
| HTTP Method | http.method |
GET, POST, PUT, DELETE и др. |
| URL Scheme | url.scheme |
HTTP, HTTPS, FTP |
Action — действия (17 типов): - Выбор основного действия: Allow, Deny, Force Deny, Authenticate, Redirect, SSL No Intercept и др. - Параметры действия: realm для Authenticate, URL для Redirect и т.д. - Дополнительные действия: Log, Label, Set Header
Операторы (14 типов):
equals, not_equals, prefix, not_prefix, suffix, not_suffix, substring, not_substring, regex, in, not_in, between, exists, not_exists
Ссылки на define-объекты: При вводе значения можно выбрать именованный объект из библиотеки. В таблице правил define-ссылки отображаются как цветные бейджи с иконкой типа (Network для subnet, Globe для domain, Tag для category и др.).
Диалог накапливает изменения до подтверждения и содержит единую кнопку Save Rule.
38.4. Библиотека объектов (Object Library)¶
Библиотека объектов доступна по адресу Configuration > Policy > Object Library (маршрут /configuration/policy/objects). Управляет define-блоками, которые используются в правилах по имени.
Интерфейс разделён на две панели: - Левая панель (3/12 ширины) — список категорий объектов с иконками и счётчиками - Правая панель (9/12 ширины) — объекты выбранной категории с поиском, добавлением, редактированием и удалением
7 типов объектов:
| Тип | CPL define | Иконка | Описание | Preview |
|---|---|---|---|---|
| Subnets | define subnet |
Network | IP-сети (CIDR) | Первые 3 сети + "+N more" |
| Domain Lists | define url.domain condition |
Globe | Списки доменов | Первые 3 домена + "+N more" |
| URL Lists | define url condition |
Globe | URL-паттерны | Первые 3 паттерна + "+N more" |
| Category Groups | define category |
Tag | Группы URL-категорий | Первые 3 категории + "+N more" |
| Conditions | define condition |
Zap | Именованные составные условия | Первые 2 строки текста |
| Actions | define action |
Zap | Именованные блоки действий | Первые 2 действия |
| Exception Pages | (наше расширение) | Shield | Страницы ошибок | Заголовок или HTTP-код |
Для каждого объекта отображается:
- Моноширинное имя
- Бейдж с описанием: 3 networks, 5 domains, HTTP 403 и др.
- Бейдж со счётчиком ссылок: 2 refs, 5 refs — количество правил, ссылающихся на объект
- Описание (опциональное текстовое поле)
- Превью содержимого — первые 3 элемента в виде моноширинных бейджей
CRUD-операции: - Add — кнопка открывает диалог редактора объекта в режиме создания. Имя проверяется на уникальность - Edit — контекстное меню > Edit. Открывает диалог редактора объекта в режиме редактирования - Delete — контекстное меню > Delete. Защита от удаления: кнопка Delete неактивна, если на объект ссылается хотя бы одно правило. При попытке удаления используемого объекта отображается всплывающее уведомление с ошибкой
Каждый тип объекта имеет свой диалог редактирования: - редактор подсетей (Subnets) - редактор списков доменов (Domain Lists) - редактор URL-списков (URL Lists) - редактор групп категорий (Category Groups) - редактор условий (Conditions) - редактор действий (Actions) - редактор страниц ошибок (Exception Pages)
SSE-интеграция: Страница автоматически обновляется при изменении политики из внешнего источника. Если есть несохранённые изменения, отображается предупреждение с кнопкой Reload.
38.5. Навигация между страницами политик¶
Все три страницы (VPM, CPL Editor, Object Library) + Policy Files объединены общим макетом с горизонтальной навигацией:
| Вкладка | Маршрут | Иконка | Описание |
|---|---|---|---|
| Visual Policy Manager | /configuration/policy/vpm |
Layers | Визуальный редактор правил |
| CPL Editor | /configuration/policy/cpl-editor |
Terminal | Текстовый редактор CPL |
| Object Library | /configuration/policy/objects |
BookOpen | Именованные объекты и определения |
| Policy Files | /configuration/policy/policy-files |
FileText | Управление файлами политик |