Одной из ключевых функций ARMA Стена является фильтрация сетевого трафика с использованием встроенного межсетевого экрана (МЭ). Система основана на Linux и использует механизм фильтрации пакетов nftables, реализованный в ядре операционной системы. Благодаря этому становится возможным гибкое и высокопроизводительное управление потоками данных непосредственно на уровне ядра.
В ARMA Стена применяется подход на основе зон безопасности, который расширяет стандартные возможности управления трафиком. Обработка пакетов может выполняться на нескольких этапах – начиная с момента их приёма сетевым интерфейсом и драйвером и вплоть до передачи конечному получателю (например, веб-серверу или другому сетевому устройству).
Для наглядного представления логики обработки пакетов и возможных маршрутов их прохождения ниже приведена упрощённая схема потока трафика, основанная на стандартной архитектуре обработки пакетов Netfilter (см. Рисунок – Cхема потока трафика).
По умолчанию в системе ARMA Стена разрешён весь входящий и исходящий трафик. Транзитный трафик по умолчанию блокируется.
Для изменения политики обработки трафика по умолчанию (установка действия drop или accept ) необходимо выполнить в конфигурационном режиме команду: set firewall <ipv4 | ipv6 | bridge> <forward filter | input filter | output filter> default-action accept.
В МЭ реализованы две политики фильтрации сетевого трафика:
Стандартная политика на основе системных наборов правил.
Системные наборы правил представляют собой предопределённые пакеты правил, входящие в состав МЭ. В зависимости от направления и назначения сетевого трафика, применяются следующие системные наборы правил:
«Input» – набор правил для фильтрации входящего IPv4/IPv6-трафика, адресованного самой системе ARMA Стена.
«Output» – набор правил для фильтрации исходящего IPv4/IPv6-трафика, инициированного самой системой ARMA Стена, например, ответы на внешние запросы (SSH, ICMP и др.).
«Forward» – набор правил для фильтрации транзитного IPv4/IPv6-трафика, проходящего через устройство ARMA Стена.
Политика на основе зон сети.
В рамках архитектуры, основанной на зонах безопасности, сетевые интерфейсы объединяются в логические группы – зоны, в соответствии с их функциональным или сегментационным назначением. Правила фильтрации трафика между зонами определяются кастомными наборами правил, назначенными для каждой пары взаимодействующих зон. Такой подход обеспечивает гибкое и детализированное управление доступом, позволяя задавать различные уровни разрешений и политик безопасности для каждой конкретной зоны и межзонного взаимодействия.
Примечание
Стандартная политика фильтрации трафика имеет приоритет над политикой на основе зон сети и применяется по умолчанию.
По умолчанию сетевой трафик сначала обрабатывается на уровне системных наборов правил. Для использования исключительно политики на основе зон необходимо разрешить весь трафик на уровне системных наборов правил. Это осуществляется путём установки параметра «Действие по умолчанию» в значение «accept» и удаления (или отключения) всех правил в каждом из системных наборов Input, Output и Forward.
При конфигурации МЭ требуется обеспечить доступность определённого набора сетевых портов, необходимых для стабильного функционирования системных сервисов и взаимодействия с другими компонентами инфраструктуры. Перечень используемых портов приведён в таблице «Служебные порты системы ARMA Стена».
Порт для удалённого доступа к системе по протоколу SSH
123
UDP
Порт службы синхронизации времени NTP
443
TCP
Порт, используемый для онлайн-активации системы и получения обновлений правил СОВ
3128
TCP
Порт прокси-сервера для обработки HTTP-запросов
3129
TCP
Порт прокси-сервера для обработки HTTPS-запросов
5000
TCP
Порт взаимодействия системы ARMA Стена с ARMA МС
8082
TCP
Порт, предназначенный для синхронизации конфигураций и служебного взаимодействия с ARMA МС
Примечание
Рекомендуется применять строгую политику фильтрации сетевого трафика на уровне межсетевого экрана, предполагающую по умолчанию запрет всего входящего, исходящего и транзитного трафика. Доступ должен быть разрешён только на основании принципа минимальных привилегий.
В случае применения политик, блокирующих весь входящий или исходящий сетевой трафик в системе ARMA Стена, необходимо создать разрешающее правило для сетевого интерфейса localhost (127.0.0.1) для обеспечения взаимодействия между внутренними компонентами системы.
Пример разрешающих правил для взаимодействия системы ARMA Стена с ARMA МС при блокировке всего входящего IPv4-трафика:
# Открыть порт 5000 для взаимодействия системы ARMA Стена с ARMA МС:
set firewall ipv4 input filter rule 10 action 'accept'
set firewall ipv4 input filter rule 10 destination port '5000'
set firewall ipv4 input filter rule 10 protocol 'tcp'
# Разрешающее правило для взаимодействия между внутренними сервисами ARMA Стена:
set firewall ipv4 input filter rule 30 action 'accept'
set firewall ipv4 input filter rule 30 destination address '127.0.0.1'
Пример разрешающих правил для взаимодействия системы ARMA Стена с ARMA МС при блокировке всего исходящего IPv4-трафика:
# Открыть порт 5000 для взаимодействия системы ARMA Стена с ARMA МС:
set firewall ipv4 output filter rule 10 action 'accept'
set firewall ipv4 output filter rule 10 source port '5000'
set firewall ipv4 output filter rule 10 protocol 'tcp'
# Открыть порт, указанный при добавлении источника ARMA Стена (NGFW) в ARMA МС,
для отправки событий в ARMA МС:
set firewall ipv4 output filter rule 20 action 'accept'
set firewall ipv4 output filter rule 20 source port 'номер_порта_в_ARMA_МС'
set firewall ipv4 output filter rule 20 protocol 'tcp'
# Разрешающее правило для взаимодействия между внутренними сервисами ARMA Стена:
set firewall ipv4 output filter rule 30 action 'accept'
set firewall ipv4 output filter rule 30 source address '127.0.0.1'
Для создания группы необходимо ввести следующую команду:
set firewall group <type-alias> <name>
где:
<type-alias> – тип группы;
<name> – имя группы. Должно быть уникальным в рамках своего типа, содержать не более 31 символа, начинаться только с латинской буквы или цифры, не может начинаться с символов «-» или «!», и не должно содержать символы «|», «;», «:», «&», «$», «<», «>».
Поддерживается создание групп следующих типов (<type-alias>):
«address-group» – «IPv4-адреса»;
«domain-group» – «Домены»;
«dynamic-group» – «Динамические адреса»;
«interface-group» – «Интерфейсы»;
«ipv6-address-group» – «IPv6-адреса»;
«ipv6-network-group» – «IPv6-сети»;
«mac-group» – «Mac-адреса»;
«network-group» – «IPv4-сети»;
«port-group» – «Порты».
Для добавления описания группы необходимо ввести следующую команду:
set firewall group <type-alias> <name> description <text>
где <text> – описание группы. Максимально допустимая длина описания – 127 символов.
Для добавления группы в другую группу необходимо ввести следующую команду:
set firewall group <type-alias> <name1> include <name2>
где <name2> – имя группы, которую требуется добавить в группу <name1>.
Динамические группы отличаются от всех ранее определённых групп тем, что они не только могут выступать в качестве источника или назначения в правилах МЭ, но и их состав не определяется статически посредством конфигурации системы. Вместо этого члены этих групп добавляются динамически с использованием правил МЭ.
Динамические группы, как и любые другие группы брандмауэра, могут использоваться в правилах фильтрации в качестве условий сопоставления, позволяя создавать гибкие правила на основе динамически обновляемых списков IP-адресов.
Поддержка динамических групп реализована для IPv4 и IPv6. Команды для создания групп:
set firewall group dynamic-group address-group <name> # Для IPv4
set firewall group dynamic-group ipv6-address-group <name> # Для IPv6
Для добавления описания группы необходимо ввести следующую команду:
set firewall group dynamic-group address-group <name> description <text> # Для IPv4
set firewall group dynamic-group ipv6-address-group <name> description <text> # Для IPv6
где <text> – текстовое описание динамической группы. Максимально допустимая длина описания – 127 символов.
Добавление элементов в динамические группы
Элементы добавляются в динамические группы через правила брандмауэра. Для добавления IP-адресов источника или назначения используются следующие команды:
Добавление адреса назначения:
# Правило в системных наборах правил:
set firewall ipv4 [forward | input | output] filter rule <1-999999> add-address-to-group destination-address address-group <name>
set firewall ipv6 [forward | input | output] filter rule <1-999999> add-address-to-group destination-address address-group <name>
# Правило в кастомном наборе правил:
set firewall ipv4 name <name> rule <1-999999> add-address-to-group destination-address address-group <name>
set firewall ipv6 name <name> rule <1-999999> add-address-to-group destination-address address-group <name>
Добавление адреса источника:
# Правило в системных наборах правил:
set firewall ipv4 [forward | input | output] filter rule <1-999999> add-address-to-group source-address address-group <name>
set firewall ipv6 [forward | input | output] filter rule <1-999999> add-address-to-group source-address address-group <name>
# Правило в кастомном наборе правил:
set firewall ipv4 name <name> rule <1-999999> add-address-to-group source-address address-group <name>
set firewall ipv6 name <name> rule <1-999999> add-address-to-group source-address address-group <name
Для каждого правила возможно задать определённый тайм-аут. Если адрес источника или назначения соответствует правилу, он будет добавлен в группу и останется в ней до истечения заданного времени. Если тайм-аут не указан, элемент будет находиться в группе до следующей перезагрузки системы ARMA Стена или до внесения изменений в конфигурацию МЭ, которые приведут к обновлению статуса элемента.
Для установки тайм-аута необходимо ввести следующие команды:
# Правило в системных наборах правил:
set firewall ipv4 [forward | input | output] filter rule <1-999999> add-address-to-group [destination-address | source-address] timeout <timeout>
set firewall ipv6 [forward | input | output] filter rule <1-999999> add-address-to-group [destination-address | source-address] timeout <timeout>
# Правило в кастомном наборе правил:
set firewall ipv4 name <name> rule <1-999999> add-address-to-group [destination-address | source-address] timeout <timeout>
set firewall ipv6 name <name> rule <1-999999> add-address-to-group [destination-address | source-address] timeout <timeout>
где <timeout> – значение тайм-аута. Тайм-аут может быть определён с помощью секунд, минут, часов или дней:
<number>s – значение тайм-аута в секундах;
<number>m – значение тайм-аута в минутах;
<number>h – значение тайм-аута в часах;
<number>d – значение тайм-аута в днях.
Допустимые диапазоны значений <number> в зависимости от единицы измерения:
В случае попытки удаления групп, используемых в правилах NAT или МЭ, система выведет сообщение о невозможности выполнения данной операции. Необходимо сначала исключить удаляемую группу из правил, после чего повторить удаление.
Стандартная политика на основе системных наборов правил
В зависимости от принадлежности трафика существуют следующие наборы правил (<rule_set>):
«input» – системный набор правил, предназначенных для фильтрации входящих в ARMA Стена пакетов.
«output» – системный набор правил, предназначенных для фильтрации исходящих от ARMA Стена пакетов.
«forward» – системный набор правил, предназначенных для фильтрации транзитных пакетов.
«name» – кастомный набор правил. Используется во всех вариантах работы МЭ, включая системные наборы «input», «output» и «forward», реализуемый через действия правила «jump».
В конфигурации по умолчанию системы ARMA Стена доступны системные наборы правил: «input», «output» и «forward». Эти наборы изначально не содержат никаких правил МЭ.
Для создания кастомного набора правил МЭ необходимо ввести следующую команду:
set firewall <type> name <nameset>
где:
<type> – поддерживается настройка МЭ по следующим типам:
<nameset> – имя кастомного набора правил. Максимально допустимая длина значения 28 символов. Допускается использование только латинских букв (A–Z, a–z), цифр (0–9) и специальных символов: подчёркивание («_») и точка («.»). Значение должно начинаться с латинской буквы или цифры.
Набор правил содержит действие по умолчанию, которое применяется к сетевому пакету, если ни одно из правил в наборе не сработало.
Для назначения действия по умолчанию для набора правил МЭ, необходимо ввести следующую команду:
где <text> – описание набора правил. Максимально допустимая длина описания – 127 символов.
Для включения журналирования действия по умолчанию для набора правил МЭ необходимо ввести следующую команду:
для кастомного набора правил:
set firewall <type> name <nameset> default-log
для системных наборов правил:
set firewall <type> <input | output | forward> filter default-log
Примечание
При сохранении настроек после удаления набора правил, если набор назначен на направление трафика между зонами сети или используется в других наборах и правилах для переадресации на них, система выдаст ошибку с запретом на удаление. Сохранение не будет выполнено.
Правила МЭ необходимо создавать, придерживаясь следующего формата:
set firewall <type> <rule_set> rule <num> action <act>
где:
<rule_set> – набор правил, к которому будет относиться правило. Возможно указать следующие значения: «input filter», «output filter», «forward filter» или «name»;
<num> – числовой идентификатор правила. Возможно указание значения в диапазоне от «1» до «999999». Пакеты данных обрабатываются последовательно, начиная с «1» номера правила. В случае обнаружения первого соответствия с правилом, выполняется предписанное действие, после чего дальнейшая обработка данного пакета данных прекращается;
<act> – действие, применяемое к пакету.
Посредством правил МЭ поддерживается выполнение следующих действий (<act>) над пакетом данных:
«accept» – разрешить.
«continue» – продолжить разбор следующего правила.
«drop» – отбросить пакет.
«reject» – отклонить пакет.
«jump» – перейти к кастомному набору правил.
При назначении действия «jump» требуется указать имя целевого кастомного набора правил с помощью дополнительной команды:
set firewall <type> <rule_set> rule <num> jump-target <nameset>
Примечание
Целевой набор правил, на который ссылается правило, должен быть создан заранее. В противном случае при попытке сохранить правило система выдаст ошибку, что набор <nameset> не существует: «Invalid jump-target. Firewall ipv4 name <nameset> does not exist on the system».
«return» – вернуться к набору правил предыдущего уровня и продолжить разбор следующего правила.
Действие «return» доступно только для кастомных наборов правил.
«queue» – отправляет пакет в пользовательское пространство для дальнейшей обработки.
Данный оператор отправляет пакет в пространство пользователя с использованием функции nfnetlink_queue. Пакет помещается в очередь, идентифицируемую по 16-разрядному номеру. Пользовательское пространство может при необходимости просмотреть и изменить пакет. Затем пользовательское пространство должно удалить пакет или повторно отправить его в ядро. Также предусмотрена возможность активации опции обхода, которая позволит не выполнять операцию записи пакета в пользовательское пространство, если в очереди нет приложений, ожидающих обработки пакета. В таком случае правило будет действовать аналогично действию «Разрешить (accept)», если не обнаружено приложений, ожидающих пакет.
«offload» – определяет, какие потоки добавляются в таблицу потоков.
Таблицы потоков позволяют ускорить передачу пакетов в программном обеспечении (и в аппаратном обеспечении, если сетевой адаптер поддерживает эту функцию) за счёт обхода сетевого стека на основе conntrack. Записи представляются в виде кортежа, состоящего из входного интерфейса, адреса источника и назначения, порта источника и назначения, а также протоколов уровня 3/4. Каждая запись также кэширует информацию об интерфейсе назначения и адресе шлюза (для обновления адреса назначения на канальном уровне) с целью пересылки пакетов. Поля TTL и hoplimit также декрементируются. Таким образом, таблицы потоков обеспечивают альтернативный путь, позволяющий пакетам обойти классический путь пересылки. После установления состояния потоки разгружаются. Это означает, что первый ответный пакет обычно создаёт запись в таблице потоков. Для приёма исходного трафика требуется правило МЭ. Выражение потока в прямой цепочке должно соответствовать обратному трафику из исходного соединения. Следует иметь в виду, что обратный маршрут определяется на основе пакета, который создаёт запись в таблице потоков. Если используются определённые правила IP, необходимо убедиться, что они соответствуют как трафику ответного пакета, так и исходному трафику.
Примечание
Действие «offload» доступно только для наборов «forward» и «name».
Сетевой адаптер «Intel» серии «X710» в системе ARMA Стена не поддерживает режим «offload».
«synproxy» – это механизм защиты от SYN flood-атак, реализованный в ядре Linux и доступный через nftables.
При получении SYN-пакета synproxy отвечает SYN/ACK с использованием SYN cookie (зашифрованного номера последовательности). Если клиент возвращает корректный ACK, соединение считается легитимным, и в таблицу conntrack добавляется обычная запись. После этого пакеты передаются напрямую реальному серверному приложению на том же хосте, без проксирования или «сшивания» соединений. Это предотвращает исчерпание ресурсов conntrack при атаках, поскольку записи создаются только после завершения handshake.
Действие «synproxy» поддерживается только в наборах «input» и «forward».
Примечание
Для правил типа «bridge» поддерживаются следующие действия над пакетом: «accept», «continue», «jump», «return», «drop», «queue».
Для добавления описания правила МЭ необходимо ввести следующую команду:
set firewall <type> <rule_set> rule <num> description <text>
где <text> – описание. Максимально допустимая длина описания – 127 символов.
Для включения логирования правила необходимо ввести следующую команду:
set firewall <type> <rule_set> rule <num> log
Дополнительно возможно указать уровень логирования журнала правил МЭ:
set firewall <type> <rule_set> rule <num> log-options level <уровень>
где <уровень> – уровень логирования журнала правил МЭ. Допускается указание следующих значений:
«alert» – уровень лога, фиксирующий важные предупреждения;
«crit» – уровень лога, отображающий критические системные сообщения;
«debug» – уровень лога, фиксирующий детализированные отладочные данные;
«emerg» – уровень лога, предназначенный для записи сообщений о критических аварийных ситуациях;
«err» – уровень лога, регистрирующий ошибки и неисправности в работе системы;
«info» – уровень лога, отображающий общую информацию о функционировании системы;
«notice» – уровень лога, предназначенный для уведомления о значимых событиях;
«warn» – уровень лога, используемый для записи предупреждений о потенциальных проблемах.
Для отключения правила МЭ необходимо ввести следующую команду:
Переименование правила МЭ (изменение его идентификатора) выполняется в режиме конфигурации через командную строку. Порядок действий определяется типом набора правил.
Переименование правила в кастомном наборе правил:
admin@ngfwos# edit firewall <type> name <nameset>
[edit firewall <type> name <nameset>]
admin@ngfwos# rename rule <num1> to rule <num2>
[edit firewall <type> name <nameset>]
admin@ngfwos# exit
[edit]
admin@ngfwos#
Для массового изменения идентификаторов всех правил МЭ применяется процедура групповой перенумерации. Все действия рекомендуется выполнять в SSH-сессии для удобства копирования и вставки команд.
В процессе применения новой конфигурации (выполнения команды «commit») может наблюдаться временный период, в течение которого часть правил МЭ не применяется или отрабатывает некорректно. Это может привести к неконтролируемому прохождению сетевого трафика через интерфейсы устройства. В связи с этим процедуру групповой перенумерации рекомендуется выполнять в периоды минимальной нагрузки на сеть или в рамках планового технического окна, когда влияние на безопасность и стабильность инфраструктуры сведено к минимуму.
Генерация новой последовательности идентификаторов.
Групповая перенумерация правил МЭ завершена успешно.
Критерии соответствия в правилах МЭ «ipv4» и «ipv6»
ARMA Стена поддерживает возможность указания в правилах МЭ типа «ipv4» и «ipv6» различных критериев соответствия, по которым выполняется фильтрация.
При указании в одном правиле нескольких критериев соответствия применяется логическое условие И (AND): правило срабатывает только в случае одновременного совпадения всех заданных критериев.
Это требует особого внимания при проектировании правил. Например, если в одном правиле в качестве домена источника и домена назначения указан один и тот же адрес – например, «example.com» – и для правила задано действие «drop», то блокировка применена не будет к обычному трафику пользователей, направленному к «example.com». Правило в данном случае будет соответствовать только тем сетевым соединениям, у которых и источник, и получатель принадлежат домену «example.com», что в типовой сетевой инфраструктуре маловероятно.
<IPv4-address> – IPv4-адрес источника. Допускается указание в следующих форматах: <x.x.x.x>, <x.x.x.x/x>;
<addressrange> – диапазон IP-адресов. В зависимости от версии IP допускается указание в следующих форматах: <x.x.x.x>-<x.x.x.x>, <h:h:h:h:h:h:h:h>-<h:h:h:h:h:h:h:h>;
<IPv6-address> – IPv6-адрес источника. Допускается указание в следующих форматах: <h:h:h:h:h:h:h:h>, <h:h:h:h:h:h:h:h/x>.
<IPv4-address> – IPv4-адрес назначения. Допускается указание в следующих форматах: <x.x.x.x>, <x.x.x.x/x>;
<addressrange> – диапазон IP-адресов. В зависимости от версии IP допускается указание в следующих форматах: <x.x.x.x>-<x.x.x.x>, <h:h:h:h:h:h:h:h>-<h:h:h:h:h:h:h:h>;
<IPv6-address> – IPv6-адрес назначения. Допускается указание в следующих форматах: <h:h:h:h:h:h:h:h>, <h:h:h:h:h:h:h:h/x>.
Для указания протокола в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> protocol [<protocolname> | tcp_udp | all | <number>]
где:
<protocolname> – протокол, определённый в «/etc/protocols»;
Поддерживается указание значение <protocolname> с использованием знака «!» для инверсии, например, «!ipcomp».
«tcp_udp» – протоколы TCP и UDP;
«all» – все протоколы;
<number> – номер протокола, определённый в «/etc/protocols». Допустимые значения в диапазоне от «0» до «255».
Для указания протокола «icmp» в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> icmp|icmpv6 <code <0-255> | type <0-255>>
где:
<code> – номер кода icmp. Допустимые значения в диапазоне от «0» до «255»;
«type» – номер типа icmp. Допустимые значения в диапазоне от «0» до «255».
Поддерживается указание имени типа «icmp» в качестве критерия соответствия:
set firewall ipv4|ipv6 <rule_set> rule <num> icmp|icmpv6 type-name <text>
где <text> – имя типа icmp.
Для «icmp» допускается указать следующие значения:
«echo-reply» – ICMP тип 0;
«destination-unreachable» – ICMP тип 3;
«source-quench» – ICMP тип 4;
«redirect» – ICMP тип 5;
«echo-request» – ICMP тип 8;
«router-advertisement» – ICMP тип 9;
«router-solicitation» – ICMP тип 10;
«time-exceeded» – ICMP тип 11;
«parameter-problem» – ICMP тип 12;
«timestamp-request» – ICMP тип 13;
«timestamp-reply» – ICMP тип 14;
«info-request» – ICMP тип 15;
«info-reply» – ICMP тип 16;
«address-mask-request» – ICMP тип 17;
«address-mask-reply» – ICMP тип 18.
Для «icmpv6» допускается указать следующие значения:
«destination-unreachable» – ICMPv6 тип 1;
«packet-too-big» – ICMPv6 тип 2;
«time-exceeded» – ICMPv6 тип 3;
«echo-request» – ICMPv6 тип 128;
«echo-reply» – ICMPv6 тип 129;
«mld-listener-query» – ICMPv6 тип 130;
«mld-listener-report» – ICMPv6 тип 131;
«mld-listener-reduction» – ICMPv6 тип 132;
«nd-router-solicit» – ICMPv6 тип 133;
«nd-router-advert» – ICMPv6 тип 134;
«nd-neighbor-solicit» – ICMPv6 тип 135;
«nd-neighbor-advert» – ICMPv6 тип 136;
«nd-redirect» – ICMPv6 тип 137;
«parameter-problem» – ICMPv6 тип 4;
«router-renumbering» – ICMPv6 тип 138;
«ind-neighbor-solicit» – ICMPv6 тип 141;
«ind-neighbor-advert» – ICMPv6 тип 142;
«mld2-listener-report» – ICMPv6 тип 143.
Для указания флага протокола «tcp» в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> tcp flags <flags>
где <flags> – флаг TCP.
Поддерживается указание следующих флагов:
«ack»;
«cwr»;
«ecn»;
«fin»;
«psh»;
«rst»;
«syn»;
«urg».
Для указания флага с инверсией необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> tcp flags not <flags>
Для указания максимального размера сегмента в качестве дополнительного параметра протокола «tcp» необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> tcp mss <number>
где <number> – максимальный размер сегмента. Допустимые значения в диапазоне от «1» до «16384».
Поддерживается указание диапазона значений, разделённых знаком «-».
Для указания протокола «IPsec» в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> ipsec [match-ipsec | match-none]
где:
<match-ipsec> – входящие пакеты IPsec;
«match-none» – входящие пакеты, не соответствующие IPsec.
В случае необходимости изменения протокола, указанного в качестве критерия соответствия, требуется предварительно удалить значения дополнительных параметров заменяемого протокола.
Для указания флага протокола «GRE» в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> gre flags <flags>
где <flags> – флаг GRE.
Поддерживается указание следующих флагов:
«checksum» – обязательный флаг;
«key»;
«sequence».
Для указания ключа туннеля протокола «GRE» необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> gre key <tunnel-key>
где <tunnel-key> – ключ, который был указан при создании GRE-туннеля. Указание ключа недоступно, если в качестве версии протокола указан «PPTP».
Для указания версии протокола «GRE» необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> gre version <ver>
где <ver> – версия протокола.
Поддерживается указание следующих версий протокола:
«gre»;
«pptp».
Для указания типа инкапсулированного пакета необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> gre inner-proto <type>
Назначение порта источника в качестве критерия соответствия поддерживается только в случае указания следующих значений протокола: «tcp», «udp», «tcp_udp».
Для указания порта источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> source port [<portnumber> | <portname> | <rangenumbers>]
где:
<portnumber> – номер порта источника. Допустимые значения в диапазоне от «1» до «65535»;
<portname> – имя, определённое в «/etc/services»;
<rangenumbers> – диапазон портов, разделённых знаком «-».
Поддерживается указание нескольких значений портов, разделённых знаком «,», например:
set firewall ipv4|ipv6 <rule_set> rule <num> source port http,1100-1200,25
Назначение порта назначения в качестве критерия соответствия поддерживается только в случае указания следующих значений протокола: «tcp», «udp», «tcp_udp».
Для указания порта назначения в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> destination port [<portnumber> | <portname> | <rangenumbers>]
где:
<portnumber> – номер порта назначения. Допустимые значения в диапазоне от «1» до «65535»;
<portname> – имя, определённое в «/etc/services»;
<rangenumbers> – диапазон портов, разделённых знаком «-».
Поддерживается указание нескольких значений портов, разделённых знаком «,».
Для указания входящего интерфейса в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> inbound-interface name <interface>
где <interface> – имя интерфейса. Поддерживается указание входящего интерфейса в качестве критерия соответствия для правил категорий: «name», «forward filter», «input filter».
Для указания исходящего интерфейса в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> outbound-interface name <interface>
где <interface> – имя интерфейса. Поддерживается указание исходящего интерфейса в качестве критерия соответствия для правил категорий: «name», «forward filter», «output filter».
Технология GeoIP позволяет создавать правила МЭ в зависимости от того, к какой стране или региону принадлежит адрес хоста.
Для указания GeoIP источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> source geoip country-code <country>
где <country> – код страны, указанный строчными буквами, например, «ru». Перечень кодов стран приведён в таблице (см. Таблица «Коды стран»).
Для инверсии правила необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> source geoip inverse-match
Правило будет распространяться на IP-адреса, соответствующие всем геолокациям, кроме указанных в правиле.
Для указания GeoIP назначения в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> destination geoip country-code <country>
Для инверсии правила необходимо ввести следующую команду:
set firewall ipv4|ipv6 <rule_set> rule <num> destination geoip inverse-match
В рамках технологии GeoIP локальным подсетям, находящимся в диапазонах «10.0.0.0-10.255.255.255», «172.16.0.0-172.31.255.255», «192.168.0.0-192.168.255.255», «fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff», присвоен код страны «ZZ». Это необходимо учитывать при фильтрации сетевого трафика на основе принадлежности к определённым кодам стран. В случае необходимости следует создавать правила с более высоким приоритетом для разрешения пакетов с локальными IP-адресами. Пример:
set firewall ipv4 forward filter default-action 'accept'
set firewall ipv4 forward filter default-log
set firewall ipv4 forward filter rule 10 action 'accept'
set firewall ipv4 forward filter rule 10 destination address '192.168.0.0/16'
set firewall ipv4 forward filter rule 20 action 'drop'
set firewall ipv4 forward filter rule 20 destination geoip country-code 'ru'
set firewall ipv4 forward filter rule 20 destination geoip inverse-match
set firewall ipv4 forward filter rule 20 log
Правило «20» блокирует весь сетевой трафик, за исключением пакетов, содержащих IP-адреса, находящиеся в Российской Федерации. Поскольку IP-адреса локальной подсети предприятия не входят в список адресов с кодом страны «RU», необходимо создать правило «10», разрешающее сетевой трафик для частной подсети «192.168.0.0/16», используемой на данном предприятии.
Система ARMA Стена поддерживает задание различных критериев соответствия в правилах межсетевого экрана типа «bridge», по которым осуществляется фильтрация сетевого трафика на уровне канала передачи данных (L2).
Для задания идентификатора VLAN в качестве критерия соответствия используется команда:
set firewall bridge <rule_set> rule <num> vlan id <vlan-id>
где <vlan-id> – идентификатор VLAN. Допустимые значения в диапазоне от «0» до «4096». Поддерживается указание диапазона значений, разделённых символом «-».
Для задания приоритета VLAN в качестве критерия соответствия используется команда:
set firewall bridge <rule_set> rule <num> vlan priority <number>
где <number> – значение приоритета VLAN. Допустимые значения в диапазоне от «0» до «7». Поддерживается указание диапазона значений, разделённых символом «-».
Для использования значения поля EtherType в качестве критерия фильтрации применяется команда:
set firewall bridge <rule_set> rule <num> [vlan] ethernet-type <text>
где:
<text> – значение поля EtherType, задаваемое в формате «0xXXXX», где «XXXX» представляет собой двухбайтовое шестнадцатеричное число.
Вместо шестнадцатеричного представления допускается использование следующих предопределённых символьных имён:
«802.1q» – соответствует 0x8100 (VLAN Tagged Frame);
«802.1ad» – соответствует 0x88A8 (Provider Bridging);
«arp» – соответствует 0x0806 (Address Resolution Protocol);
«ipv4» – соответствует 0x0800 (IPv4);
«ipv6» – соответствует 0x86DD (IPv6);
«ethercat» – соответствует 0x88A4 (EtherCAT).
[vlan] – необязательный параметр, определяющий, что анализируемое значение EtherType расположено во внутреннем заголовке кадра, следующем непосредственно за тегом VLAN (802.1Q или 802.1ad).
Поддерживается инверсия условия фильтрации с использованием символа «!». Пример: «!0x0800» – сопоставление всех кадров, за исключением IPv4.
Особенности обработки EtherType в зависимости от наличия параметра vlan:
Без указания параметра vlan – анализируется внешнее поле EtherType. Например, для кадра с VLAN-тегом значением будет «0x8100».
С указанием параметра vlan – анализируется поле EtherType, расположенное после VLAN-тега. Например, для IPv4-пакета, инкапсулированного в VLAN, значением будет «0x0800».
Такой подход обеспечивает корректную фильтрацию инкапсулированного трафика (ARP, IPv4, IPv6 и др.) в сетях с использованием VLAN.
Для задания временных условий активности правила в системе ARMA Стена используется параметр «time», позволяющий определить точные дату и время начала и окончания действия правила, а также указать дни недели, в течение которых правило должно быть активным.
Все временные параметры интерпретируются относительно системного времени устройства ARMA Стена.
Команды настройки параметра «time»:
Установка даты начала действия правила:
set firewall ipv4|ipv6 <rule_set> rule <num> time startdate <text>
где <text> – дата начала действия правила в формате «YYYY-MM-DD».
Установка времени начала действия правила:
set firewall ipv4|ipv6 <rule_set> rule <num> time starttime <text>
где <text> – время начала действия правила в формате «hh:mm:ss».
Установка даты окончания действия правила:
set firewall ipv4|ipv6 <rule_set> rule <num> time stopdate <text>
где <text> – дата окончания действия правила в формате «YYYY-MM-DD».
Установка времени окончания действия правила:
set firewall ipv4|ipv6 <rule_set> rule <num> time stoptime <text>
где <text> – время окончания действия правила в формате «hh:mm:ss».
Установка дней недели для действия правила:
set firewall ipv4|ipv6 <rule_set> rule <num> time weekdays <text>
где <text> – список дней недели, в течение которых правило применяется.
В качестве альтернативы непосредственному применению политик к сетевым интерфейсам может быть создана зоновая модель брандмауэра. Эта модель упрощает конфигурацию в ситуациях, когда несколько интерфейсов принадлежат одной зоне безопасности. Вместо применения наборов правил к интерфейсам, правила применяются к парам «исходная зона – целевая зона». Правила настраиваются для зон, а не для отдельных интерфейсов, что снижает сложность конфигурации при большом количестве интерфейсов.
В МЭ на основе зон реализована новая концепция, дополнительно к стандартным входящим и исходящим потокам трафика был добавлен локальный поток. Он предназначен для входящего и исходящего трафика ARMA Стена. Это предоставляет возможность установить дополнительные правила МЭ, которые будут защищать сам брандмауэр от внешних угроз сети, дополняя уже существующие входящие и исходящие правила МЭ.
Основные тезисы:
перед назначением интерфейса зоне необходимо выполнить её конфигурацию;
интерфейс может быть назначен только одной зоне;
в пределах зоны разрешён весь входящий и исходящий трафик интерфейса;
трафик между зонами зависит от существующих политик;
трафик не может передаваться между интерфейсом-участником зоны и любым интерфейсом, который не является участником этой зоны;
для каждого направления трафика необходимо задать отдельную политику.
В общем случае алгоритм настройки работы МЭ на основе зон сети выглядит следующим образом:
Создать кастомные наборы правил МЭ, в которых будут содержаться правила.
Создать правила МЭ, указать в них критерии соответствия, действия с сетевыми пакетами и привязать эти правила к кастомным наборам.
Объединить интерфейсы в зоны.
Создать два направления трафика между зонами сети (входящий и исходящий трафик) и назначить на них созданные кастомные наборы правил.
<name> – имя зоны. Максимальная длина значения – 18 символов. Допускается использование только латинских букв (A–Z, a–z), цифр (0–9) и специальных символов: подчёркивание («_») и точка («.»). Значение должно начинаться с латинской буквы или цифры.
<interface> – имя сетевого интерфейса ARMA Стена.
Одна зона может содержать несколько интерфейсов, но каждый интерфейс может быть назначен только одной зоне.
Определение локальной зоны:
set firewall zone <name> local-zone
Команда определяет зону <name> как локальную. Локальная зона не содержит интерфейсов и применяется непосредственно к системе ARMA Стена.
Предупреждение
Добавление локальной зоны в МЭ приведёт к полной блокировке сетевого доступа к системе ARMA Стена. После выполнения данной операции управление устройством будет осуществляться исключительно через интерфейс командной строки (CLI) с использованием физического подключения (монитор и клавиатура). Доступ к устройству через локальную сеть будет полностью заблокирован. Для восстановления сетевого доступа необходимо применить кастомные наборы правил к локальной зоне, включающие разрешающие правила для сетевого трафика.
Настройка действия по умолчанию:
set firewall zone <name> default-action <drop | reject>
где <drop | reject> – действие по умолчанию для трафика, который не соответствует ни одному правилу. Допускается указать следующие значения:
«drop» – пакеты отбрасываются без уведомления отправителя;
«reject» – отправителю возвращается сообщение об ошибке.
Примечание
По умолчанию, если на трафик между зонами не назначены правила, весь входящий в зону трафик блокируется.
Указать описание зоны:
set firewall zone <name> description <text>
где <text> – текстовое описание зоны. Максимально допустимая длина описания – 127 символов.
Перед применением набора правил к зоне необходимо предварительно создать и настроить сами зоны.
Кастомные наборы правил применяются к трафику, перемещающемуся между зонами, и должны быть описаны с точки зрения направления: исходная зона -> целевая зона. Это означает, что правила создаются для управления потоком данных из одной зоны в другую.
Для применения кастомного набора правил к зонам необходимо ввести следующую команду:
для IPv4:
set firewall zone <Destination Zone> from <Source Zone> firewall name <nameset>
для IPv6:
set firewall zone <Destination Zone> from <Source Zone> firewall ipv6-name <nameset>
где:
<Destination Zone> – целевая зона, куда направляется трафик;
<Source Zone> – исходная зона, откуда исходит трафик;
<nameset> – имя кастомного набора правил, который будет применяться к указанному направлению трафика.
Для каждой уникальной пары «Исходная зона -> Целевая зона» рекомендуется создавать отдельный набор правил. Это обеспечивает гибкость и точность настройки политик безопасности.
В качестве примера приведён список команд для разрешения доступа из локальной сети в сеть Интернет:
set firewall zone LAN local-zone
set firewall zone WAN interface eth0
set firewall ipv4 name allow rule 10 action accept
set firewall ipv4 name allow default-action accept
set firewall zone LAN from WAN firewall name allow
set firewall zone WAN from LAN firewall name allow
Система ARMA Стена позволяет отслеживать количество срабатываний правил МЭ.
Для корректной работы мониторинга срабатывания правил необходимо предварительно включить учёт трафика по соединениям (см. «Служба отслеживания соединений»).
Для получения сведений о количестве срабатываний каждого правила МЭ за различные временные интервалы (см. Рисунок – Количество срабатываний правил МЭ) необходимо выполнить следующую команду в эксплуатационном режиме:
Таблица сведений о количестве срабатываний каждого правила МЭ состоит из следующих столбцов:
«Rule» – номер правила МЭ;
«Action» – действие, применяемое к пакетам;
«Day Hitcount» – количество срабатывания правила за сегодня;
«Week Hitcount» – количество срабатывания правила за последние 7 дней;
«Month Hitcount» – количество срабатывания правила за последние 30 дней.
Данные в таблице обновляются с периодичностью в 20 минут (в XX:00, XX:20, XX:40 минут). При перезагрузке системы информация о количестве срабатываний правил МЭ сохраняется.
Для просмотра событий МЭ в эксплуатационном режиме необходимо выполнить следующую команду:
admin@ngfwos:~$ show logging firewall [| <filter>]
где <filter> – необязательный параметр фильтрации, позволяющий уточнить и обработать выводимые данные. Возможно применить следующие фильтры:
«count» – подсчитывает количество строк, соответствующих текущему запросу, и выводит это число на экран. Позволяет быстро определить объём данных без необходимости их просмотра.
«json» – преобразует вывод в формате JSON. Используется при интеграции с внешними системами мониторинга или автоматизации.
«match <pattern>» – отображает только те строки, которые содержат заданный текстовый шаблон <pattern>. Позволяет выполнять точечный поиск событий по ключевым словам или кодам ошибок.
«no-match <pattern>» – исключает из вывода строки, содержащие указанный текстовый шаблон <pattern>. Позволяет скрывать информационные сообщения или другие несущественные записи.
«more» – активирует постраничный вывод результатов. Удобен при работе с длинными списками записей в консоли.
«no-more» – отключает постраничный вывод, обеспечивая немедленное отображение всего результата. Используется при необходимости получить полный вывод без пауз.
«strip-private» – производит маскировку или удаление персональных и конфиденциальных данных из записей журнала, включая IP-адреса, имена пользователей, идентификаторы сессий и другие чувствительные атрибуты. Применяется при подготовке логов для экспорта, например, в службу технической поддержки, с целью соблюдения требований к защите персональных данных.
Временная метка события (Timestamp) – дата и время регистрации сетевого пакета в системе. Формат: ДД.ММ.ГГГГ ЧЧ:ММ:СС. Пример: «26.08.2025 09:13:04».
Идентификатор события (Event ID) – уникальный числовой идентификатор записи в журнале, присваиваемый системой для однозначной идентификации события. Пример: «1756199584513067».
Источник события (Source) – имя устройства и компонента, сгенерировавшего запись. Поле содержит наименование устройства и идентификатор процесса ядра. Пример: «ngfwos kernel[0]».
Цепочка правил (Rule Chain) – имя цепочки правил МЭ, в которой было обработано событие, а также действие, применённое к пакету. Отражает путь пакета через систему фильтрации. Пример: «[ipv4-FWD-appctrl-default-D]», где:
«ipv4» – семейство протоколов сетевого уровня. Указывает, что правило применяется к трафику IPv4.
«FWD» – направление обработки пакета. Обозначает цепочку «forward» («транзит»), то есть пакет проходит через устройство и не предназначен ему самому.
«appctrl» – модуль или функциональный компонент, обрабатывающий пакет. В данном случае – подсистема Application Control (контроль приложений).
«default» – указывает, что применено правило из стандартного («по умолчанию») набора политики Application Control.
«D» – действие, применённое к пакету. D (Drop) – пакет отброшен (заблокирован).
Входной интерфейс (IN) – интерфейс сетевого взаимодействия, через который пакет поступил в устройство. Пример: «IN=eth1».
Выходной интерфейс (OUT) – интерфейс, через который пакет был передан далее по маршруту. Пример: «OUT=eth0».
MAC-адреса (MAC) – аппаратные адреса участников коммуникации и тип Ethernet-кадра. Первые 6 байт – MAC-адрес источника, следующие 6 байт – MAC-адрес назначения. Пример: «MAC=00:50:56:bd:a0:36:00:50:56:bd:16:96:08:00».
Время жизни (TTL) – значение Time To Live, ограничивающее количество маршрутизаторов (хопов), которые может пройти пакет. При достижении нуля пакет отбрасывается. Пример: «TTL=63».
Идентификатор пакета (ID) – уникальный идентификатор IP-пакета, используемый при фрагментации и сборке. Пример: «ID=10888».
Флаг «Don’t Fragment» (DF) – флаг, запрещающий фрагментацию пакета при передаче через сети с меньшим MTU. Пример: «DF».
Исходный порт (SPT) – номер порта источника в транспортном протоколе. Пример: «SPT=43442».
Порт назначения (DPT) – номер порта получателя. Значение 443 соответствует HTTPS. Пример: «DPT=443».
Размер окна TCP (WINDOW) – размер приёмного окна TCP в байтах, определяющий объём данных, который может быть принят без подтверждения. Пример: «WINDOW=64240».
Зарезервированные биты (RES) – зарезервированное поле в заголовке TCP. Значение 0x00 указывает на отсутствие специальных флагов. Пример: «RES=0x00».
Флаг TCP (SYN) – флаг синхронизации соединения. Указание на начало установления TCP-сессии. Пример: «SYN».
Указатель срочности (URGP) – поле Urgent Pointer в заголовке TCP. Значение 0 означает, что срочные данные отсутствуют. Пример: «URGP=0».
Дополнительный параметр «timestamp» («show logging firewall timestamp») предназначен исключительно для служебного использования и применяется для передачи событий МЭ в веб-интерфейс системы. Данный режим обеспечивает пакетную выдачу логических записей с корректными временными метками, необходимыми для отображения и обработки в графической подсистеме. Использование параметра «timestamp» в командной строке (CLI) не предусмотрено и не рекомендуется.
Диагностика МЭ позволяет просматривать следующую информацию о работе МЭ:
сводную информацию о состоянии МЭ, времени работы и статистику по принятым пакетам и объёму трафика для каждого интерфейса;
эффективность работы каждого правила МЭ – сколько трафика прошло через правило и сколько соединений оно создало;
список текущих активных соединений.
Просмотр сводной информации
Для корректной работы функциональности необходимо предварительно включить учёт трафика с помощью команды «set system conntrack flow-accounting».
Для просмотра сводной информации о состоянии МЭ (см. Рисунок – Информация о состоянии МЭ) в эксплуатационном режиме необходимо выполнить следующую команду:
Просмотр информации об эффективности работы правил МЭ
Для просмотра информации об эффективности работы каждого правила МЭ в эксплуатационном режиме необходимо выполнить следующую команду:
admin@ngfwos:~$ show firewall statistics
Rule ID Chain Log Action Proto Src Dest Inbound-Interface Outbound-interface Pkts Bytes Desc
--------- -------------------------------- ----- -------- ------- ----- ------ ------------------- -------------------- ------ -------- ------
10 ipv4 Firewall "forward filter" OFF ACCEPT all any yandex any any 0 0
default ipv4 Firewall "forward filter" OFF ACCEPT all any any any any 1005 72817
10 ipv4 Firewall "name test" OFF DROP 1 any any any any 0 0
default ipv4 Firewall "name test" OFF ACCEPT all any any any any 4 160
10 ipv4 Firewall "output filter" OFF JUMP all any any any eth1 4 160
default ipv4 Firewall "output filter" OFF ACCEPT all any any any any 184871 39561402
default ipv6 Firewall "forward filter" OFF DROP all any any any any 0 0
default bridge Firewall "forward filter" OFF DROP all any any any any 0 0
Просмотр активных подключений
Для корректной работы функциональности необходимо предварительно включить отслеживание соединений с помощью команды «set firewall global-options track enable».
Для просмотра событий МЭ в эксплуатационном режиме необходимо выполнить следующую команду: