Перейти к основному содержимому

Как настроить правила firewall и NAT

Когда использовать​

Когда через Edge нужно пропустить или закрыть трафик, а также опубликовать сервис под другим адресом и портом. Инструкция ведёт от чтения текущего набора до применения правил на маршрутизаторе и проверки по журналу пакетного фильтра.

Держите в голове главное свойство: правка правил и их применение — разные шаги. Добавление и удаление правил меняет только конфигурацию в vStack Center. Пока не нажата кнопка Apply rules, трафик идёт по прежнему набору. Поэтому любая серия правок заканчивается применением.

Предусловия​

  • для чтения набора — роль Cluster master либо любая роль ВЦОД (виртуального центра обработки данных): администратор, пользователь и наблюдатель читают правила каждого маршрутизатора своего ВЦОД;
  • для правки и применения набора — роль Cluster master либо владение маршрутизатором. Администратор ВЦОД правит и применяет правила только тех маршрутизаторов, которые создал сам;
  • для применения набора маршрутизатор запущен: операция дошла до конца, внутренняя инициализация (bootstrap) завершена;
  • порты маршрутизатора уже подключены к сетям: правило привязывается к порту, а в форме порт выбирается по имени сети;
  • версия vStack Center — 3.0.3.

Шаги​

  1. Откройте страницу маршрутизатора. В боковом дереве раскройте Virtual Data Centers, выберите ВЦОД, перейдите в его раздел Edges и откройте строку нужного маршрутизатора. Текущие наборы лежат в секциях Firewall rules и NAT rules — таблицы правил с числом правил у заголовка секции.

  2. Добавьте правило 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/0
    From PortдаПорт источника. По умолчанию 0
    Dst. (CIDR)даНазначение в формате CIDR. По умолчанию 0.0.0.0/0
    Dst. PortдаПорт назначения. По умолчанию 0
    LogнетФлажок логирования правила. Доступен только для действия block

    Нажмите Save Rule — правило появится в таблице секции.

  3. Добавьте 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.

  4. Удалите ненужные правила. В строке правила нажмите значок удаления и подтвердите удаление кнопкой Remove в диалоге «Are you sure want to remove firewall rule N?» (для NAT — «Are you sure want to remove NAT rule N?»).

    Изменить правило на месте нельзя: правку выполняют удалением правила и добавлением нового с тем же номером.

  5. Примените набор. Кнопка 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.

  1. Задайте поле Limit — сколько пакетов забрать.

  2. Задайте поле Period — интервал, за который нужен журнал.

  3. Нажмите 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Ошибка базы данных либо неудачная передача агентуПовторите операцию; при повторе отказа проверьте состояние базы и агента

См. также​

Методы 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.