Как настроить правила firewall и NAT
Когда использовать
Когда через Edge нужно пропустить или закрыть трафик, а также опубликовать сервис под другим адресом и портом. Инструкция ведёт от чтения текущего набора до применения правил на маршрутизаторе и проверки по журналу пакетного фильтра.
Держите в голове главное свойство: правка правил и их применение — разные шаги. Добавление и удаление правил меняет только конфигурацию в vStack Center. Пока не нажата кнопка Apply rules, трафик идёт по прежнему набору. Поэтому любая серия правок заканчивается применением.
Предусловия
- для чтения набора — роль Cluster master либо любая роль ВЦОД (виртуального центра обработки данных): администратор, пользователь и наблюдатель читают правила каждого маршрутизатора своего ВЦОД;
- для правки и применения набора — роль Cluster master либо владение маршрутизатором. Администратор ВЦОД правит и применяет правила только тех маршрутизаторов, которые создал сам;
- для применения набора маршрутизатор запущен: операция дошла до конца, внутренняя инициализация (bootstrap) завершена;
- порты маршрутизатора уже подключены к сетям: правило привязывается к порту, а в форме порт выбирается по имени сети;
- версия vStack Center — 3.0.3.
Шаги
-
Откройте страницу маршрутизатора. В боковом дереве раскройте Virtual Data Centers, выберите ВЦОД, перейдите в его раздел Edges и откройте строку нужного маршрутизатора. Текущие наборы лежат в секциях Firewall rules и NAT rules — таблицы правил с числом правил у заголовка секции.
-
Добавьте правило firewall. В секции Firewall rules нажмите Add rule и заполните поля:
Поле формы Обязательное Что задаёт # да Номер правила, 100–32767. Форма подставляет его сама: 100 для первого правила, дальше — максимальный номер набора плюс 100 Action да Действие: block или pass Direction да Направление: in или out Network да Порт маршрутизатора, к которому привязано правило. Выбирается по имени сети Protocol да Протокол: ICMP, UDP, TCP или IP From (CIDR) да Источник в формате CIDR. По умолчанию 0.0.0.0/0From Port да Порт источника. По умолчанию 0Dst. (CIDR) да Назначение в формате CIDR. По умолчанию 0.0.0.0/0Dst. Port да Порт назначения. По умолчанию 0Log нет Флажок логирования правила. Доступен только для действия block Нажмите Save Rule — правило появится в таблице секции.
-
Добавьте NAT-правило. В секции NAT rules нажмите Add rule. Здесь вместо направления и порта источника задаются адрес и порт трансляции:
Поле формы Что задаёт # Номер правила. Форма подставляет его сама по тому же правилу, что и в firewall Action Действие: SNAT, DNAT или biNAT Network Порт маршрутизатора, к которому привязано правило Protocol Протокол: ICMP, UDP, TCP или IP From (CIDR) Источник в формате CIDR Dst. (CIDR) Назначение в формате CIDR Dst. Port Порт назначения NAT IP Адрес трансляции — одиночный IPv4, без маски NAT Port Порт трансляции Нажмите Save Rule.
-
Удалите ненужные правила. В строке правила нажмите значок удаления и подтвердите удаление кнопкой Remove в диалоге «Are you sure want to remove firewall rule N?» (для NAT — «Are you sure want to remove NAT rule N?»).
Изменить правило на месте нельзя: правку выполняют удалением правила и добавлением нового с тем же номером.
-
Примените набор. Кнопка Apply rules стоит под секциями на странице маршрутизатора; тот же пункт есть в меню Actions — и на странице, и в строке списка Edges.
Применение заменяет набор на маршрутизаторе целиком, а не доливает изменения. Поэтому серию правок применяют один раз — после последней правки.
Кнопка и пункт меню остаются неактивными, пока маршрутизатор не запущен, его операция не дошла до конца или внутренняя инициализация после последнего запуска не завершилась.
Проверка результата
Успешное применение панель подтверждает уведомлением, а в секции General properties обновляется пара Rules applied — время, когда маршрутизатор принял набор. Рядом стоит State modified: если это время новее, маршрутизатор перезапускался после применения набора.
Затем перечитайте таблицы секций Firewall rules и NAT rules и сверьте, что правила с нужными номерами на месте, а удалённых в наборе нет. Колонки повторяют поля формы: у firewall — Action, Log, Direction, Network, Protocol, From (CIDR), From Port, Dst. (CIDR), Dst. Port; у NAT — Action, Network, Protocol, From (CIDR), Dst. (CIDR), Dst. Port, NAT IP, NAT Port.
Журнал пакетного фильтра
Когда правило добавлено и применено, а трафик ведёт себя не так, как ожидалось,
заберите журнал пакетного фильтра в секции Logs на странице маршрутизатора.
Секция появляется, только если выгрузка журнала включена признаком возможности
feature.edge_log_pcap в параметрах кластера и у роли есть доступ к
маршрутизатору. В журнал попадают пакеты, заблокированные правилами с включённым
флажком Log.
-
Задайте поле Limit — сколько пакетов забрать.
-
Задайте поле Period — интервал, за который нужен журнал.
-
Нажмите Get file. Рядом появится ссылка download — по ней сохраняется PCAP-файл, который открывают в анализаторе трафика. Если за интервал ничего не нашлось, секция отвечает «No data found. Try another params.».
Границы применимости журнала:
| Ограничение | Почему | Как обойти |
|---|---|---|
| Журнал хранится 24 часа | Пакетный фильтр держит на маршрутизаторе только суточное окно | Забирайте журнал по горячим следам. Запрос к более старому интервалу вернёт пустой файл |
| Выгрузка обрезается 3000 пакетами | Предел агента: значение 0 и любое значение больше 3000 приводятся к 3000 | Сужайте интервал в поле Period вместо увеличения Limit |
| Секции Logs нет на странице | Выгрузка журнала включается признаком feature.edge_log_pcap в параметрах кластера | Попросите включить признак на уровне кластера |
Если не получилось
Отказ панель показывает уведомлением с текстом и кодом — например
The edge isn't running (error code: -14005). Поле с неверным значением форма
подсвечивает сама: так приходят отказы -18032 (From (CIDR)) и -18037
(Dst. (CIDR)) в правиле firewall.
Правка набора (добавление и удаление правил):
| Отказ | Почему | Как обойти |
|---|---|---|
-18018 Rule number below 100, -18019 Rule number above 32767 | Номер правила firewall вне допустимого диапазона | Возьмите номер из диапазона 100–32767 — форма подсказывает границы у поля #. Те же границы действуют при удалении (-18318, -18319) |
-17032, -17037, -18032, -18037 Invalid CIDR value | Источник или назначение заданы не в формате CIDR: -17032 и -17037 — From (CIDR) и Dst. (CIDR) в NAT-правиле, -18032 и -18037 — те же поля в правиле firewall | Пишите сеть как x.x.x.x/n; одиночный адрес — с маской /32 |
-18053 Bad rule_log param value | Логирование правила задано значением вне 0 и 1 | Управляйте логированием флажком Log: он доступен только для действия block |
-18350 FW rule N not found for edge, -18250 NAT rule N not found for edge | Правила с таким номером в наборе уже нет: его удалили из другой сессии | Перечитайте таблицу секции Firewall rules или NAT rules и удаляйте правило из текущего набора |
-17050, -18050, -18220, -18320, -18510 Edge id doesn't exist | Маршрутизатор не найден: запись уже удалена либо открыта устаревшая страница | Вернитесь в список Edges, обновите его и откройте маршрутизатор заново |
-18803, -17003, -18003, -18203, -18303 Bad edge_id param value | Идентификатор маршрутизатора не похож на UUID | Откройте маршрутизатор из списка Edges, а не по сохранённой ссылке |
-403 Access denied | Маршрутизатор создал другой пользователь, а прав уровня кластера у роли нет | Правьте и применяйте правила владельцем маршрутизатора или ролью Cluster master. Чтение набора при этом остаётся доступным всем ролям своего ВЦОД |
-17091, -18091, -18240, -18340 | Ошибка базы данных | Повторите правку; при повторе отказа проверьте состояние базы кластера |
Применение набора и журнал:
| Отказ | Почему | Как обойти |
|---|---|---|
-14005 The edge isn't running, -25005 | Маршрутизатор остановлен, а набор правил принимает только работающий Edge | Запустите маршрутизатор кнопкой запуска рядом с UUID и повторите применение |
-14006 The edge start in progress, -25006 | Запуск ещё идёт | Дождитесь, пока поле State покажет работающую машину |
-14007 The edge bootstrap has not been completed yet, -25007 | Маршрутизатор запущен, но внутренняя инициализация после последнего запуска не закончена | Подождите и повторите. Готовность видна по паре Rules applied в General properties: применение доступно, когда она не старше State modified |
-14040 Edge ID has not found | У маршрутизатора нет ни одного правила | Добавьте хотя бы одно правило, затем применяйте набор |
-14010, -25010 Edge id doesn't exist | Маршрутизатор не найден | Обновите список Edges и откройте маршрутизатор заново |
-25030 The edge feature has not been enabled | Вся функциональность Edge выключена зонтичным признаком возможности feature.edge. Этот признак проверяется раньше feature.edge_log_pcap | Попросите включить признак на уровне кластера. Пока он выключен, недоступно и чтение наборов правил |
-25025 The edge_log_pcap feature has not been enabled | Выгрузка журнала выключена признаком возможности кластера | Включите признак feature.edge_log_pcap в параметрах кластера |
-25023 ts_start param value is too low | Начало интервала раньше 1 января 2023 года | Поднимите начало интервала в поле Period: журнал всё равно хранится сутки |
-25024 ts_finish param value is less then ts_start | Конец интервала раньше начала | Выправьте порядок границ в поле Period |
-32602 | Параметры запроса не прошли проверку: например, Limit вне диапазона 0–9999 | Проверьте границы значений в полях Limit и Period |
-22 Bootstrap is not done и другие отказы агента | Агент Edge не принял набор: инициализация не завершена либо правила не загрузились | Текст отказа приходит от агента без изменений — разбирайте по нему. Синтаксически неверное правило удалите и добавьте заново |
-14004, -25004 | Ошибка базы данных либо неудачная передача агенту | Повторите операцию; при повторе отказа проверьте состояние базы и агента |
См. также
- Edge-маршрутизатор — модель наборов правил и доступа
- Как создать Edge-маршрутизатор
- Как управлять состоянием и портами Edge
- Роли и привилегии
Методы API
Операции этой страницы в API: edge-list-rules, edge-add-fw-rule,
edge-add-nat-rule, edge-remove-fw-rule, edge-remove-nat-rule,
edge-deploy-rules, edge-get-pfloggs — см.
Справочник API.