Межсетевой экран
Одной из основных функций ARMA Стена является фильтрация трафика с помощью встроенного межсетевого экрана.
Для просмотра конфигурации МЭ необходимо в режиме эксплуатации ввести команду «show firewall».
Примечание
По умолчанию весь транзитный трафик, проходящий через ARMA Стена, блокируется.
Для изменения политики обработки транзитного трафика с блокировки (drop) на разрешение (accept), необходимо выполнить в конфигурационном режиме команду: set firewall <ipv4 | ipv6 | bridge> forward filter default-action accept.
Глобальные настройки
Для глобальной настройки обработки пакетов в рамках соединения необходимо ввести следующую команду:
set firewall global-options state-policy <category> action <act>где:
<category> – категория соединения, к которому относятся сетевые пакеты;
<act> – действие.
Поддерживается применение действий над пакетами следующих категорий соединений (<category>):
«established» – установленного соединения;
«invalid» – недопустимого соединения;
«related» – связанного соединения.
Правилами МЭ предусмотрены следующие действия над сетевыми пакетами (<act>):
«accept» – разрешить;
«drop» – блокировать;
«reject» – отклонить.
По умолчанию для пакетов каждой категории соединений используется действие «accept».
Поддерживается включение/отключение следующих опций:
Отправление ARMA Стена ответов на локальные ICMP-запросы:
set firewall global-options all-ping [enable | disable]Включено по умолчанию.
Отправление ARMA Стена ответов на широковещательные ICMP-запросы:
set firewall global-options broadcast-ping [enable | disable]Отключено по умолчанию.
Обработка IPv4-пакетов, содержащих информацию об исходном маршруте:
set firewall global-options ip-src-route [enable | disable]Отключено по умолчанию.
Обработка IPv6-пакетов, содержащих информацию об исходном маршруте:
set firewall global-options ipv6-src-route [enable | disable]Отключено по умолчанию.
Обработка входящих перенаправляющих сообщений ICMPv4:
set firewall global-options receive-redirects [enable | disable]Отключено по умолчанию.
Обработка входящих перенаправляющих сообщений ICMPv6:
set firewall global-options ipv6-receive-redirects [enable | disable]Включено по умолчанию.
Использование перенаправляющих сообщений ICMPv4:
set firewall global-options send-redirects [enable | disable]Включено по умолчанию.
Логирование марсианских IPv4-пакетов:
set firewall global-options log-martians [enable | disable]Включено по умолчанию.
Проверка источников по обратному пути:
set firewall global-options source-validation [strict | loose | disable]где:
«strict» – строгая;
«loose» – мягкая.
Отключено по умолчанию.
Использование IPv4 TCP SYN cookies:
set firewall global-options syn-cookies [enable | disable]Включено по умолчанию.
Защита от угрозы прерывания по времени в TCP:
set firewall global-options twa-hazards-protection [enable | disable]Отключено по умолчанию.
Группы
Группы – удобный инструмент объединения множества сетей, хостов и портов с целью дальнейшего использования в правилах МЭ и NAT.
Создание группы
Для создания группы необходимо ввести следующую команду:
set firewall group <typealias> <name>где:
<typealias> – тип группы;
<name> – имя группы. Должно быть уникальным в рамках своего типа, не превышать «31» символа, начинаться только с латинской буквы или цифры, не может начинаться с символов «-» или «!», и не должно содержать символы «|», «;», «:», «&», «$», «<», «>».
Поддерживается создание групп следующих типов (<typealias>):
«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 <typealias> <name> description <text>где <text> – описание группы.
Для добавления группы в другую группу необходимо ввести следующую команду:
set firewall group <typealias> <name1> include <name2>где <name2> – имя группы, которую требуется добавить в группу <name1>.
Группа IPv4-адресов
Для создания группы типа «IPv4-адреса» необходимо ввести следующую команду:
set firewall group address-group <name> address <x.x.x.x>где <x.x.x.x> – IPv4-адрес. Возможно указание диапазона адресов, разделённых знаком «-».
Группа IP6-адресов
Для создания группы типа «IPv6-адреса» необходимо ввести следующую команду:
set firewall group ipv6-address-group <name> address <h:h:h:h:h:h:h:h>где <h:h:h:h:h:h:h:h> – IPv6-адрес. Возможно указание диапазона адресов, разделённых знаком «-».
Группа IPv4-сетей
Для создания группы типа «IPv4-сети» необходимо ввести следующую команду:
set firewall group network-group <name> network <x.x.x.x/x>где <x.x.x.x/x> – IPv4-адрес сети.
Группа IPv6-сетей
Для создания группы типа «IPv6-сети» необходимо ввести следующую команду:
set firewall group ipv6-network-group <name> network <h:h:h:h:h:h:h:h/x>где <h:h:h:h:h:h:h:h/x> – IPv6-адрес сети.
Группа портов
Для создания группы типа «Порты» необходимо ввести следующую команду:
set firewall group port-group <name> port <num>где <num> – номер порта или диапазон портов, разделённых знаком «-». Возможно указание значения в диапазоне от «1» до «65535».
Поддерживается указание имени, определённого в «/etc/services», например, «set firewall group port-group <name> port http».
Группа интерфейсов
Для создания группы типа «Интерфейсы» необходимо ввести следующую команду:
set firewall group interface-group <name> interface <intName>где <intName> – имя интерфейса.
Поддерживается указание имени интерфейса с использованием знака «!» для инверсии или подстановочного символа «*», например:
«!eth0» – интерфейсы кроме «eth0»;
«eth2*» – интерфейсы, с именами начинающимися на «eth2».
Группа доменов
Для создания группы типа «Домены» необходимо ввести следующую команду:
set firewall group domain-group <name> address <domain>где <domain> – доменное имя.
Группа MAC-адресов
Для создания группы типа «MAC-адреса» необходимо ввести следующую команду:
set firewall group mac-group <name> mac-address <h:h:h:h:h:h>где <h:h:h:h:h:h> – MAC-адрес.
Динамическая группа
Динамические группы отличаются от всех ранее определённых групп тем, что они не только могут выступать в качестве источника или назначения в правилах МЭ, но и их состав не определяется статически посредством конфигурации системы. Вместо этого члены этих групп добавляются динамически с использованием правил МЭ.
Динамические группы, как и любые другие группы брандмауэра, могут использоваться в правилах фильтрации в качестве условий сопоставления, позволяя создавать гибкие правила на основе динамически обновляемых списков 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> – текстовое описание динамической группы.
Добавление элементов в динамические группы
Элементы добавляются в динамические группы через правила брандмауэра. Для добавления 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 - значение таймаута в днях.
Просмотр групп
Для вывода информации о настроенных группах МЭ необходимо ввести следующую команду в эксплуатационном режиме:
admin@ngfwos:~$ show firewall group Firewall Groups Name Type References Members Timeout Expires ------------ ---------------------- ---------------------- ---------------- --------- --------- SERVERS address_group nat-destination-101 198.51.100.101 198.51.100.102 ALLOWED address_group(dynamic) ipv4-input-filter-30 192.168.77.39 7200 7174 PN_01 address_group(dynamic) ipv4-input-filter-10 192.168.0.245 120 112 192.168.77.39 120 85 PN_02 address_group(dynamic) ipv4-input-filter-20 192.168.77.39 180 151 LAN interface_group ipv4-output-filter-10 bon0 nat-destination-101 eth2.2001 TRUSTEDv6 ipv6_network_group ipv6-input-filter-10 2001:db8::/64 TRUSTEDv4 network_group ipv4-forward-filter-20 192.0.2.0/30 203.0.113.128/25 PORT-SERVERS port_group route-PBR-201 443 route-PBR-201 5000-5010 nat-destination-101 http admin@ngfwos:~$Таймаут (Timeout) и срок действия (Expiration) присутствуют только в динамических группах.
Для получения информации о конкретной группе МЭ необходимо ввести следующую команду в эксплуатационном режиме:
admin@ngfwos:~$ show firewall group <name>
Копирование группы
Для копирования группы необходимо ввести следующие команды:
admin@ngfwos# edit firewall group [edit firewall group] admin@ngfwos# copy <typealias> <name1> to <typealias> <name2>где:
<name1> – имя оригинальной группы;
<name2> – имя создаваемой копии группы.
Переименование группы
Для переименования группы необходимо ввести следующие команды:
admin@ngfwos# edit firewall group [edit firewall group] admin@ngfwos# rename <typealias> <name1> to <typealias> <name2>где:
<name1> – изначальное имя группы;
<name2> – новое имя группы.
Группы в правилах МЭ
Для добавления группы в правило МЭ необходимо ввести команду, в зависимости от направления трафика:
set firewall <type> <category> rule <num> source group <typealias> [<name> | <!name>] set firewall <type> <category> rule <num> destination group <typealias> [<name> | <!name>]где:
«source» – источник;
«destination» – назначение.
<name> – имя группы;
<!name> – имя группы с отрицанием.
Примечание
В случае попытки удаления групп, используемых в правилах NAT или МЭ, система выдаст сообщение о невозможности выполнения данной операции. Необходимо сначала исключить удаляемую группу из правил, после чего повторить удаление.
Наборы правил МЭ
Набор правил - это именованный пакет правил МЭ.
В зависимости от принадлежности трафика существуют следующие наборы правил:
«input» - системный набор правил, предназначенные для фильтрации входящих в ARMA Стена пакетов.
«output» - системный набор правил, предназначенные для фильтрации исходящих от ARMA Стена пакетов.
«forward» - системный набор правил, предназначенные для фильтрации транзитных пакетов.
«name» - кастомный набор правил. Используется во всех вариантах работы МЭ, включая системные наборы «input», «output» и «forward», реализуемый через действия правила «jump».
В конфигурации по умолчанию системы ARMA Стена доступны системные наборы правил: «input», «output» и «forward». Эти наборы изначально не содержат никаких правил МЭ.
Для создания кастомного набора правил МЭ необходимо ввести следующую команду:
set firewall <type> name <nameset>где
<type> – тип;
<nameset> – имя кастомного набора правил.
Поддерживается настройка МЭ по следующим типам (<type>):
«ipv4» (см. Критерии соответствия в правилах МЭ «ipv4» и «ipv6»);
«ipv6» (см. Критерии соответствия в правилах МЭ «ipv4» и «ipv6»);
«bridge» (см. Критерии соответствия в правилах МЭ «bridge»).
Набор правил содержит действие по умолчанию, которое применяется к сетевому пакету, если ни одно из правил в наборе не сработало.
Для назначения действия по умолчанию для набора правил МЭ, необходимо ввести следующую команду:
для системных наборов правил:
set firewall <type> <input | output | forward> filter default-action <act>для кастомного набора правил:
set firewall <type> name <nameset> default-action <act>где <act> – действие по умолчанию.
Для системных наборов правил «input», «output» и «forward» возможно установить следующие значения действия по умолчанию (<act>):
accept - разрешить;
drop - отбросить.
По умолчанию для наборов правил «input» и «output» выполняется действие «accept», в то время как для наборов «forward» установлено действие «drop».
Для кастомных наборов правил («name») возможно установить следующие значения действия по умолчанию (<act>):
drop - отбросить, значение установлено по умолчанию;
jump - перейти;
reject - отклонить;
return - вернуться;
accept - разрешить;
continue - продолжить.
Для добавления описания в набор правил МЭ необходимо ввести следующую команду:
для кастомного набора правил:
set firewall <type> name <nameset> description <text>для системных наборов правил:
set firewall <type> <input | output | forward> filter description <text>где <text> – описание набора правил.
Для включения журналирования действия по умолчанию для набора правил МЭ необходимо ввести следующую команду:
для кастомного набора правил:
set firewall <type> name <nameset> default-logдля системных наборов правил:
set firewall <type> <input | output | forward> filter default-log
Создание правил МЭ
Правила МЭ необходимо создавать, придерживаясь следующего формата:
set firewall <type> <ruleset> rule <num> action <act>где:
<ruleset> – набор правил, к которому будет относиться правило. Возможно указать следующие значения: «input filter», «output filter», «forward filter» или «name»;
<num> – идентификатор правила. Возможно указание значения в диапазоне от «1» до «999999». Пакеты данных обрабатываются последовательно, начиная с «1» номера правила. В случае обнаружения первого соответствия с правилом, выполняется предписанное действие, после чего дальнейшая обработка данного пакета данных прекращается;
<act> – действие.
Посредством правил МЭ поддерживается выполнение следующих действий (<act>) над пакетом данных:
«accept» – разрешить.
«continue» – продолжить разбор следующего правила.
«drop» – отбросить пакет.
«reject» – отклонить пакет.
«jump» – перейти к кастомному набору правил.
При назначении действия «jump» требуется указать имя целевого кастомного набора правил с помощью дополнительной команды:
set firewall <type> <category> 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, необходимо убедиться, что они соответствуют как трафику ответного пакета, так и исходному трафику.
Примечание
Сетевой адаптер Intel серии X710 в системе ARMA Стена не поддерживает режим «offload».
«synproxy» - соединения synproxy.
Сетевой фильтр Synproxy перехватывает новые TCP-соединения и обрабатывает начальное трёхстороннее подтверждение связи по протоколу TCP, используя syncookies вместо conntrack для установления соединения. Таким образом, запуск SynProxy на порту прослушивающего сервера предотвращает использование ограниченных ресурсов conntrack при атаках типов SYN, SYN-ACK, ACK Flood на этот порт, при которых сервер подвергается воздействию большого количества syn-пакетов. Данное действие требует отслеживания соединения, поскольку необходимо передать порядковые номера. Принцип работы: сервер вычисляет значение на основе текущего состояния и отправляет его в SYN+ACK-пакете. Когда клиент возвращает ACK-пакет, сервер извлекает значение для аутентификации. Если значение верно, соединение считается установленным.
Для добавления описания правила МЭ необходимо ввести следующую команду:
set firewall <type> <ruleset> rule <num> description <text>где <text> – описание.
Для включения логирование правила необходимо ввести следующую команду:
set firewall <type> <ruleset> rule <num> logДополнительно возможно указать уровень логирование журнала правил МЭ:
set firewall <type> <ruleset> rule <num> log-options level <emerg | alert | crit | err | warn | notice | info | debug>где:
emerg - уровень журнала создание;
alert - уровень журнала предупреждений;
crit - критический уровень журнала;
err - уровень журнала ошибок;
warn - уровень журнала предупреждений;
notice - уровень журнала уведомлений;
info - уровень журнала информации;
debug - уровень журнала отладки.
Для отключения правила МЭ необходимо ввести следующую команду:
set firewall <type> <ruleset> rule <num> disable
Копирование правила МЭ
Копирование правил позволяет значительно ускорить процесс настройки МЭ.
Для копирования правила МЭ необходимо ввести следующие команды:
для кастомного набора правил:
[edit] admin@ngfwos# edit firewall <type> name <nameset> [edit firewall <type> name <nameset>] admin@ngfwos# copy rule <num1> to rule <num2> [edit firewall <type> name <nameset>] admin@ngfwos# exit [edit] admin@ngfwos#для системных наборов правил:
[edit] admin@ngfwos# edit firewall <type> <input | output | forward> filter [edit firewall <type> <input | output | forward> filter] admin@ngfwos# copy rule <num1> to rule <num2> [edit firewall <type> <input | output | forward> filter] admin@ngfwos# exit [edit] admin@ngfwos#где:
<num1> – идентификатор оригинального правила;
<num2> – идентификатор создаваемой копии правила.
Переименование правила МЭ
Для переименования правила МЭ необходимо ввести следующие команды:
для кастомного набора правил:
[edit] 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#для системных наборов правил:
[edit] admin@ngfwos# edit firewall <type> <input | output | forward> filter [edit firewall <type> <input | output | forward> filter] admin@ngfwos# rename rule <num1> to rule <num2> [edit firewall <type> <input | output | forward> filter] admin@ngfwos# exit [edit] admin@ngfwos#где:
<num1> – изначальный идентификатор правила;
<num2> – идентификатор переименованного правила.
Критерии соответствия в правилах МЭ «ipv4» и «ipv6»
ARMA Стена поддерживает возможность указания в правилах МЭ типа «ipv4» и «ipv6» различных критериев соответствия, по которым выполняется фильтрация.
Адрес источника
Для указания адреса источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> source address [<IPv4-address> | <addressrange> | <IPv6-address>]где:
<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 <category> rule <num> destination address [<IPv4-address> | <addressrange> | <IPv6-address>]где:
<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 <category> rule <num> protocol [<protocolname> | tcp_udp | all | <number>]где:
<protocolname> – протокол, определённый в «/etc/protocols»;
«tcp_udp» – протоколы TCP и UDP;
«all» – все протоколы;
<number> – номер протокола, определённый в «/etc/protocols». Возможно указание значения в диапазоне от «0» до «255».
Примечание
Поддерживается указание значение <protocolname> с использованием знака «!» для инверсии, например, «!ipcomp».
Для указания протокола «icmp» в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> icmp|icmpv6 <code <0-255> | type <0-255>>где:
<code> – номер кода icmp. Возможно указание значения в диапазоне от «0» до «255»;
«type» – номер типа icmp. Возможно указание значения в диапазоне от «0» до «255»;
Поддерживается указание имени типа «icmp» в качестве критерия соответствия:
set firewall ipv4|ipv6 <category> 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 <category> rule <num> tcp flags <flags>где <flags> – флаг TCP.
Поддерживается указание следующих флагов:
«ack»;
«cwr»;
«ecn»;
«fin»;
«psh»;
«rst»;
«syn»;
«urg».
Для указания флага с инверсией необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> tcp flags not <flags>Для указания максимального размера сегмента в качестве дополнительного параметра протокола «tcp» необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> tcp mss <number>где <number> – максимальный размер сегмента. Возможно указание значения в диапазоне от «1» до «16384».
Поддерживается указание диапазона значений, разделённых знаком «-».
Для указания протокола «IPsec» в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> ipsec [match-ipsec | match-none]где:
<match-ipsec> – входящие пакеты IPsec;
«match-none» – входящие пакеты, не соответствующие IPsec.
Примечание
В случае необходимости изменения протокола, указанного в качестве критерия соответствия, требуется предварительно удалить значения дополнительных параметров заменяемого протокола.
Порт источника
Назначение порта источника в качестве критерия соответствия поддерживается только в случае указания следующих значений протокола: «tcp», «udp», «tcp_udp».
Для указания порта источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> source port [<portnumber> | <portname> | <rangenumbers>]где:
<portnumber> – номер порта источника. Возможно указание значения в диапазоне от «1» до «65535»;
<portname> – имя, определённое в «/etc/services»;
<rangenumbers> – диапазон портов, разделённых знаком «-».
Примечание
Поддерживается указание нескольких значений портов, разделённых знаком «,», например:
set firewall ipv4|ipv6 <category> rule <num> source port http,1100-1200,25
Порт назначения
Назначение порта назначения в качестве критерия соответствия поддерживается только в случае указания следующих значений протокола: «tcp», «udp», «tcp_udp».
Для указания порта назначения в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> destination port [<portnumber> | <portname> | <rangenumbers>]где:
<portnumber> – номер порта назначения. Возможно указание значения в диапазоне от «1» до «65535»;
<portname> – имя, определённое в «/etc/services»;
<rangenumbers> – диапазон портов, разделённых знаком «-».
Примечание
Поддерживается указание нескольких значений портов, разделённых знаком «,».
Входящий интерфейс
Для указания входящего интерфейса в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> inbound-interface name <interface>где <interface> – имя интерфейса.
Примечание
Поддерживается указание входящего интерфейса в качестве критерия соответствия для правил категорий: «name», «forward filter», «input filter».
Исходящий интерфейс
Для указания исходящего интерфейса в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> outbound-interface name <interface>где <interface> – имя интерфейса.
Примечание
Поддерживается указание исходящего интерфейса в качестве критерия соответствия для правил категорий: «name», «forward filter», «output filter».
Статус пакета
Для указания статуса пакета в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> state [established | invalid | new | related]где:
«established» – установленный;
«invalid» – недопустимый;
«new» – новый;
«related» – связанный.
Доменное имя источника
Для указания доменного имени источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> source fqdn <fqdn>где <fqdn> – доменное имя.
Доменное имя назначения
Для указания доменного имени назначения в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> destination fqdn <fqdn>
GeoIP
Технология GeoIP позволяет создавать правила межсетевого экрана в зависимости от того, к какой стране или региону принадлежит адрес хоста.
Для указания GeoIP источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> source geoip country-code <country>где <country> – код страны, например, «ru». Перечень кодов стран приведён в таблице (см. Таблица «Коды стран»).
Для инверсии правила необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> source geoip inverse-matchПравило будет распространяться на IP-адреса, соответствующие всем геолокациям, кроме указанных в правиле.
Для указания GeoIP назначения в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> destination geoip country-code <country>
Для инверсии правила необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> 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, используемой на данном предприятии.
Таблица «Коды стран» Код
Страна
Код
Страна
AD
Андорра
AE
Объединённые Арабские Эмираты
AF
Афганистан
AG
Антигуа и Барбуда
AI
Ангилья
AL
Албания
AM
Армения
AO
Ангола
AQ
Антарктида
AR
Аргентина
AS
Американское Самоа
AT
Австрия
AU
Австралия
AW
Аруба
AX
Эландские острова
AZ
Азербайджан
BA
Босния и Герцеговина
BB
Барбадос
BD
Бангладеш
BE
Бельгия
BF
Буркина-Фасо
BG
Болгария
BH
Бахрейн
BI
Бурунди
BJ
Бенин
BL
Сен-Бартельми
BM
Бермуды
BN
Бруней-Даруссалам
BO
Боливия
BR
Бразилия
BQ
Бонайре, Саба и Синт-Эстатиус
BS
Багамские острова
BT
Бутан
BV
Остров Буве
BW
Ботсвана
BY
Беларусь
BZ
Белиз
CA
Канада
CC
Кокосовые острова (Килинг)
CD
ДР Конго
CF
ЦАР
CG
Конго
CH
Швейцария
CI
Республика Кот д’Ивуар
CK
Острова Кука
CL
Чили
CM
Камерун
CN
Китай
CO
Колумбия
CR
Коста-Рика
CU
Куба
CV
Кабо-Верде
CW
Кюрасао
CX
Остров Рождества
CY
Кипр
CZ
Чешская Республика
DE
Германия
DJ
Джибути
DK
Дания
DM
Доминика
DO
Доминиканская Республика
DZ
Алжир
EC
Эквадор
EE
Эстония
EG
Египет
EH
Западная Сахара
ER
Эритрея
ES
Испания
ET
Эфиопия
FI
Финляндия
FJ
Республика островов Фиджи
FK
Фолклендские острова
FM
Микронезия
FO
Фарерские острова
FR
Франция
GA
Габон
GB
Великобритания
GD
Гренада
GE
Грузия
GF
Французская Гвиана
GG
Гернси
GH
Гана
GI
Гибралтар
GL
Гренландия
GM
Гамбия
GN
Гвинея
GP
Гваделупа
GQ
Экваториальная Гвинея
GR
Греция
GS
Юж-я Георгия и Юж-е Сандвичевы о-ва
GT
Гватемала
GU
Гуам
GW
Гвинея-Бисау
GY
Гайана
HK
Гонконг
HM
Остров Херд и острова Макдональд
HN
Гондурас
HR
Хорватия
HT
Гаити
HU
Венгрия
ID
Индонезия
IE
Ирландия
IL
Израиль
IM
Остров Мэн
IN
Индия
IO
Британская тер. в Индийском океане
IQ
Ирак
IR
Иран, Исламская Республика
IS
Исландия
IT
Италия
JE
Джерси
JM
Ямайка
JO
Иордания
JP
Япония
KE
Кения
KG
Кыргызстан
KH
Камбоджа
KI
Кирибати
KM
Коморские острова
KN
Сент-Китс и Невис
KP
КНДР
KR
Республика Корея
KW
Кувейт
KY
Каймановы острова
KZ
Казахстан
LA
Лаос
LB
Ливан
LC
Сент-Люсия
LI
Лихтенштейн
LK
Шри-Ланка
LR
Либерия
LS
Лесото
LT
Литва
LU
Люксембург
LV
Латвия
LY
Ливийская Арабская Республика
MA
Марокко
MC
Монако
MD
Республика Молдова
ME
Республика Черногория
MF
Сен-Мартен
MG
Мадагаскар
MH
Маршалловы острова
MK
Республика Македония
ML
Мали
MM
Мьянма
MN
Монголия
MO
Макао
MP
Северные Марианские острова
MQ
Мартиника
MR
Мавритания
MS
Монтсеррат
MT
Мальта
MU
Маврикий
MV
Мальдивы
MW
Малави
MX
Мексика
MY
Малайзия
MZ
Мозамбик
NA
Намибия
NC
Новая Каледония
NE
Республика Нигер
NF
Остров Норфолк
NG
Нигерия
NI
Никарагуа
NL
Нидерланды
NO
Норвегия
NP
Непал
NR
Науру
NU
Ниуэ
NZ
Новая Зеландия
OM
Оман
PA
Панама
PE
Перу
PF
Французская Полинезия
PG
Папуа-Новая Гвинея
PH
Филиппины
PK
Пакистан
PL
Польша
PM
Сент-Пьер и Микелон
PN
Питкэрн
PR
Пуэрто-Рико
PS
Палестинская территория
PT
Португалия
PW
Палау
PY
Парагвай
QA
Катар
RE
Реюньон
RO
Румыния
RS
Сербия
RU
Российская Федерация
RW
Руанда
SA
Саудовская Аравия
SB
Соломоновы Острова
SC
Сейшельские Острова
SD
Судан
SE
Швеция
SG
Сингапур
SH
Острова Св. Елены
SI
Словения
SJ
Шпицберген и Ян-Майен
SK
Словакия
SL
Сьерра-Леоне
SM
Сан-Марино
SN
Сенегал
SO
Сомали
SR
Суринам
SS
Южный Судан
ST
Сан-Томе и Принсипи
SV
Республика Эль-Сальвадор
SX
Синт-Мартен
SY
Сирийская Арабская Республика
SZ
Королевство Эсватини
TC
Острова Тёркс и Кайкос
TD
Республика Чад
TF
ФЮАТ
TG
Того
TH
Таиланд
TJ
Таджикистан
TK
Токелау
TL
Восточный Тимор
TM
Туркменистан
TN
Тунис
TO
Тонга
TR
Турция
TT
Тринидад и Тобаго
TV
Тувалу
TW
Тайвань
TZ
Танзания
UA
Украина
UG
Уганда
UM
Внешние малые острова США
US
Соединённые Штаты Америки
UY
Уругвай
UZ
Узбекистан
VA
Государство Ватикан
VC
Сент-Винсент и Гренадины
VE
Венесуэла
VG
Британские Виргинские острова
VI
Виргинские острова (США)
VN
Вьетнам
VU
Вануату
WF
Уоллис и Футуна
WS
Независимое Государство Самоа
XK
Республика Косово
YE
Йемен
YT
Майотта
ZA
Южно-Африканская Республика
ZM
Замбия
ZW
Зимбабве
ZZ
Зарезервированный код
Для обновления базы данных GeoIP необходимо в режиме эксплуатации ввести следующую команду:
admin@ngfwos:~$ update geoip
Примечание
База данных GeoIP обновляется с ресурса «download.db-ip.com» на основании лицензии CC-BY-4.0.
Для обеспечения корректного процесса обновления требуется предварительная настройка DNS-сервера. Для этого следует выполнить команду:
set system name-server <address>
где <address> - IP-адрес DNS-сервера.
MAC-адрес источника
Для указания MAC-адреса источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> source mac-address <h:h:h:h:h:h>где <h:h:h:h:h:h> – MAC-адрес источника.
Значение DSCP
Для указания значения DSCP в качестве критерия соответствия необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> dscp [<0-63> | <start-end>]где:
<0-63> - номер класса трафика. Возможно указание значения в диапазоне от «0» до «63»;
<start-end> - диапазон значений класса трафика, разделённых знаком «-».
Для указания значения DSCP с инверсией необходимо ввести следующую команду:
set firewall ipv4|ipv6 <category> rule <num> dscp-exclude [<0-63> | <start-end>]
Критерии соответствия в правилах МЭ «bridge»
ARMA Стена поддерживает возможность указания в правилах МЭ типа «bridge» различных критериев соответствия, по которым выполняется фильтрация.
При настройке МЭ типа «bridge» необходимо учитывать следующие особенности:
поддерживается настройка по категориям «forward filter» и «name»;
для категории «forward filter» поддерживается назначение действия по умолчанию «accept» или «drop»;
не поддерживается назначение действия «reject».
MAC-адрес назначения
Для указания MAC-адреса назначения в качестве критерия соответствия необходимо ввести следующую команду:
set firewall bridge <category> rule <num> destination mac-address <h:h:h:h:h:h>где <h:h:h:h:h:h> – MAC-адрес назначения.
Поддерживается указание MAC-адреса с использованием знака «!» для инверсии – <!h:h:h:h:h:h>.
MAC-адрес источника
Для указания MAC-адреса источника в качестве критерия соответствия необходимо ввести следующую команду:
set firewall bridge <category> rule <num> source mac-address <h:h:h:h:h:h>где <h:h:h:h:h:h> – MAC-адрес источника.
Поддерживается указание MAC-адреса с использованием знака «!» для инверсии – <!h:h:h:h:h:h>.
Входящий интерфейс
Для указания входящего интерфейса в качестве критерия соответствия необходимо ввести следующую команду:
set firewall bridge <category> rule <num> inbound-interface name <interface>где <interface> – имя интерфейса.
Поддерживается указание имени интерфейса с использованием знака «!» для инверсии или подстановочного символа «*», например:
«!eth0» – интерфейсы кроме «eth0»;
«eth2*» – интерфейсы, с именами начинающимися на «eth2».
Исходящий интерфейс
Для указания исходящего интерфейса в качестве критерия соответствия необходимо ввести следующую команду:
set firewall bridge <category> rule <num> outbound-interface name <interface>где <interface> – имя интерфейса.
Поддерживается указание имени интерфейса с использованием знака «!» для инверсии или подстановочного символа «*».
Идентификатор VLAN
Для указания идентификатора VLAN в качестве критерия соответствия необходимо ввести следующую команду:
set firewall bridge <category> rule <num> vlan id <vlan-id>где <vlan-id> – идентификатор VLAN. Возможно указание диапазона значений, разделённых знаком «-».
Приоритет VLAN
Для указания приоритета VLAN в качестве критерия соответствия необходимо ввести следующую команду:
set firewall bridge <category> rule <num> vlan priority <number>где <number> – значение приоритета VLAN. Возможно указание значений в диапазоне от «0» до «7». Возможно указание диапазона значений, разделённых знаком «-».
Срабатывание правил по расписанию
Для настройки срабатывания правила в заданный временной интервал необходимо ввести следующие команды:
Определение даты начала действия правила:
set firewall ipv4|ipv6 <category> rule <num> time startdate <text>где <text> – дата запуска правила в формате «YYYY-MM-DD».
Определение времени начала действия правила:
set firewall ipv4|ipv6 <category> rule <num> time starttime <text>где <text> – время запуска правила в формате «hh:mm:ss».
Установка даты завершения действия правила:
set firewall ipv4|ipv6 <category> rule <num> time stopdate <text>где <text> – дата остановки правила в формате «YYYY-MM-DD».
Установка времени завершения действия правила:
set firewall ipv4|ipv6 <category> rule <num> time stoptime <text>где <text> – время остановки правила в формате «hh:mm:ss».
Установка дней недели, в которые будет действовать правило:
set firewall ipv4|ipv6 <category> rule <num> time weekdays <text>где <text> – дни недели. Возможно указать значение в виде текста: «Monday», «Tuesday», «Wednesday», «Thursdays», «Friday», «Saturday», «Sunday». Либо в формате числа от «0» (Sunday) до «6» (Saturday). Допускается указать несколько значений, разделённых запятыми, или диапазон значений, разделённых дефисом. Если значение содержит пробелы, то его необходимо заключить в двойные кавычки.
Политика на основе зон
В качестве альтернативы непосредственному применению политик к сетевым интерфейсам может быть создана зоновая модель брандмауэра. Эта модель упрощает конфигурацию в ситуациях, когда несколько интерфейсов принадлежат одной зоне безопасности. Вместо применения наборов правил к интерфейсам, правила применяются к парам «исходная зона — целевая зона». Правила настраиваются для зон, а не для отдельных интерфейсов, что снижает сложность конфигурации при большом количестве интерфейсов.
В архитектуре безопасности, основанной на зонах, сетевые интерфейсы группируются в зоны, которые определяются на основе их функционального или логического сходства. Трафик, проходящий через зону, регулируется назначенными кастомными наборами правил. Данный подход обеспечивает более детальный и целенаправленный контроль над сетевым трафиком, позволяя применять различные уровни доступа и защиты в зависимости от конкретных требований каждой зоны.
В МЭ на основе зон реализована новая концепция, дополнительно к стандартным входящим и исходящим потокам трафика был добавлен локальный поток. Он предназначен для входящего и исходящего трафика ARMA Стена. Это предоставляет возможность установить дополнительные правила МЭ, которые будут защищать сам брандмауэр от внешних угроз сети, дополняя уже существующие входящие и исходящие правила МЭ.
Основные тезисы:
перед назначением интерфейса зоне необходимо выполнить её конфигурацию;
интерфейс может быть назначен только одной зоне;
в пределах зоны разрешён весь входящий и исходящий трафик интерфейса;
трафик между зонами зависит от существующих политик;
трафик не может передаваться между интерфейсом-участником зоны и любым интерфейсом, который не является участником этой зоны;
для каждого направления трафика необходимо задать отдельную политику.
В общем случае алгоритм настройки работы МЭ на основе зон сети выглядит следующим образом:
Создать кастомные наборы правил МЭ, в которых будут содержаться правила.
Создать правила МЭ, указать в них критерии соответствия, действия с сетевыми пакетами и привязать эти правила к кастомным наборам.
Объединить интерфейсы в зоны.
Создать два направления трафика между зонами сети (входящий и исходящий трафик) и назначить на них созданные кастомные наборы правил.
Конфигурация зон
Назначение интерфейсов зоне:
set firewall zone <name> interface <interface>где:
<name> - имя зоны. Значение не должно превышать «18» символа, начинаться только с латинской буквы или цифры, не может начинаться с символов «-» или «!», и не должно содержать символы «»», «“», «|», «;», «:», «&», «$», «<», «>»
<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> - текстовое описание зоны.
Применение набора правил к зоне
Перед применением набора правил к зоне необходимо предварительно создать и настроить сами зоны.
Кастомные наборы правил применяются к трафику, перемещающемуся между зонами, и должны быть описаны с точки зрения направления: исходная зона -> целевая зона. Это означает, что правила создаются для управления потоком данных из одной зоны в другую.
Для применения кастомного набора правил к зонам необходимо ввести следующую команду:
для 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 name allow rule 10 action accept set firewall name allow default-action accept set firewall zone LAN from WAN firewall name allow set firewall zone WAN from LAN firewall name allowгде:
«LAN» и «WAN» – имена зон;
«eth0» – интерфейс с доступом к сети Интернет;
«allow» – имя набора правил.